Projet

Général

Profil

0001-page-display-page-visibility-on-page-list-16028.patch

Lauréline Guérin, 22 octobre 2019 10:21

Télécharger (4,61 ko)

Voir les différences:

Subject: [PATCH] page: display page visibility on page list (#16028)

 combo/data/models.py                          |  5 ++++-
 combo/manager/static/css/combo.manager.css    |  9 +++++---
 .../manager/templates/combo/manager_home.html | 17 ++++++++++++--
 tests/test_manager.py                         | 22 +++++++++++++++++++
 4 files changed, 47 insertions(+), 6 deletions(-)
combo/data/models.py
336 336
    def visibility(self):
337 337
        if self.public:
338 338
            return _('Public')
339
        return _('Private (%s)') % ', '.join([x.name for x in self.groups.all()])
339
        groups = self.groups.all()
340
        if groups:
341
            return _('Private (%s)') % ', '.join([x.name for x in groups])
342
        return _('Private (logged users)')
340 343

  
341 344
    def is_visible(self, user=None):
342 345
        return element_is_visible(self, user=user)
combo/manager/static/css/combo.manager.css
53 53
	white-space: nowrap;
54 54
}
55 55

  
56
div.cell h3 .group1 {
56
div.cell h3 .group1,
57
div.page .group1 {
57 58
	display: inline-block;
58 59
	overflow: hidden;
59 60
	white-space: nowrap;
......
68 69
}
69 70

  
70 71
div.cell h3 span.additional-label,
71
div.cell h3 span.visibility-summary {
72
div.cell h3 span.visibility-summary,
73
div.page span.visibility-summary {
72 74
	font-size: 80%;
73 75
	padding-left: 1em;
74 76
	display: inline-block;
......
78 80
	vertical-align: middle;
79 81
}
80 82

  
81
div.cell h3 span.visibility-summary::before {
83
div.cell h3 span.visibility-summary::before,
84
div.page span.visibility-summary::before {
82 85
	content: "\f06e"; /* fa-eye */
83 86
	font-family: FontAwesome;
84 87
}
combo/manager/templates/combo/manager_home.html
28 28

  
29 29
<div class="objects-list" id="pages-list" data-page-order-url="{% url 'combo-manager-page-order' %}">
30 30
 {% for page in object_list %}
31
 <div class="level-{{page.level}}" data-page-id="{{page.id}}" data-level="{{page.level}}">
32
	 <span class="handle">⣿</span> <a href="{% url 'combo-manager-page-view' pk=page.id %}">{{ page.title }}</a>
31
 <div class="page level-{{page.level}}" data-page-id="{{page.id}}" data-level="{{page.level}}">
32
    <span class="handle">⣿</span>
33
    <span class="group1">
34
      <a href="{% url 'combo-manager-page-view' pk=page.id %}">{{ page.title }}</a>
35
    </span>
36
    {% if not page.public %}
37
    <span class="visibility-summary" title="{% trans 'Restricted visibility' %}">
38
    {% with page.groups.all as page_groups %}
39
    {% for group in page_groups %}{{ group.name }}{% if not forloop.last %}, {% endif %}
40
    {% empty %}
41
    {% trans "logged users" %}
42
    {% endfor %}
43
    {% endwith %}
44
    </span>
45
    {% endif %}
33 46
 </div>
34 47
 {% endfor %}
35 48
</div>
tests/test_manager.py
186 186
    assert '<img' in resp.text
187 187
    assert Page.objects.get(id=page.id).picture.url in resp.text
188 188

  
189

  
190
def test_page_placeholder_restricted_visibility(app, admin_user):
191
    app = login(app)
192

  
193
    page = Page.objects.create()
194
    group = Group.objects.create(name='foobar')
195

  
196
    resp = app.get(reverse('combo-manager-homepage'))
197
    assert '<span class="visibility-summary"' not in resp.text
198

  
199
    page.public = False
200
    page.save()
201
    resp = app.get(reverse('combo-manager-homepage'))
202
    assert '<span class="visibility-summary" title="Restricted visibility">' in resp.text
203
    assert 'foobar' not in resp.text
204

  
205
    page.groups.set([group])
206
    resp = app.get(reverse('combo-manager-homepage'))
207
    assert '<span class="visibility-summary" title="Restricted visibility">' in resp.text
208
    assert 'foobar' in resp.text
209

  
210

  
189 211
def test_delete_page(app, admin_user):
190 212
    Page.objects.all().delete()
191 213
    page = Page(title='One', slug='one', template_name='standard')
192
-