From d3be287368510353691c20ce681722a73b0f51f0 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:19:36 +0200
Subject: [PATCH] Move scheduling admin view urls to separate file

Additionally fix wrong app installed check for ak detail link (should be AKSubmission, not AKScheduling)
---
 AKModel/admin.py     | 20 +++++---------------
 AKScheduling/urls.py | 19 +++++++++++++++++++
 2 files changed, 24 insertions(+), 15 deletions(-)
 create mode 100644 AKScheduling/urls.py

diff --git a/AKModel/admin.py b/AKModel/admin.py
index 9427710f..886e353b 100644
--- a/AKModel/admin.py
+++ b/AKModel/admin.py
@@ -117,12 +117,8 @@ class AKTrackAdmin(admin.ModelAdmin):
         urls = super().get_urls()
         custom_urls = []
         if apps.is_installed("AKScheduling"):
-            from AKScheduling.views import TrackAdminView
-
-            custom_urls.extend([
-                path('<slug:event_slug>/manage/', self.admin_site.admin_view(TrackAdminView.as_view()),
-                     name="tracks_manage"),
-            ])
+            from AKScheduling.urls import get_admin_urls_track
+            custom_urls.extend(get_admin_urls_track(self.admin_site))
         return custom_urls + urls
 
 
@@ -282,14 +278,8 @@ class AKSlotAdmin(admin.ModelAdmin):
         urls = super().get_urls()
         custom_urls = []
         if apps.is_installed("AKScheduling"):
-            from AKScheduling.views import SchedulingAdminView, UnscheduledSlotsAdminView
-
-            custom_urls.extend([
-                path('<slug:event_slug>/schedule/', self.admin_site.admin_view(SchedulingAdminView.as_view()),
-                     name="schedule"),
-                path('<slug:event_slug>/unscheduled/', self.admin_site.admin_view(UnscheduledSlotsAdminView.as_view()),
-                     name="slots_unscheduled"),
-            ])
+            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):
@@ -307,7 +297,7 @@ class AKSlotAdmin(admin.ModelAdmin):
         return super(AKSlotAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
 
     def ak_details_link(self, akslot):
-        if apps.is_installed("AKScheduling") and akslot.ak is not None:
+        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>"
             return mark_safe(link)
         return "-"
diff --git a/AKScheduling/urls.py b/AKScheduling/urls.py
new file mode 100644
index 00000000..4fb483a1
--- /dev/null
+++ b/AKScheduling/urls.py
@@ -0,0 +1,19 @@
+from django.urls import path
+
+from AKScheduling.views import SchedulingAdminView, UnscheduledSlotsAdminView, TrackAdminView
+
+
+def get_admin_urls_slot(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()),
+             name="tracks_manage"),
+    ]
-- 
GitLab