From 75e6886e2d3f901da3d658d267380cda73b117ed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Benjamin=20H=C3=A4ttasch?=
 <benjamin.haettasch@fachschaft.informatik.tu-darmstadt.de>
Date: Sun, 9 May 2021 11:51:40 +0200
Subject: [PATCH] Unify scheduling admin url structure (now all
 admin/AKModel/event/slug/action)

---
 AKModel/admin.py     | 19 +++----------------
 AKScheduling/urls.py |  9 ++-------
 2 files changed, 5 insertions(+), 23 deletions(-)

diff --git a/AKModel/admin.py b/AKModel/admin.py
index 2d832ad3..4a28ed70 100644
--- a/AKModel/admin.py
+++ b/AKModel/admin.py
@@ -35,6 +35,9 @@ class EventAdmin(admin.ModelAdmin):
     def get_urls(self):
         urls = get_admin_urls_event_wizard(self.admin_site)
         urls.extend(get_admin_urls_event(self.admin_site))
+        if apps.is_installed("AKScheduling"):
+            from AKScheduling.urls import get_admin_urls_scheduling
+            urls.extend(get_admin_urls_scheduling(self.admin_site))
         urls.extend(super().get_urls())
         return urls
 
@@ -90,14 +93,6 @@ class AKTrackAdmin(admin.ModelAdmin):
             kwargs['initial'] = Event.get_next_active()
         return super(AKTrackAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
 
-    def get_urls(self):
-        urls = super().get_urls()
-        custom_urls = []
-        if apps.is_installed("AKScheduling"):
-            from AKScheduling.urls import get_admin_urls_track
-            custom_urls.extend(get_admin_urls_track(self.admin_site))
-        return custom_urls + urls
-
 
 @admin.register(AKTag)
 class AKTagAdmin(admin.ModelAdmin):
@@ -251,14 +246,6 @@ class AKSlotAdmin(admin.ModelAdmin):
     readonly_fields = ['ak_details_link', 'updated']
     form = AKSlotAdminForm
 
-    def get_urls(self):
-        urls = super().get_urls()
-        custom_urls = []
-        if apps.is_installed("AKScheduling"):
-            from AKScheduling.urls import get_admin_urls_slot
-            custom_urls.extend(get_admin_urls_slot(self.admin_site))
-        return custom_urls + urls
-
     def get_form(self, request, obj=None, change=False, **kwargs):
         # Use timezone of associated event
         if obj is not None and obj.event.timezone:
diff --git a/AKScheduling/urls.py b/AKScheduling/urls.py
index 4fb483a1..171f3a1a 100644
--- a/AKScheduling/urls.py
+++ b/AKScheduling/urls.py
@@ -3,17 +3,12 @@ from django.urls import path
 from AKScheduling.views import SchedulingAdminView, UnscheduledSlotsAdminView, TrackAdminView
 
 
-def get_admin_urls_slot(admin_site):
+def get_admin_urls_scheduling(admin_site):
     return [
         path('<slug:event_slug>/schedule/', admin_site.admin_view(SchedulingAdminView.as_view()),
              name="schedule"),
         path('<slug:event_slug>/unscheduled/', admin_site.admin_view(UnscheduledSlotsAdminView.as_view()),
              name="slots_unscheduled"),
-    ]
-
-
-def get_admin_urls_track(admin_site):
-    return [
-        path('<slug:event_slug>/manage/', admin_site.admin_view(TrackAdminView.as_view()),
+        path('<slug:event_slug>/tracks/', admin_site.admin_view(TrackAdminView.as_view()),
              name="tracks_manage"),
     ]
-- 
GitLab