Projet

Général

Profil

0001-cells-don-t-hide-invalid-link-list-cell-44795.patch

Lauréline Guérin, 17 juillet 2020 16:10

Télécharger (5,99 ko)

Voir les différences:

Subject: [PATCH] cells: don't hide invalid link list cell (#44795)

 combo/data/models.py                               |  4 ++++
 .../combo/manager/link-list-cell-form.html         |  8 +++++++-
 combo/manager/templates/combo/page_view.html       | 14 +++++++-------
 tests/test_cells.py                                |  3 +++
 tests/test_manager.py                              | 11 ++++++++---
 5 files changed, 29 insertions(+), 11 deletions(-)
combo/data/models.py
1338 1338
        for link in self.get_items():
1339 1339
            link.duplicate(page_target=new_cell.page, placeholder=new_cell.link_placeholder)
1340 1340

  
1341
    def is_visible(self, check_validity_info=True, **kwargs):
1342
        # cell is visible even if items are invalid
1343
        return super().is_visible(check_validity_info=False, **kwargs)
1344

  
1341 1345
    def check_validity(self):
1342 1346
        for link in self.get_items(prefetch_validity_info=True):
1343 1347
            validity_info = link.get_validity_info()
combo/data/templates/combo/manager/link-list-cell-form.html
15 15
     {{ link|truncatechars:100 }}
16 16
     {% with link.get_invalid_reason as invalid_reason %}
17 17
     {% if invalid_reason %}
18
     <span class="invalid">{{ invalid_reason }}</span>
18
     <span class="invalid">{{ invalid_reason }} -
19
       {% if cell.get_validity_info.invalid_datetime|datetime_in_past %}
20
         {% blocktrans with link.get_validity_info.invalid_datetime|date:"DATETIME_FORMAT" as invalidity_date %}This link is no longer displayed since {{ invalidity_date }}.{% endblocktrans %}
21
       {% else %}
22
         {% blocktrans with link.get_validity_info.invalid_datetime|timeuntil as invalidity_delay %}This link will no longer be displayed in {{ invalidity_delay }}.{% endblocktrans %}
23
       {% endif %}
24
     </span>
19 25
     {% endif %}
20 26
     {% endwith %}
21 27
   </span>
combo/manager/templates/combo/page_view.html
151 151
                  {% endif %}
152 152
                  <span class="additional-label"><i>{{cell.get_additional_label|default_if_none:""}}</i></span>
153 153
                  {% if cell.get_invalid_reason %}
154
                  <span class="invalid">{{ cell.get_invalid_reason }} -
155
                    {% if cell.get_validity_info.invalid_datetime|datetime_in_past %}
156
                      {% blocktrans with cell.get_validity_info.invalid_datetime|date:"DATETIME_FORMAT" as invalidity_date %}This cell is no longer displayed since {{ invalidity_date }}.{% endblocktrans %}
157
                    {% else %}
158
                      {% blocktrans with cell.get_validity_info.invalid_datetime|timeuntil as invalidity_delay %}This cell will no longer be displayed in {{ invalidity_delay }}.{% endblocktrans %}
159
                    {% endif %}
160
                  </span>
154
                  <span class="invalid">{{ cell.get_invalid_reason }}{% if cell.class_name != 'link-list-cell' %} -
155
                      {% if cell.get_validity_info.invalid_datetime|datetime_in_past %}
156
                        {% blocktrans with cell.get_validity_info.invalid_datetime|date:"DATETIME_FORMAT" as invalidity_date %}This cell is no longer displayed since {{ invalidity_date }}.{% endblocktrans %}
157
                      {% else %}
158
                        {% blocktrans with cell.get_validity_info.invalid_datetime|timeuntil as invalidity_delay %}This cell will no longer be displayed in {{ invalidity_delay }}.{% endblocktrans %}
159
                      {% endif %}
160
                    {% endif %}</span>
161 161
                  {% endif %}
162 162
                </span>
163 163
                {% if not cell.public %}
tests/test_cells.py
288 288
    validity_info = ValidityInfo.objects.latest('pk')
289 289
    assert validity_info.invalid_reason_code == 'data_link_invalid'
290 290
    assert validity_info.invalid_since is not None
291
    validity_info.invalid_since = now() - datetime.timedelta(days=2)
292
    validity_info.save()
293
    assert cell.is_visible()  # particular case: cell is visible
291 294

  
292 295

  
293 296
def test_feed_cell_validity(context):
tests/test_manager.py
211 211
    item.mark_as_invalid('foo_bar_reason')
212 212
    cell2.check_validity()
213 213
    resp = app.get('/manage/pages/%s/' % page.pk)
214
    assert '<span class="invalid">Invalid link' in resp.text
215
    assert 'This cell will no longer be displayed in 2 days.' in resp.text
216
    assert '<span class="invalid">foo_bar_reason</span>' in resp.text
214
    assert '<span class="invalid">Invalid link</span>' in resp.text
215
    assert '<span class="invalid">foo_bar_reason' in resp.text
216
    assert 'This link will no longer be displayed in 2 days.' in resp.text
217
    ValidityInfo.objects.update(invalid_since=now() - datetime.timedelta(days=2))
218
    resp = app.get('/manage/pages/%s/' % page.pk)
219
    assert '<span class="invalid">Invalid link</span>' in resp.text
220
    assert '<span class="invalid">foo_bar_reason' in resp.text
221
    assert 'This link is no longer displayed since June 5, 2020, noon.' in resp.text
217 222

  
218 223

  
219 224
def test_edit_page_optional_placeholder(app, admin_user):
220
-