From a39a5311c22cdee009b83d55edcdc242a6283650 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20H=C3=A4ttasch?= <benjamin.haettasch@fachschaft.informatik.tu-darmstadt.de> Date: Fri, 24 Mar 2023 19:05:56 +0100 Subject: [PATCH 1/2] Introduce detail and edit URLs as properties in AK model This way, the frontend views will be used when AKSubmission is installed and active, or otherwise the link to the built-in AK edit form in backend This reduces the coupling between AKSubmission and other apps that previously needed that app Use that new property in all places where previously an URL to the submission view was used (for consistency and to allow changes in one place in AKSubmission, too) This implements #166 --- AKDashboard/views.py | 6 ++--- AKModel/admin.py | 2 +- AKModel/models.py | 13 +++++++++++ .../admin/AKModel/render_ak_messages.html | 2 +- .../admin/AKModel/requirements_overview.html | 4 ++-- AKPlan/templates/AKPlan/encode_events.html | 2 +- AKPlan/templates/AKPlan/plan_room.html | 2 +- AKPlan/templates/AKPlan/plan_track.html | 2 +- AKPlan/templates/AKPlan/slots_table.html | 2 +- .../admin/AKScheduling/special_attention.html | 8 +++---- .../admin/AKScheduling/unscheduled.html | 2 +- AKSubmission/models.py | 4 ++-- .../templates/AKSubmission/ak_detail.html | 2 +- .../templates/AKSubmission/ak_edit.html | 2 +- .../templates/AKSubmission/ak_history.html | 4 ++-- .../AKSubmission/ak_linked_list_inline.html | 2 +- .../templates/AKSubmission/ak_table.html | 6 ++--- .../templates/AKSubmission/akmessage_add.html | 4 ++-- .../AKSubmission/akslot_add_update.html | 4 ++-- .../templates/AKSubmission/akslot_delete.html | 4 ++-- AKSubmission/views.py | 22 ++++++++----------- 21 files changed, 53 insertions(+), 46 deletions(-) diff --git a/AKDashboard/views.py b/AKDashboard/views.py index 5f2f5282..88e3443e 100644 --- a/AKDashboard/views.py +++ b/AKDashboard/views.py @@ -48,8 +48,7 @@ class DashboardEventView(DetailView): text = _('AK "%(ak)s" deleted.') % {'ak': s.name} icon = ('times', 'fas') - recent_changes.append({'icon': icon, 'text': text, 'link': reverse_lazy('submit:ak_detail', kwargs={ - 'event_slug': context['event'].slug, 'pk': s.id}), 'timestamp': s.history_date}) + recent_changes.append({'icon': icon, 'text': text, 'link': s.instance.detail_url, 'timestamp': s.history_date}) # Changes in plan if apps.is_installed("AKPlan"): @@ -59,8 +58,7 @@ class DashboardEventView(DetailView): for changed_slot in last_changed_slots: recent_changes.append({'icon': ('clock', 'far'), 'text': _('AK "%(ak)s" (re-)scheduled.') % {'ak': changed_slot.ak.name}, - 'link': reverse_lazy('submit:ak_detail', kwargs={ - 'event_slug': context['event'].slug, 'pk': changed_slot.ak.id}), + 'link': changed_slot.ak.detail_url, 'timestamp': changed_slot.updated}) # Sort by change date... diff --git a/AKModel/admin.py b/AKModel/admin.py index a6e6b79e..ad8b7636 100644 --- a/AKModel/admin.py +++ b/AKModel/admin.py @@ -308,7 +308,7 @@ class AKSlotAdmin(admin.ModelAdmin): @display(description=_('AK Details')) def ak_details_link(self, akslot): if apps.is_installed("AKSubmission") and akslot.ak is not None: - link = f"<a href={reverse('submit:ak_detail', args=[akslot.event.slug, akslot.ak.pk])}>{str(akslot.ak)}</a>" + link = f"<a href={{ akslot.detail_url }}>{str(akslot.ak)}</a>" return mark_safe(link) return "-" diff --git a/AKModel/models.py b/AKModel/models.py index 5cf5fac7..45621af8 100644 --- a/AKModel/models.py +++ b/AKModel/models.py @@ -2,6 +2,7 @@ import itertools from datetime import timedelta from django.db import models +from django.apps import apps from django.db.models import Count from django.urls import reverse_lazy from django.utils import timezone @@ -326,6 +327,18 @@ class AK(models.Model): def availabilities(self): return "Availability".objects.filter(ak=self) + @property + def edit_url(self): + if apps.is_installed("AKScheduling"): + return reverse_lazy('submit:ak_edit', kwargs={'event_slug': self.event.slug, 'pk': self.id}) + return reverse_lazy('admin:AKModel_ak_change', kwargs={'object_id': self.id}) + + @property + def detail_url(self): + if apps.is_installed("AKScheduling"): + return reverse_lazy('submit:ak_detail', kwargs={'event_slug': self.event.slug, 'pk': self.id}) + return self.edit_url + class Room(models.Model): """ A room describes where an AK can be held. diff --git a/AKModel/templates/admin/AKModel/render_ak_messages.html b/AKModel/templates/admin/AKModel/render_ak_messages.html index 9be788ec..e62ccbb7 100644 --- a/AKModel/templates/admin/AKModel/render_ak_messages.html +++ b/AKModel/templates/admin/AKModel/render_ak_messages.html @@ -4,7 +4,7 @@ <span class="text-secondary float-end"> {{ message.timestamp|date:"Y-m-d H:i:s" }} </span> - <h5><a href="{% url 'submit:ak_detail' event_slug=message.ak.event.slug pk=message.ak.pk %}">{{ message.ak }}</a></h5> + <h5><a href="{{ message.ak.detail_url }}">{{ message.ak }}</a></h5> <p>{{ message.text }}</p> </td></tr> {% endfor %} diff --git a/AKModel/templates/admin/AKModel/requirements_overview.html b/AKModel/templates/admin/AKModel/requirements_overview.html index b557a9c2..11d9ace2 100644 --- a/AKModel/templates/admin/AKModel/requirements_overview.html +++ b/AKModel/templates/admin/AKModel/requirements_overview.html @@ -23,11 +23,11 @@ <td>{{ ak }}</td> {% if "AKSubmission"|check_app_installed %} <td class="text-end"> - <a href="{% url 'submit:ak_detail' event_slug=ak.event.slug pk=ak.pk %}" data-bs-toggle="tooltip" + <a href="{{ ak.detail_url }}" data-bs-toggle="tooltip" title="{% trans 'Details' %}" class="btn btn-primary">{% fa6_icon 'info' 'fas' %}</a> {% if event.active %} - <a href="{% url 'submit:ak_edit' event_slug=event.slug pk=ak.pk %}" data-bs-toggle="tooltip" + <a href="{{ ak.edit_url }}" data-bs-toggle="tooltip" title="{% trans 'Edit' %}" class="btn btn-success">{% fa6_icon 'pencil-alt' 'fas' %}</a> {% endif %} diff --git a/AKPlan/templates/AKPlan/encode_events.html b/AKPlan/templates/AKPlan/encode_events.html index 10db556d..d9614f48 100644 --- a/AKPlan/templates/AKPlan/encode_events.html +++ b/AKPlan/templates/AKPlan/encode_events.html @@ -12,7 +12,7 @@ 'resourceId': '{{ slot.room.title }}', 'backgroundColor': '{{ slot|highlight_change_colors }}', 'borderColor': '{{ slot.ak.category.color }}', - 'url': '{% url 'submit:ak_detail' event_slug=event.slug pk=slot.ak.pk %}' + 'url': '{{ slot.ak.detail_url }}' }, {% endif %} {% endfor %} diff --git a/AKPlan/templates/AKPlan/plan_room.html b/AKPlan/templates/AKPlan/plan_room.html index 430fd9b0..c538e8b4 100644 --- a/AKPlan/templates/AKPlan/plan_room.html +++ b/AKPlan/templates/AKPlan/plan_room.html @@ -21,7 +21,7 @@ {'title': '{{ slot.ak }}', 'start': '{{ slot.start | timezone:event.timezone | date:"Y-m-d H:i:s" }}', 'end': '{{ slot.end | timezone:event.timezone | date:"Y-m-d H:i:s" }}', - 'url': '{% url 'submit:ak_detail' event_slug=event.slug pk=slot.ak.pk %}', + 'url': '{{ slot.ak.detail_url }}', 'borderColor': '{{ slot.ak.track.color }}', 'color': '{{ slot.ak.category.color }}', }, diff --git a/AKPlan/templates/AKPlan/plan_track.html b/AKPlan/templates/AKPlan/plan_track.html index 98e43078..bc4cfdd6 100644 --- a/AKPlan/templates/AKPlan/plan_track.html +++ b/AKPlan/templates/AKPlan/plan_track.html @@ -19,7 +19,7 @@ {'title': '{{ slot.ak }} @ {{ slot.room }}', 'start': '{{ slot.start | timezone:event.timezone | date:"Y-m-d H:i:s" }}', 'end': '{{ slot.end | timezone:event.timezone | date:"Y-m-d H:i:s" }}', - 'url': '{% url 'submit:ak_detail' event_slug=event.slug pk=slot.ak.pk %}', + 'url': '{{ slot.ak.detail_url }}', 'color': '{{ track.color }}', 'borderColor': '{{ slot.ak.category.color }}', }, diff --git a/AKPlan/templates/AKPlan/slots_table.html b/AKPlan/templates/AKPlan/slots_table.html index a9d0b7a6..5401126e 100644 --- a/AKPlan/templates/AKPlan/slots_table.html +++ b/AKPlan/templates/AKPlan/slots_table.html @@ -4,7 +4,7 @@ <table class="table table-striped"> {% for akslot in slots %} <tr> - <td class="breakWord"><b><a href="{% url 'submit:ak_detail' event_slug=event.slug pk=akslot.ak.pk %}">{{ akslot.ak.name }}</a></b></td> + <td class="breakWord"><b><a href="{{ akslot.ak.detail_url }}">{{ akslot.ak.name }}</a></b></td> <td>{{ akslot.start | time:"H:i" }} - {{ akslot.end | time:"H:i" }}</td> <td class="breakWord">{% if akslot.room and akslot.room.pk != '' %} <a href="{% url 'plan:plan_room' event_slug=event.slug pk=akslot.room.pk %}">{{ akslot.room }}</a> diff --git a/AKScheduling/templates/admin/AKScheduling/special_attention.html b/AKScheduling/templates/admin/AKScheduling/special_attention.html index f0cc5f58..7591cdb5 100644 --- a/AKScheduling/templates/admin/AKScheduling/special_attention.html +++ b/AKScheduling/templates/admin/AKScheduling/special_attention.html @@ -13,14 +13,14 @@ {% block content %} <h4 class="mt-4 mb-4">{% trans "AKs with public notes" %}</h4> {% for ak in aks_with_comment %} - <a href="{% url "submit:ak_edit" event_slug=event.slug pk=ak.pk %}">{{ ak }}</a><br>{{ ak.notes }}<br><br> + <a href="{{ ak.edit_url }}">{{ ak }}</a><br>{{ ak.notes }}<br><br> {% empty %} - {% endfor %} <h4 class="mt-4 mb-4">{% trans "AKs without availabilities" %}</h4> {% for ak in aks_without_availabilities %} - <a href="{% url "submit:ak_edit" event_slug=event.slug pk=ak.pk %}">{{ ak }}</a><br> + <a href="{{ ak.edit_url }}">{{ ak }}</a><br> {% empty %} -<br> {% endfor %} @@ -30,7 +30,7 @@ <h4 class="mt-4 mb-4">{% trans "AK wishes with slots" %}</h4> {% for ak in ak_wishes_with_slots %} - <a href="{% url "submit:ak_detail" event_slug=event.slug pk=ak.pk %}">{{ ak }}</a> <a href="{% url "admin:AKModel_akslot_changelist" %}?ak={{ ak.pk }}">({{ ak.akslot__count }})</a><br> + <a href="{{ ak.detail_url }}">{{ ak }}</a> <a href="{% url "admin:AKModel_akslot_changelist" %}?ak={{ ak.pk }}">({{ ak.akslot__count }})</a><br> {% empty %} -<br> {% endfor %} @@ -39,7 +39,7 @@ <h4 class="mt-4 mb-4">{% trans "AKs without slots" %}</h4> {% for ak in aks_without_slots %} - <a href="{% url "submit:ak_detail" event_slug=event.slug pk=ak.pk %}">{{ ak }}</a><br> + <a href="{{ ak.detail_url }}">{{ ak }}</a><br> {% empty %} -<br> {% endfor %} diff --git a/AKScheduling/templates/admin/AKScheduling/unscheduled.html b/AKScheduling/templates/admin/AKScheduling/unscheduled.html index 18bbe051..f78d435d 100644 --- a/AKScheduling/templates/admin/AKScheduling/unscheduled.html +++ b/AKScheduling/templates/admin/AKScheduling/unscheduled.html @@ -17,7 +17,7 @@ <li> {% with group.grouper as ak %} {% if "AKSubmission"|check_app_installed %} - <a href="{% url 'submit:ak_detail' event_slug=ak.event.slug pk=ak.pk %}">{{ ak }}</a> + <a href="{{ ak.detail_url }}">{{ ak }}</a> {% else %} {{ ak }} {% endif %} diff --git a/AKSubmission/models.py b/AKSubmission/models.py index cd8a855b..ef1bff7a 100644 --- a/AKSubmission/models.py +++ b/AKSubmission/models.py @@ -14,7 +14,7 @@ def orga_message_saved_handler(sender, instance: AKOrgaMessage, created, **kwarg if created and settings.SEND_MAILS: host = 'https://' + settings.ALLOWED_HOSTS[0] if len(settings.ALLOWED_HOSTS) > 0 else 'http://127.0.0.1:8000' - url = f"{host}{reverse_lazy('submit:ak_detail', kwargs={'pk': instance.ak.pk, 'event_slug': instance.ak.event.slug})}" + url = f"{host}{instance.ak.detail_url}" mail = EmailMessage( f"[AKPlanning] New message for AK '{instance.ak}' ({instance.ak.event})", @@ -31,7 +31,7 @@ def slot_created_handler(sender, instance: AKSlot, created, **kwargs): if created and settings.SEND_MAILS and apps.is_installed("AKPlan") and not instance.event.plan_hidden and instance.room is None and instance.start is None: host = 'https://' + settings.ALLOWED_HOSTS[0] if len(settings.ALLOWED_HOSTS) > 0 else 'http://127.0.0.1:8000' - url = f"{host}{reverse_lazy('submit:ak_detail', kwargs={'pk': instance.ak.pk, 'event_slug': instance.ak.event.slug})}" + url = f"{host}{instance.ak.detail_url}" mail = EmailMessage( f"[AKPlanning] New slot for AK '{instance.ak}' ({instance.ak.event}) added", diff --git a/AKSubmission/templates/AKSubmission/ak_detail.html b/AKSubmission/templates/AKSubmission/ak_detail.html index eba22297..41433189 100644 --- a/AKSubmission/templates/AKSubmission/ak_detail.html +++ b/AKSubmission/templates/AKSubmission/ak_detail.html @@ -120,7 +120,7 @@ <a href="{% url 'submit:akmessage_add' event_slug=ak.event.slug pk=ak.pk %}" data-bs-toggle="tooltip" title="{% trans 'Add confidential message to organizers' %}" class="btn btn-warning">{% fa6_icon 'envelope' 'fas' %}</a> - <a href="{% url 'submit:ak_edit' event_slug=ak.event.slug pk=ak.pk %}" data-bs-toggle="tooltip" + <a href="{{ ak.edit_url }}" data-bs-toggle="tooltip" title="{% trans 'Edit' %}" class="btn btn-success">{% fa6_icon 'pencil-alt' 'fas' %}</a> {% endif %} diff --git a/AKSubmission/templates/AKSubmission/ak_edit.html b/AKSubmission/templates/AKSubmission/ak_edit.html index 72dff0d1..4ef14eec 100644 --- a/AKSubmission/templates/AKSubmission/ak_edit.html +++ b/AKSubmission/templates/AKSubmission/ak_edit.html @@ -12,7 +12,7 @@ <li class="breadcrumb-item"><a href="{% url 'submit:submission_overview' event_slug=event.slug %}">{% trans "AK Submission" %}</a></li> <li class="breadcrumb-item"><a - href="{% url 'submit:ak_detail' event_slug=event.slug pk=ak.pk %}">{{ ak.short_name }}</a></li> + href="{{ ak.detail_url }}">{{ ak.short_name }}</a></li> <li class="breadcrumb-item active">{% trans "Edit" %}</li> {% endblock %} diff --git a/AKSubmission/templates/AKSubmission/ak_history.html b/AKSubmission/templates/AKSubmission/ak_history.html index bcc8963c..b5306506 100644 --- a/AKSubmission/templates/AKSubmission/ak_history.html +++ b/AKSubmission/templates/AKSubmission/ak_history.html @@ -15,7 +15,7 @@ <li class="breadcrumb-item"><a href="{% url 'submit:submission_overview' event_slug=ak.event.slug %}">{% trans "AK Submission" %}</a></li> <li class="breadcrumb-item"><a - href='{% url 'submit:ak_detail' event_slug=ak.event.slug pk=ak.pk %}'>{{ ak.short_name }}</a></li> + href='{{ ak.detail_url }}'>{{ ak.short_name }}</a></li> <li class="breadcrumb-item active">{% trans 'History' %}</li> {% endblock %} @@ -23,7 +23,7 @@ {% include "messages.html" %} <div class="float-end"> - <a href='{% url 'submit:ak_detail' event_slug=ak.event.slug pk=ak.pk %}' data-bs-toggle="tooltip" + <a href='{{ ak.detail_url }}' data-bs-toggle="tooltip" title="{% trans 'Back' %}" class="btn btn-info">{% fa6_icon 'arrow-circle-left' 'fas' %}</a> </div> diff --git a/AKSubmission/templates/AKSubmission/ak_linked_list_inline.html b/AKSubmission/templates/AKSubmission/ak_linked_list_inline.html index f5b504f7..dd7f7cce 100644 --- a/AKSubmission/templates/AKSubmission/ak_linked_list_inline.html +++ b/AKSubmission/templates/AKSubmission/ak_linked_list_inline.html @@ -2,7 +2,7 @@ {% if forloop.counter0 > 0 %} , {% endif %} - <a href="{% url 'submit:ak_detail' event_slug=slug pk=ak.pk %}">{{ ak }}</a> + <a href="{{ ak.detail_url }}">{{ ak }}</a> {% empty %} - {% endfor %} diff --git a/AKSubmission/templates/AKSubmission/ak_table.html b/AKSubmission/templates/AKSubmission/ak_table.html index d856a896..775e95e0 100644 --- a/AKSubmission/templates/AKSubmission/ak_table.html +++ b/AKSubmission/templates/AKSubmission/ak_table.html @@ -16,7 +16,7 @@ {% for ak in AKs %} <tr> <td> - <a href="{% url 'submit:ak_detail' event_slug=ak.event.slug pk=ak.pk %}" + <a href="{{ ak.detail_url }}" class="text-dark text-decoration-none font-weight-bold"> {{ ak.name }} </a> @@ -38,7 +38,7 @@ </td> <td>{% category_linked_badge ak.category event.slug %}</td> <td class="text-end" style="white-space: nowrap;"> - <a href="{% url 'submit:ak_detail' event_slug=ak.event.slug pk=ak.pk %}" data-bs-toggle="tooltip" + <a href="{{ ak.detail_url }}" data-bs-toggle="tooltip" title="{% trans 'Details' %}" class="btn btn-primary">{% fa6_icon 'info' 'fas' %}</a> {% if ak.link %} @@ -47,7 +47,7 @@ class="btn btn-info">{% fa6_icon 'external-link-alt' 'fas' %}</a> {% endif %} {% if event.active %} - <a href="{% url 'submit:ak_edit' event_slug=event.slug pk=ak.pk %}" data-bs-toggle="tooltip" + <a href="{{ ak.edit_url }}" data-bs-toggle="tooltip" title="{% trans 'Edit' %}" class="btn btn-success">{% fa6_icon 'pencil-alt' 'fas' %}</a> {% if interest_indication_active %} diff --git a/AKSubmission/templates/AKSubmission/akmessage_add.html b/AKSubmission/templates/AKSubmission/akmessage_add.html index ea85b8c9..2dd17e01 100644 --- a/AKSubmission/templates/AKSubmission/akmessage_add.html +++ b/AKSubmission/templates/AKSubmission/akmessage_add.html @@ -12,7 +12,7 @@ <li class="breadcrumb-item"><a href="{% url 'submit:submission_overview' event_slug=event.slug %}">{% trans "AK Submission" %}</a></li> <li class="breadcrumb-item"><a - href="{% url 'submit:ak_detail' event_slug=event.slug pk=ak.pk %}">{{ ak.short_name }}</a></li> + href="{{ ak.detail_url }}">{{ ak.short_name }}</a></li> <li class="breadcrumb-item active">{% trans "Add confidential message to organizers" %}</li> {% endblock %} @@ -31,7 +31,7 @@ {% fa6_icon "undo-alt" 'fas' %} {% trans "Reset Form" %} </button> - <a href="{% url 'submit:ak_detail' event_slug=event.slug pk=ak.pk %}" class="btn btn-secondary"> + <a href="{{ ak.detail_url }}" class="btn btn-secondary"> {% fa6_icon "times" 'fas' %} {% trans "Cancel" %} </a> </form> diff --git a/AKSubmission/templates/AKSubmission/akslot_add_update.html b/AKSubmission/templates/AKSubmission/akslot_add_update.html index ac0d6d13..c650b084 100644 --- a/AKSubmission/templates/AKSubmission/akslot_add_update.html +++ b/AKSubmission/templates/AKSubmission/akslot_add_update.html @@ -11,7 +11,7 @@ <li class="breadcrumb-item"><a href="{% url 'submit:submission_overview' event_slug=event.slug %}">{% trans "AK Submission" %}</a></li> <li class="breadcrumb-item"><a - href="{% url 'submit:ak_detail' event_slug=event.slug pk=ak.pk %}">{{ ak.short_name }}</a></li> + href="{{ ak.detail_url }}">{{ ak.short_name }}</a></li> <li class="breadcrumb-item active">{% trans "AK Duration(s)" %}</li> {% endblock %} @@ -29,7 +29,7 @@ {% fa6_icon "undo-alt" 'fas' %} {% trans "Reset Form" %} </button> - <a href="{% url 'submit:ak_detail' event_slug=event.slug pk=ak.pk %}" class="btn btn-secondary"> + <a href="{{ ak.detail_url }}" class="btn btn-secondary"> {% fa6_icon "times" 'fas' %} {% trans "Cancel" %} </a> </form> diff --git a/AKSubmission/templates/AKSubmission/akslot_delete.html b/AKSubmission/templates/AKSubmission/akslot_delete.html index 613d69a5..d2599872 100644 --- a/AKSubmission/templates/AKSubmission/akslot_delete.html +++ b/AKSubmission/templates/AKSubmission/akslot_delete.html @@ -11,7 +11,7 @@ <li class="breadcrumb-item"><a href="{% url 'submit:submission_overview' event_slug=event.slug %}">{% trans "AK Submission" %}</a></li> <li class="breadcrumb-item"><a - href="{% url 'submit:ak_detail' event_slug=event.slug pk=ak.pk %}">{{ ak.short_name }}</a></li> + href="{{ ak.detail_url }}">{{ ak.short_name }}</a></li> <li class="breadcrumb-item active">{% trans "AK Duration(s)" %}</li> {% endblock %} @@ -41,7 +41,7 @@ {% fa6_icon "check" 'fas' %} {% trans "Confirm" %} </button> - <a href="{% url 'submit:ak_detail' event_slug=event.slug pk=ak.pk %}" class="btn btn-secondary"> + <a href="{{ ak.detail_url }}" class="btn btn-secondary"> {% fa6_icon "times" 'fas' %} {% trans "Cancel" %} </a> </form> diff --git a/AKSubmission/views.py b/AKSubmission/views.py index 5f3f42b9..1b865843 100644 --- a/AKSubmission/views.py +++ b/AKSubmission/views.py @@ -199,7 +199,7 @@ class AKAndAKWishSubmissionView(EventSlugMixin, EventInactiveRedirectMixin, Crea def get_success_url(self): messages.add_message(self.request, messages.SUCCESS, _("AK successfully created")) - return reverse_lazy('submit:ak_detail', kwargs={'event_slug': self.kwargs['event_slug'], 'pk': self.object.pk}) + return self.object.detail_url def form_valid(self, form): if not form.cleaned_data["event"].active: @@ -249,7 +249,7 @@ class AKEditView(EventSlugMixin, EventInactiveRedirectMixin, UpdateView): def get_success_url(self): messages.add_message(self.request, messages.SUCCESS, _("AK successfully updated")) - return reverse_lazy('submit:ak_detail', kwargs={'event_slug': self.kwargs['event_slug'], 'pk': self.object.pk}) + return self.object.detail_url def form_valid(self, form): if not form.cleaned_data["event"].active: @@ -287,7 +287,7 @@ class AKOwnerCreateView(EventSlugMixin, EventInactiveRedirectMixin, CreateView): ak.owners.add(self.object) messages.add_message(self.request, messages.SUCCESS, _("Added '{owner}' as new owner of '{ak.name}'").format(owner=self.object, ak=ak)) - return reverse_lazy('submit:ak_detail', kwargs={'event_slug': self.kwargs['event_slug'], 'pk': ak.pk}) + return ak.detail_url return reverse_lazy('submit:submit_ak', kwargs={'event_slug': self.kwargs['event_slug'], 'owner_slug': self.object.slug}) @@ -375,8 +375,7 @@ class AKSlotAddView(EventSlugMixin, EventInactiveRedirectMixin, CreateView): def get_success_url(self): messages.add_message(self.request, messages.SUCCESS, _("AK Slot successfully added")) - return reverse_lazy('submit:ak_detail', - kwargs={'event_slug': self.kwargs['event_slug'], 'pk': self.object.ak.pk}) + return self.object.ak.detail_url class AKSlotEditView(EventSlugMixin, EventInactiveRedirectMixin, UpdateView): @@ -389,7 +388,7 @@ class AKSlotEditView(EventSlugMixin, EventInactiveRedirectMixin, UpdateView): if akslot.start is not None: messages.add_message(self.request, messages.WARNING, _("You cannot edit a slot that has already been scheduled")) - return redirect('submit:ak_detail', event_slug=self.kwargs['event_slug'], pk=akslot.ak.pk) + return HttpResponseRedirect(akslot.ak.detail_url) return super().get(request, *args, **kwargs) def get_context_data(self, *, object_list=None, **kwargs): @@ -399,8 +398,7 @@ class AKSlotEditView(EventSlugMixin, EventInactiveRedirectMixin, UpdateView): def get_success_url(self): messages.add_message(self.request, messages.SUCCESS, _("AK Slot successfully updated")) - return reverse_lazy('submit:ak_detail', - kwargs={'event_slug': self.kwargs['event_slug'], 'pk': self.object.ak.pk}) + return self.object.ak.detail_url class AKSlotDeleteView(EventSlugMixin, EventInactiveRedirectMixin, DeleteView): @@ -412,7 +410,7 @@ class AKSlotDeleteView(EventSlugMixin, EventInactiveRedirectMixin, DeleteView): if akslot.start is not None: messages.add_message(self.request, messages.WARNING, _("You cannot delete a slot that has already been scheduled")) - return redirect('submit:ak_detail', event_slug=self.kwargs['event_slug'], pk=akslot.ak.pk) + return HttpResponseRedirect(akslot.ak.detail_url) return super().get(request, *args, **kwargs) def get_context_data(self, *, object_list=None, **kwargs): @@ -422,8 +420,7 @@ class AKSlotDeleteView(EventSlugMixin, EventInactiveRedirectMixin, DeleteView): def get_success_url(self): messages.add_message(self.request, messages.SUCCESS, _("AK Slot successfully deleted")) - return reverse_lazy('submit:ak_detail', - kwargs={'event_slug': self.kwargs['event_slug'], 'pk': self.object.ak.pk}) + return self.object.ak.detail_url class AKAddOrgaMessageView(EventSlugMixin, CreateView): @@ -444,5 +441,4 @@ class AKAddOrgaMessageView(EventSlugMixin, CreateView): def get_success_url(self): messages.add_message(self.request, messages.SUCCESS, _("Message to organizers successfully saved")) - return reverse_lazy('submit:ak_detail', - kwargs={'event_slug': self.kwargs['event_slug'], 'pk': self.object.ak.pk}) + return self.object.ak.detail_url -- GitLab From a867f11cfe500e79cfcc0878d6ec0663fa4c6969 Mon Sep 17 00:00:00 2001 From: Nadja Geisler <ngeisler@fachschaft.informatik.tu-darmstadt.de> Date: Mon, 15 May 2023 17:53:44 +0000 Subject: [PATCH 2/2] fix faulty App requirement --- AKModel/models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AKModel/models.py b/AKModel/models.py index 45621af8..d37a7d02 100644 --- a/AKModel/models.py +++ b/AKModel/models.py @@ -329,13 +329,13 @@ class AK(models.Model): @property def edit_url(self): - if apps.is_installed("AKScheduling"): + if apps.is_installed("AKSubmission"): return reverse_lazy('submit:ak_edit', kwargs={'event_slug': self.event.slug, 'pk': self.id}) return reverse_lazy('admin:AKModel_ak_change', kwargs={'object_id': self.id}) @property def detail_url(self): - if apps.is_installed("AKScheduling"): + if apps.is_installed("AKSubmission"): return reverse_lazy('submit:ak_detail', kwargs={'event_slug': self.event.slug, 'pk': self.id}) return self.edit_url -- GitLab