From c3f63d7d8ed4d2a889d149045467d11a5cc120ce Mon Sep 17 00:00:00 2001 From: Lucas Brandstaetter <lucas@brandstaetter.tech> Date: Sat, 2 Nov 2024 09:26:03 +0100 Subject: [PATCH] Update assembly_links view --- .../locale/de/LC_MESSAGES/django.po | 9 ++++-- .../locale/en/LC_MESSAGES/django.po | 9 ++++-- .../templates/backoffice/assembly_detail.html | 8 +++++- .../templates/backoffice/assembly_edit.html | 6 ++-- .../backoffice/assembly_editlinks.html | 28 +++++++++++-------- src/backoffice/views/assemblies.py | 4 +++ src/core/models/assemblies.py | 1 + 7 files changed, 43 insertions(+), 22 deletions(-) diff --git a/src/backoffice/locale/de/LC_MESSAGES/django.po b/src/backoffice/locale/de/LC_MESSAGES/django.po index 8163ec99a..4290e78bf 100644 --- a/src/backoffice/locale/de/LC_MESSAGES/django.po +++ b/src/backoffice/locale/de/LC_MESSAGES/django.po @@ -338,6 +338,9 @@ msgstr "Anmelde-Informationen" msgid "assembly_links" msgstr "Befreundete Assemblies" +msgid "Edit" +msgstr "Bearbeiten" + msgid "no_entries" msgstr "keine Einträge" @@ -371,9 +374,6 @@ msgstr "Befreundete Assemblies" msgid "opensinnewpage" msgstr "öffnet in neuem Fenster/Tab" -msgid "Edit" -msgstr "Bearbeiten" - msgid "assemblyedit_children" msgstr "Zugeordnete Assemblies" @@ -401,6 +401,9 @@ msgstr "Bezug zu anderer Assembly herstellen" msgid "assemblyedit_links__intro" msgstr "Ihr fühlt euch einer anderen Assembly verbunden, möchtet eure Buddies in der Nähe haben? Lasst uns wissen wer sie sind!" +msgid "remove" +msgstr "entfernen" + msgid "Event-new" msgstr "Neue Veranstaltung" diff --git a/src/backoffice/locale/en/LC_MESSAGES/django.po b/src/backoffice/locale/en/LC_MESSAGES/django.po index 1e37ae805..5553fbae5 100644 --- a/src/backoffice/locale/en/LC_MESSAGES/django.po +++ b/src/backoffice/locale/en/LC_MESSAGES/django.po @@ -336,6 +336,9 @@ msgstr "registration details" msgid "assembly_links" msgstr "related assemblies" +msgid "Edit" +msgstr "" + msgid "no_entries" msgstr "no entries" @@ -369,9 +372,6 @@ msgstr "related assemblies" msgid "opensinnewpage" msgstr "opens in a new tab or window" -msgid "Edit" -msgstr "" - msgid "assemblyedit_children" msgstr "Grouped Assemblies" @@ -399,6 +399,9 @@ msgstr "Associate with another assembly" msgid "assemblyedit_links__intro" msgstr "You like to be close to your friends? Let us know who they are." +msgid "remove" +msgstr "remove" + msgid "Event-new" msgstr "new event" diff --git a/src/backoffice/templates/backoffice/assembly_detail.html b/src/backoffice/templates/backoffice/assembly_detail.html index 7a045c327..af23a6f1c 100644 --- a/src/backoffice/templates/backoffice/assembly_detail.html +++ b/src/backoffice/templates/backoffice/assembly_detail.html @@ -119,7 +119,13 @@ {% if assembly.hierarchy == 'regular' %} <div class="col-md-12"> <div class="card"> - <div class="card-header">{% trans "assembly_links" %}</div> + <div class="card-header"> + {% trans "assembly_links" %} + <a class="float-end btn btn-primary btn-sm" + href="{% url 'backoffice:assembly-editlinks' pk=assembly.pk %}" + target="_blank" + title="{% trans "Edit" %}">{% trans "Edit" %}</a> + </div> <div class="card-body"> {% with la=assembly.linked_assemblies %} {% if la|length > 0 %} diff --git a/src/backoffice/templates/backoffice/assembly_edit.html b/src/backoffice/templates/backoffice/assembly_edit.html index cec8b6840..84743ef97 100644 --- a/src/backoffice/templates/backoffice/assembly_edit.html +++ b/src/backoffice/templates/backoffice/assembly_edit.html @@ -90,9 +90,9 @@ <div class="card-body"> {% with la=assembly.linked_assemblies %} {% if la|length > 0 %} - <ul> + <ul class="list-group"> {% for linked in la %} - <li> + <li class="list-group-item"> <a href="{% url 'backoffice:assembly' pk=linked.pk %}" target="_blank">{{ linked.name }}</a> </li> {% endfor %} @@ -107,7 +107,7 @@ <a class="float-end btn btn-primary" href="{% url 'backoffice:assembly-editlinks' pk=assembly.pk %}" target="_blank" - title="{% trans "opensinnewpage" %}">{% trans "Edit" %} ({% trans "opensinnewpage" %})</a> + title="{% trans "Edit" %}">{% trans "Edit" %} ({% trans "opensinnewpage" %})</a> </div> {% else %} {# assembly.is_cluster #} diff --git a/src/backoffice/templates/backoffice/assembly_editlinks.html b/src/backoffice/templates/backoffice/assembly_editlinks.html index b08a37a0c..a9baba842 100644 --- a/src/backoffice/templates/backoffice/assembly_editlinks.html +++ b/src/backoffice/templates/backoffice/assembly_editlinks.html @@ -24,14 +24,14 @@ <form action="{% url 'backoffice:assembly-editlinks' pk=assembly.id %}" method="post"> {% csrf_token %} - <select class="form-control" name="add" required> - <option value="">({% trans "please_select" %})</option> - {% for a in candidates %} - <option value="{{ a.pk }}" - {% if a in links or a.pk == assembly.pk %}disabled{% endif %}>{{ a.name }}</option> - {% endfor %} - </select> - <button type="submit" class="btn btn-sm btn-secondary">{% trans "add" %}</button> + <div class="input-group"> + + <select class="form-select" name="add" required> + <option value="">({% trans "please_select" %})</option> + {% for a in candidates %}<option value="{{ a.pk }}">{{ a.name }}</option>{% endfor %} + </select> + <button type="submit" class="btn btn-sm btn-primary">{% trans "add" %}</button> + </div> </form> </div> </div> @@ -44,15 +44,19 @@ <div class="card-header">{% trans "assemblyedit_links" %}</div> <div class="card-body"> {% if links|length > 0 %} - <ul> + <ul class="list-group"> {% for link in links %} - <li> - {{ link.name }} (Slug: {{ link.slug }}) + <li class="list-group-item"> <form action="{% url 'backoffice:assembly-editlinks' pk=assembly.id %}" method="post"> + {{ link.name }} (Slug: {{ link.slug }}) {% csrf_token %} <input type="hidden" name="delete" value="{{ link.pk }}"> - <button type="submit" class="btn btn-sm btn-secondary">{% trans "delete" %}</button> + <span class="float-end"> + + <button type="submit" class="btn btn-outline-danger btn-sm">{% trans "remove" %}</button> + </span> + </form> </li> {% endfor %} diff --git a/src/backoffice/views/assemblies.py b/src/backoffice/views/assemblies.py index d5c894fbc..44f1a3134 100644 --- a/src/backoffice/views/assemblies.py +++ b/src/backoffice/views/assemblies.py @@ -535,6 +535,10 @@ class AssemblyEditLinksView(AssemblyMixin, View): Assembly.objects.associated_with_user(conference=self.conference, user=self.request.user) .filter(hierarchy=Assembly.Hierarchy.REGULAR) .exclude(state_assembly__in=[Assembly.State.NONE, Assembly.State.PLANNED, Assembly.State.HIDDEN, Assembly.State.REJECTED]) + # Remove self from list (cannot link to self) + .exclude(pk=self.assembly.pk) + # Remove already linked assemblies + .exclude(related_assemblies__a=self.assembly) ) candidates = list(candidates_qs.order_by('name')) context = self.get_context_data() diff --git a/src/core/models/assemblies.py b/src/core/models/assemblies.py index 5acc01978..bcc988744 100644 --- a/src/core/models/assemblies.py +++ b/src/core/models/assemblies.py @@ -354,6 +354,7 @@ class Assembly(TaggedItemMixin, models.Model): @property def linked_assemblies(self): qs = self.assembly_links.filter(is_public=True, type__in=AssemblyLink.PUBLIC_TYPES) + qs = qs.order_by('b__name') return [x.b for x in qs.select_related('b')] @property -- GitLab