cells: a cell is not visible after 2 days of invalidity (#38009)
This commit is contained in:
parent
957864921b
commit
39234986fe
|
@ -738,6 +738,9 @@ class CellBase(six.with_metaclass(CellMeta, models.Model)):
|
|||
return {}
|
||||
|
||||
def is_visible(self, user=None):
|
||||
validity_info = self.validity_info.all().first()
|
||||
if validity_info is not None and validity_info.invalid_since and validity_info.invalid_since < now() - datetime.timedelta(days=2):
|
||||
return False
|
||||
return element_is_visible(self, user=user)
|
||||
|
||||
def is_relevant(self, context):
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import datetime
|
||||
import json
|
||||
import mock
|
||||
import os
|
||||
|
@ -6,7 +7,7 @@ import requests
|
|||
|
||||
from combo.data.models import (
|
||||
Page, CellBase, TextCell, LinkCell, MenuCell, JsonCellBase,
|
||||
JsonCell, ConfigJsonCell, LinkListCell
|
||||
JsonCell, ConfigJsonCell, LinkListCell, ValidityInfo
|
||||
)
|
||||
from django.conf import settings
|
||||
from django.db import connection
|
||||
|
@ -18,6 +19,7 @@ from django.test.utils import CaptureQueriesContext
|
|||
from django.contrib.auth.models import User
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.encoding import force_text, force_bytes
|
||||
from django.utils.timezone import now
|
||||
|
||||
from combo.data.library import get_cell_classes
|
||||
from combo.utils import NothingInCacheException
|
||||
|
@ -787,3 +789,21 @@ def test_link_list_cell_duplicate():
|
|||
assert new_item.title == item.title
|
||||
assert new_item.url == item.url
|
||||
assert new_item.link_page == item.link_page
|
||||
|
||||
|
||||
def test_cell_is_visible():
|
||||
page = Page.objects.create()
|
||||
cell = TextCell.objects.create(page=page, order=0)
|
||||
assert cell.is_visible() is True
|
||||
|
||||
# invalid cell since just now
|
||||
validity_info = ValidityInfo.objects.create(content_object=cell)
|
||||
validity_info.invalid_reason_code = 'FOO'
|
||||
validity_info.invalid_since = now()
|
||||
validity_info.save()
|
||||
assert cell.is_visible() is True
|
||||
|
||||
# invalid cell since two days
|
||||
validity_info.invalid_since = now() - datetime.timedelta(days=2)
|
||||
validity_info.save()
|
||||
assert cell.is_visible() is False
|
||||
|
|
Loading…
Reference in New Issue