pages: add a default on Page.creation_timestamp field (#39865)

This commit is contained in:
Lauréline Guérin 2020-02-14 14:24:20 +01:00
parent 7698d8a398
commit fa17bffadf
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
3 changed files with 19 additions and 3 deletions

View File

@ -16,7 +16,6 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='page',
name='creation_timestamp',
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
preserve_default=False,
field=models.DateTimeField(default=django.utils.timezone.now),
),
]

View File

@ -47,6 +47,7 @@ from django.utils.html import strip_tags
from django.utils.safestring import mark_safe
from django.utils.six.moves.urllib import parse as urlparse
from django.utils.text import slugify
from django.utils.timezone import now
from django.utils.translation import ugettext_lazy as _
from django.forms.widgets import MediaDefiningClass
from django.template import Context, engines, TemplateDoesNotExist, TemplateSyntaxError
@ -141,7 +142,7 @@ class Page(models.Model):
public = models.BooleanField(_('Public'), default=True)
groups = models.ManyToManyField(Group, verbose_name=_('Groups'), blank=True)
creation_timestamp = models.DateTimeField(auto_now_add=True)
creation_timestamp = models.DateTimeField(default=now)
last_update_timestamp = models.DateTimeField(auto_now=True)
picture = models.ImageField(_('Picture'), upload_to='page-pictures/', null=True)

View File

@ -1472,6 +1472,22 @@ def test_page_versionning(app, admin_user):
assert TextCell.objects.count() == 3
assert JsonCell.objects.count() == 0
def test_view_old_snapshot(app, admin_user):
page = Page.objects.create(title='One', slug='one')
PageSnapshot.take(page)
snapshot = PageSnapshot.objects.get()
# delete creation_timestamp field
del snapshot.serialization['fields']['creation_timestamp']
snapshot.save()
# and try to visit the snapshot
app = login(app)
resp = app.get('/manage/pages/%s/' % page.pk)
resp = resp.click('History')
# should succeed
resp = resp.click('view')
def test_django_admin(app, admin_user):
resp = app.get('/admin/')
resp = resp.follow() # -> /admin/login/