Projet

Général

Profil

0001-data-add-creation-timestamp-on-Page-object-39091.patch

Nicolas Roche, 23 janvier 2020 17:09

Télécharger (3,58 ko)

Voir les différences:

Subject: [PATCH 1/4] data: add creation timestamp on Page object (#39091)

 .../0039_page_creation_timestamp.py           | 25 +++++++++++++++++++
 combo/data/models.py                          |  7 +++++-
 tests/test_pages.py                           | 10 ++++++++
 3 files changed, 41 insertions(+), 1 deletion(-)
 create mode 100644 combo/data/migrations/0039_page_creation_timestamp.py
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
-