manager: display partial booking agenda badge on homepage (#80041)
gitea/chrono/pipeline/head This commit looks good Details

This commit is contained in:
Valentin Deniaud 2023-07-27 14:57:15 +02:00
parent 7359d50232
commit 6b964d708b
3 changed files with 21 additions and 1 deletions

View File

@ -323,6 +323,12 @@ class Agenda(models.Model):
def get_settings_url(self):
return reverse('chrono-manager-agenda-settings', kwargs={'pk': self.id})
def get_real_kind_display(self):
if self.kind == 'events' and self.partial_bookings:
return _('Partial bookings')
return self.get_kind_display()
def get_lingo_url(self):
if not settings.KNOWN_SERVICES.get('lingo'):
return

View File

@ -42,7 +42,7 @@
{% if group.grouper %}<h3>{{ group.grouper }}</h3>{% elif not forloop.first %}<h3>{% trans "Misc" %}</h3>{% endif %}
<ul class="objects-list single-links">
{% for object in group.list %}
<li><a href="{% url 'chrono-manager-agenda-view' pk=object.id %}"><span class="badge">{{ object.get_kind_display }}</span> {{ object.label }}{% if user.is_staff %} <span class="identifier">[{% trans "identifier:" %} {{ object.slug }}]{% endif %}</span></a></li>
<li><a href="{% url 'chrono-manager-agenda-view' pk=object.id %}"><span class="badge">{{ object.get_real_kind_display }}</span> {{ object.label }}{% if user.is_staff %} <span class="identifier">[{% trans "identifier:" %} {{ object.slug }}]{% endif %}</span></a></li>
{% endfor %}
</ul>
</div>

View File

@ -400,6 +400,20 @@ def test_view_agendas_as_manager(app, manager_user):
resp = app.get('/manage/agendas/0/settings', status=404)
def test_view_agendas_kind_display(app, admin_user):
Agenda.objects.create(label='Bar Foo', kind='meetings')
app = login(app)
resp = app.get('/manage/')
assert [x.text for x in resp.pyquery('span.badge')] == ['Meetings']
Agenda.objects.create(label='Bar Foo 2', kind='events')
Agenda.objects.create(label='Bar Foo 3', kind='events', partial_bookings=True)
resp = app.get('/manage/')
assert [x.text for x in resp.pyquery('span.badge')] == ['Meetings', 'Events', 'Partial bookings']
def test_add_agenda(app, admin_user):
app = login(app)
resp = app.get('/manage/', status=200)