page: display page visibility on page list (#16028)

This commit is contained in:
Lauréline Guérin 2019-10-22 09:19:06 +02:00
parent 82503cdd7d
commit ce355fa833
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
4 changed files with 46 additions and 6 deletions

View File

@ -336,7 +336,9 @@ class Page(models.Model):
def visibility(self):
if self.public:
return _('Public')
return _('Private (%s)') % ', '.join([x.name for x in self.groups.all()])
groups = self.groups.all()
groupnames = ', '.join([x.name for x in groups]) if groups else _('logged users')
return _('Private (%s)') % groupnames
def is_visible(self, user=None):
return element_is_visible(self, user=user)

View File

@ -53,7 +53,8 @@ div.cell > h3 {
white-space: nowrap;
}
div.cell h3 .group1 {
div.cell h3 .group1,
div.page .group1 {
display: inline-block;
overflow: hidden;
white-space: nowrap;
@ -68,7 +69,8 @@ div.cell h3 span.extra-css-class {
}
div.cell h3 span.additional-label,
div.cell h3 span.visibility-summary {
div.cell h3 span.visibility-summary,
div.page span.visibility-summary {
font-size: 80%;
padding-left: 1em;
display: inline-block;
@ -78,7 +80,8 @@ div.cell h3 span.visibility-summary {
vertical-align: middle;
}
div.cell h3 span.visibility-summary::before {
div.cell h3 span.visibility-summary::before,
div.page span.visibility-summary::before {
content: "\f06e"; /* fa-eye */
font-family: FontAwesome;
}

View File

@ -28,8 +28,21 @@ Use drag and drop with the ⣿ handles to reorder and change hierarchy of pages.
<div class="objects-list" id="pages-list" data-page-order-url="{% url 'combo-manager-page-order' %}">
{% for page in object_list %}
<div class="level-{{page.level}}" data-page-id="{{page.id}}" data-level="{{page.level}}">
<span class="handle"></span> <a href="{% url 'combo-manager-page-view' pk=page.id %}">{{ page.title }}</a>
<div class="page level-{{page.level}}" data-page-id="{{page.id}}" data-level="{{page.level}}">
<span class="handle"></span>
<span class="group1">
<a href="{% url 'combo-manager-page-view' pk=page.id %}">{{ page.title }}</a>
</span>
{% if not page.public %}
<span class="visibility-summary" title="{% trans 'Restricted visibility' %}">
{% with page.groups.all as page_groups %}
{% for group in page_groups %}{{ group.name }}{% if not forloop.last %}, {% endif %}
{% empty %}
{% trans "logged users" %}
{% endfor %}
{% endwith %}
</span>
{% endif %}
</div>
{% endfor %}
</div>

View File

@ -186,6 +186,28 @@ def test_page_edit_picture(app, admin_user):
assert '<img' in resp.text
assert Page.objects.get(id=page.id).picture.url in resp.text
def test_page_placeholder_restricted_visibility(app, admin_user):
app = login(app)
page = Page.objects.create()
group = Group.objects.create(name='foobar')
resp = app.get(reverse('combo-manager-homepage'))
assert '<span class="visibility-summary"' not in resp.text
page.public = False
page.save()
resp = app.get(reverse('combo-manager-homepage'))
assert '<span class="visibility-summary" title="Restricted visibility">' in resp.text
assert 'foobar' not in resp.text
page.groups.set([group])
resp = app.get(reverse('combo-manager-homepage'))
assert '<span class="visibility-summary" title="Restricted visibility">' in resp.text
assert 'foobar' in resp.text
def test_delete_page(app, admin_user):
Page.objects.all().delete()
page = Page(title='One', slug='one', template_name='standard')