diff --git a/combo/data/models.py b/combo/data/models.py index 0565b4f3..cae39ae7 100644 --- a/combo/data/models.py +++ b/combo/data/models.py @@ -353,7 +353,7 @@ class Page(models.Model): cell_types.add(cell.get_cell_type_str()) if cell_types != set(self.related_cells.get('cell_types', [])): self.related_cells['cell_types'] = list(cell_types) - self.save() + self.save() def get_serialized_page(self): cells = [x for x in self.get_cells() if x.placeholder and not x.placeholder.startswith('_')] @@ -433,8 +433,7 @@ class Page(models.Model): return utils.get_templated_url(self.redirect_url, context=context) def get_last_update_time(self): - cells = CellBase.get_cells(page_id=self.id) - return max([self.last_update_timestamp] + [x.last_update_timestamp for x in cells]) + return self.last_update_timestamp def is_new(self): return self.creation_timestamp > timezone.now() - datetime.timedelta(days=7) diff --git a/tests/test_pages.py b/tests/test_pages.py index 087bfd8a..6c609f0c 100644 --- a/tests/test_pages.py +++ b/tests/test_pages.py @@ -1,4 +1,3 @@ -import datetime import os import pytest import sys @@ -8,7 +7,6 @@ from django.contrib.auth.models import User, Group from django.test import override_settings from django.test.client import RequestFactory from django.utils.six import StringIO -from django.utils.timezone import now from combo.data.models import Page, PageSnapshot, CellBase, TextCell, LinkCell, LinkListCell from combo.data.management.commands.import_site import Command as ImportSiteCommand from combo.data.management.commands.export_site import Command as ExportSiteCommand @@ -355,21 +353,6 @@ def test_import_export_management_commands(): assert isinstance(CellBase.get_cells(page_id=new_page_1.id)[0], TextCell) assert CellBase.get_cells(page_id=new_page_1.id)[0].text == 'foo' -def test_last_update_time(): - page = Page(title=u'foo', slug='foo', order=0) - page.save() - - cell = TextCell(page=page, text='foo', order=0) - cell.save() - - cell = TextCell(page=page, text='bar', order=0) - cell.save() - - future_time = now() + datetime.timedelta(days=2) - TextCell.objects.filter(pk=cell.id).update(last_update_timestamp=future_time) - - assert page.get_last_update_time() == future_time - def test_get_placeholders(): page = Page(title=u'foo', slug='foo', template_name='standard-sidebar', order=0) request = RequestFactory().get('/') @@ -410,6 +393,19 @@ def test_render_cell_having_href_template_error(app): response = app.get(page.get_online_url()) assert "{{e-service_url}}backoffice/..." in response.text # href not rendered +def test_cell_maintain_page_cell_cache(freezer): + freezer.move_to('2020-01-01') + page = Page(title='page-1', slug='page-1') + page.save() + cell = TextCell(page=page, order=0, slug='cell-1', text='foo') + cell.save() + assert page.last_update_timestamp.isoformat().startswith('2020-01-01') + + freezer.move_to('2020-02-02') + cell.text = 'bar' + cell.save() + assert page.last_update_timestamp.isoformat().startswith('2020-02-02') + def test_page_is_new(freezer): freezer.move_to('2020-01-01') page = Page(title='page-1', slug='page-1')