cells: don't hide invalid link list cell (#44795)
This commit is contained in:
parent
94bd9c0929
commit
7d2ab21ad7
|
@ -1338,6 +1338,10 @@ class LinkListCell(CellBase):
|
|||
for link in self.get_items():
|
||||
link.duplicate(page_target=new_cell.page, placeholder=new_cell.link_placeholder)
|
||||
|
||||
def is_visible(self, check_validity_info=True, **kwargs):
|
||||
# cell is visible even if items are invalid
|
||||
return super().is_visible(check_validity_info=False, **kwargs)
|
||||
|
||||
def check_validity(self):
|
||||
for link in self.get_items(prefetch_validity_info=True):
|
||||
validity_info = link.get_validity_info()
|
||||
|
|
|
@ -15,7 +15,13 @@
|
|||
{{ link|truncatechars:100 }}
|
||||
{% with link.get_invalid_reason as invalid_reason %}
|
||||
{% if invalid_reason %}
|
||||
<span class="invalid">{{ invalid_reason }}</span>
|
||||
<span class="invalid">{{ invalid_reason }} -
|
||||
{% if cell.get_validity_info.invalid_datetime|datetime_in_past %}
|
||||
{% blocktrans with link.get_validity_info.invalid_datetime|date:"DATETIME_FORMAT" as invalidity_date %}This link is no longer displayed since {{ invalidity_date }}.{% endblocktrans %}
|
||||
{% else %}
|
||||
{% blocktrans with link.get_validity_info.invalid_datetime|timeuntil as invalidity_delay %}This link will no longer be displayed in {{ invalidity_delay }}.{% endblocktrans %}
|
||||
{% endif %}
|
||||
</span>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
</span>
|
||||
|
|
|
@ -151,13 +151,13 @@
|
|||
{% endif %}
|
||||
<span class="additional-label"><i>{{cell.get_additional_label|default_if_none:""}}</i></span>
|
||||
{% if cell.get_invalid_reason %}
|
||||
<span class="invalid">{{ cell.get_invalid_reason }} -
|
||||
{% if cell.get_validity_info.invalid_datetime|datetime_in_past %}
|
||||
{% blocktrans with cell.get_validity_info.invalid_datetime|date:"DATETIME_FORMAT" as invalidity_date %}This cell is no longer displayed since {{ invalidity_date }}.{% endblocktrans %}
|
||||
{% else %}
|
||||
{% blocktrans with cell.get_validity_info.invalid_datetime|timeuntil as invalidity_delay %}This cell will no longer be displayed in {{ invalidity_delay }}.{% endblocktrans %}
|
||||
{% endif %}
|
||||
</span>
|
||||
<span class="invalid">{{ cell.get_invalid_reason }}{% if cell.class_name != 'link-list-cell' %} -
|
||||
{% if cell.get_validity_info.invalid_datetime|datetime_in_past %}
|
||||
{% blocktrans with cell.get_validity_info.invalid_datetime|date:"DATETIME_FORMAT" as invalidity_date %}This cell is no longer displayed since {{ invalidity_date }}.{% endblocktrans %}
|
||||
{% else %}
|
||||
{% blocktrans with cell.get_validity_info.invalid_datetime|timeuntil as invalidity_delay %}This cell will no longer be displayed in {{ invalidity_delay }}.{% endblocktrans %}
|
||||
{% endif %}
|
||||
{% endif %}</span>
|
||||
{% endif %}
|
||||
</span>
|
||||
{% if not cell.public %}
|
||||
|
|
|
@ -288,6 +288,9 @@ def test_link_list_cell_validity():
|
|||
validity_info = ValidityInfo.objects.latest('pk')
|
||||
assert validity_info.invalid_reason_code == 'data_link_invalid'
|
||||
assert validity_info.invalid_since is not None
|
||||
validity_info.invalid_since = now() - datetime.timedelta(days=2)
|
||||
validity_info.save()
|
||||
assert cell.is_visible() # particular case: cell is visible
|
||||
|
||||
|
||||
def test_feed_cell_validity(context):
|
||||
|
|
|
@ -211,9 +211,14 @@ def test_edit_page_cell_invalid_placeholder(freezer, app, admin_user):
|
|||
item.mark_as_invalid('foo_bar_reason')
|
||||
cell2.check_validity()
|
||||
resp = app.get('/manage/pages/%s/' % page.pk)
|
||||
assert '<span class="invalid">Invalid link' in resp.text
|
||||
assert 'This cell will no longer be displayed in 2 days.' in resp.text
|
||||
assert '<span class="invalid">foo_bar_reason</span>' in resp.text
|
||||
assert '<span class="invalid">Invalid link</span>' in resp.text
|
||||
assert '<span class="invalid">foo_bar_reason' in resp.text
|
||||
assert 'This link will no longer be displayed in 2 days.' in resp.text
|
||||
ValidityInfo.objects.update(invalid_since=now() - datetime.timedelta(days=2))
|
||||
resp = app.get('/manage/pages/%s/' % page.pk)
|
||||
assert '<span class="invalid">Invalid link</span>' in resp.text
|
||||
assert '<span class="invalid">foo_bar_reason' in resp.text
|
||||
assert 'This link is no longer displayed since June 5, 2020, noon.' in resp.text
|
||||
|
||||
|
||||
def test_edit_page_optional_placeholder(app, admin_user):
|
||||
|
|
Loading…
Reference in New Issue