diff --git a/AKDashboard/views.py b/AKDashboard/views.py index 5f2f52826cb83575222ff52df67e7aba3eeb8a4b..88e3443e3f4c4378f52ff63b002186176d1fe546 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 a6e6b79ee4f152c0c8db0630d03b1f652fefddca..ad8b76363b9dd4c6c38f6f832f0c1d23fcfcd730 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 5cf5fac7331741b180a4bb0d784d9f6a04f4dc02..d37a7d02330a502408063e25c14100cfffcf7955 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("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("AKSubmission"): + 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 9be788ec11aa2a39bfd3d916f53e5ffd28788a95..e62ccbb76c2daeba0b9a91b1d26b5953127b9249 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 b557a9c275cf6ba9c7db05f381cd3dbf04b105b7..11d9ace2a50d5c5fedd55c48c297096a6a2462f0 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 10db556de477a4641732f28fdd5bdc95ae50d210..d9614f48007f6e0d30d7958eef3b156a19c1b87c 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 430fd9b04246b984a4d9a8d42c6c2876cd16d1d5..c538e8b4ab5da2dc21b4ac38fbf2708e2cfde609 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 98e4307861ba9884f5579deb8be595f1a99e02cf..bc4cfdd6c02591f02e72efb21fd935c14c0c18e4 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 a9d0b7a611591871fc82dde35e6c18de11d21335..5401126e2424af668144821f92ac7ed1cdd1ae61 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 f0cc5f58b28d8676d7e3556fd9a66aa5315a0fab..7591cdb5143751a7990f83decf555fb3673e4700 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 18bbe051fc2ae18e2cf9e1383ab238c1762f240e..f78d435d28d22f53ad8e07d50b0dc3ca23da2cc6 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 cd8a855b735c823a304a3b78c68f28efd42dc9a9..ef1bff7a11e17e483fed79316c0cc03ed143a982 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 eba22297893250349fdeed865637925fe9145400..41433189a7374ceee293d9ed25243c98f77ad061 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 72dff0d1d785f200691a1cc5ddd5292bb23e6fa7..4ef14eecb60aa776814f75d85ca95e32c8251fd8 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 bcc8963cf4afbc7afe96cddaa3f9e434e8a9902e..b530650693da2865ec7a323b830cbe6f636651da 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 f5b504f7c07b8d008c32bd3cdab9911d1415b22b..dd7f7cce9b4f1127c26a5af1d5b9949844587157 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 d856a89674a4958ee83a498346bd0cd7ea94a1ac..775e95e003bd7d19a16b2954d9d6a193d1861a33 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 ea85b8c966b4576232acc993992e7d69473ea4c7..2dd17e0129ef701fe128f84951a291023dffdf6b 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 ac0d6d136c90dcb7d90ab37dcc39022389704724..c650b08444c1ef139e28b719ee17180a0f183fcf 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 613d69a5d0e4bddebae1688857b1676efa560460..d2599872839849387d36a33d5c9f9d24959813b8 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 5f3f42b902fca36f0e89565c76badf00723270b6..1b865843f6b452c709924d3dd9765fdee554655d 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