diff --git a/src/backoffice/locale/de/LC_MESSAGES/django.po b/src/backoffice/locale/de/LC_MESSAGES/django.po index 8163ec99a5db56226038c4ead7ae943e1942661e..4290e78bfcb7cac481bdb7368860a35f5067b7cc 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 1e37ae805e1e2b896ef406dd658f06a6a7d50728..5553fbae5d1970a18b668839ecde2a77f88d515e 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 7a045c3279ffac66ff789e45f378705490c3031c..af23a6f1c85adce251871ce058e2d44e45154d93 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 cec8b6840a067d297da712a0b019b6f459631bf6..84743ef972261c01dc1d86154f622b15cb09acde 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 b08a37a0c1cdabbe2ac6bd7fa7ac02d3898adcc8..a9baba8428cde8781f30f665d17cd217ba41f5bf 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 d5c894fbc64d1872d30c00d28867687532ad1b68..44f1a31340a97c99dfe17e4020d38dd70009783a 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 5acc01978b75af7ddb30e0f9e21273af787f352e..bcc988744176e98a5195cebf60a81ace8cc8808c 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