0001-data-add-creation-timestamp-on-Page-object-39091.patch
combo/data/migrations/0039_page_creation_timestamp.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.18 on 2020-01-23 14:54 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations, models |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('data', '0038_increase_jsoncell_url_max_length'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.AddField( |
|
16 |
model_name='page', |
|
17 |
name='creation_timestamp', |
|
18 |
field=models.DateTimeField(auto_now_add=True, null=True), |
|
19 |
), |
|
20 |
migrations.AlterField( |
|
21 |
model_name='parameterscell', |
|
22 |
name='empty_label', |
|
23 |
field=models.CharField(default='---', max_length=64, verbose_name='Empty label'), |
|
24 |
), |
|
25 |
] |
combo/data/models.py | ||
---|---|---|
16 | 16 | |
17 | 17 |
import collections |
18 | 18 |
import copy |
19 |
import datetime |
|
19 | 20 |
import feedparser |
20 | 21 |
import hashlib |
21 | 22 |
import json |
... | ... | |
39 | 40 |
from django.forms import models as model_forms |
40 | 41 |
from django import forms |
41 | 42 |
from django import template |
42 |
from django.utils import six |
|
43 |
from django.utils import six, timezone
|
|
43 | 44 |
from django.utils.encoding import python_2_unicode_compatible, force_text, smart_bytes |
44 | 45 |
from django.utils.html import strip_tags |
45 | 46 |
from django.utils.safestring import mark_safe |
... | ... | |
138 | 139 | |
139 | 140 |
public = models.BooleanField(_('Public'), default=True) |
140 | 141 |
groups = models.ManyToManyField(Group, verbose_name=_('Groups'), blank=True) |
142 |
creation_timestamp = models.DateTimeField(auto_now_add=True, null=True) |
|
141 | 143 |
last_update_timestamp = models.DateTimeField(auto_now=True) |
142 | 144 | |
143 | 145 |
picture = models.ImageField(_('Picture'), upload_to='page-pictures/', null=True) |
... | ... | |
432 | 434 |
cells = CellBase.get_cells(page_id=self.id) |
433 | 435 |
return max([self.last_update_timestamp] + [x.last_update_timestamp for x in cells]) |
434 | 436 | |
437 |
def is_new(self): |
|
438 |
return self.creation_timestamp > timezone.now() - datetime.timedelta(days=7) |
|
439 | ||
435 | 440 |
def duplicate(self): |
436 | 441 |
# clone current page |
437 | 442 |
new_page = copy.deepcopy(self) |
tests/test_pages.py | ||
---|---|---|
380 | 380 |
cell.save() |
381 | 381 |
response = app.get(page.get_online_url()) |
382 | 382 |
assert "{{e-service_url}}backoffice/..." in response.text # href not rendered |
383 | ||
384 |
def test_page_is_new(freezer): |
|
385 |
freezer.move_to('2020-01-01') |
|
386 |
page = Page(title='page-1', slug='page-1') |
|
387 |
page.save() |
|
388 |
assert page.is_new() |
|
389 | ||
390 |
freezer.move_to('2020-01-08') |
|
391 |
page = Page.objects.get(slug='page-1') |
|
392 |
assert not page.is_new() |
|
383 |
- |