From 89e608f7c96a3ec58a9fe4201cbe8859b6dbb8d4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jean-S=C3=A9bastien=20Caux?= <git@jscaux.org>
Date: Wed, 7 Dec 2022 09:30:24 +0100
Subject: [PATCH] Reorganize edadmin urls

---
 ...ssion_edadmin.html => _hx_submission.html} |  0
 .../edadmin/_hx_submissions_list.html         |  2 +-
 scipost_django/edadmin/urls/__init__.py       | 24 +------
 scipost_django/edadmin/urls/base.py           | 30 ++++++++
 scipost_django/edadmin/urls/incoming.py       | 70 +++++++++++--------
 scipost_django/edadmin/views/base.py          |  6 +-
 6 files changed, 76 insertions(+), 56 deletions(-)
 rename scipost_django/edadmin/templates/edadmin/{_hx_submission_edadmin.html => _hx_submission.html} (100%)
 create mode 100644 scipost_django/edadmin/urls/base.py

diff --git a/scipost_django/edadmin/templates/edadmin/_hx_submission_edadmin.html b/scipost_django/edadmin/templates/edadmin/_hx_submission.html
similarity index 100%
rename from scipost_django/edadmin/templates/edadmin/_hx_submission_edadmin.html
rename to scipost_django/edadmin/templates/edadmin/_hx_submission.html
diff --git a/scipost_django/edadmin/templates/edadmin/_hx_submissions_list.html b/scipost_django/edadmin/templates/edadmin/_hx_submissions_list.html
index 54f3b6cfe..ed22dfeba 100644
--- a/scipost_django/edadmin/templates/edadmin/_hx_submissions_list.html
+++ b/scipost_django/edadmin/templates/edadmin/_hx_submissions_list.html
@@ -30,7 +30,7 @@
       </div>
     </summary>
     <div id="submission-{{ submission.pk }}-edadmin"
-	 hx-get="{% url 'edadmin:_hx_submission_edadmin' identifier_w_vn_nr=submission.preprint.identifier_w_vn_nr %}"
+	 hx-get="{% url 'edadmin:_hx_submission' identifier_w_vn_nr=submission.preprint.identifier_w_vn_nr %}"
 	 hx-trigger="toggle once from:#submission-{{ submission.pk }}-details, submission-{{ submission.pk }}-details-updated"
     >
     </div>
diff --git a/scipost_django/edadmin/urls/__init__.py b/scipost_django/edadmin/urls/__init__.py
index 8b96a1393..d53944f28 100644
--- a/scipost_django/edadmin/urls/__init__.py
+++ b/scipost_django/edadmin/urls/__init__.py
@@ -2,32 +2,12 @@ __copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
 __license__ = "AGPL v3"
 
 
-from django.urls import include, path, register_converter
-
-from ..converters import SubmissionStageSlugConverter
-from ..views import base
+from django.urls import include, path
 
 app_name = "edadmin"
 
 
-register_converter(SubmissionStageSlugConverter, "stage")
-
 urlpatterns = [
-    path("", base.edadmin, name="edadmin"),
-    path(
-        "<stage:stage>",
-        base._hx_submissions_in_stage,
-        name="_hx_submissions_in_stage",
-    ),
-    path(
-        "<identifier:identifier_w_vn_nr>/",
-        include([
-            path(
-                "_hx_submission_edadmin",
-                incoming._hx_submission_edadmin,
-                name="_hx_submission_edadmin",
-            ),
-        ]),
-    ),
+    path("", include("edadmin.urls.base")),
     path("incoming/", include("edadmin.urls.incoming")),
 ]
diff --git a/scipost_django/edadmin/urls/base.py b/scipost_django/edadmin/urls/base.py
new file mode 100644
index 000000000..e99112d78
--- /dev/null
+++ b/scipost_django/edadmin/urls/base.py
@@ -0,0 +1,30 @@
+__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
+__license__ = "AGPL v3"
+
+
+from django.urls import include, path, register_converter
+
+from ..converters import SubmissionStageSlugConverter
+from ..views import base
+
+register_converter(SubmissionStageSlugConverter, "stage")
+
+
+urlpatterns = [
+    path("", base.edadmin, name="edadmin"),
+    path(
+        "<stage:stage>",
+        base._hx_submissions_in_stage,
+        name="_hx_submissions_in_stage",
+    ),
+    path(
+        "<identifier:identifier_w_vn_nr>/",
+        include([
+            path(
+                "",
+                base._hx_submission,
+                name="_hx_submission",
+            ),
+        ]),
+    ),
+]
diff --git a/scipost_django/edadmin/urls/incoming.py b/scipost_django/edadmin/urls/incoming.py
index 7aa3a90ca..14e75d365 100644
--- a/scipost_django/edadmin/urls/incoming.py
+++ b/scipost_django/edadmin/urls/incoming.py
@@ -8,41 +8,51 @@ from ..views import incoming
 
 
 urlpatterns = [
-    path(
-        "_hx_incoming_list",
-        incoming._hx_incoming_list,
-        name="_hx_incoming_list",
-    ),
-    path(
+    path( # "incoming/<identifier>/"
         "<identifier:identifier_w_vn_nr>/",
         include([
-            path(
-                "_hx_submission_admissibility",
+            path( # "incoming/<identifier>/admissibility"
+                "admissibility",
                 incoming._hx_submission_admissibility,
                 name="_hx_submission_admissibility",
             ),
-            path(
-                "_hx_plagiarism_internal",
-                incoming._hx_plagiarism_internal,
-                name="_hx_plagiarism_internal",
-            ),
-            path(
-                "_hx_plagiarism_internal_assess",
-                incoming._hx_plagiarism_internal_assess,
-                name="_hx_plagiarism_internal_assess",
-            ),
-            path(
-                "_hx_plagiarism_iThenticate",
-                incoming._hx_plagiarism_iThenticate,
-                name="_hx_plagiarism_iThenticate",
-            ),
-            path(
-                "_hx_plagiarism_iThenticate_assess",
-                incoming._hx_plagiarism_iThenticate_assess,
-                name="_hx_plagiarism_iThenticate_assess",
-            ),
-            path(
-                "_hx_submission_admission",
+            path( # "incoming/<identifier>/plagiarism/"
+                "plagiarism/",
+                include([
+                    path( # "incoming/<identifier>/plagiarism/internal/"
+                        "internal/",
+                        include([
+                            path(
+                                "",
+                                incoming._hx_plagiarism_internal,
+                                name="_hx_plagiarism_internal",
+                            ),
+                            path(
+                                "assess",
+                                incoming._hx_plagiarism_internal_assess,
+                                name="_hx_plagiarism_internal_assess",
+                            ),
+                            ]),
+                    ), # end "internal/"
+                    path( # "incoming/<identifier>/plagiarism/iThenticate/"
+                        "iThenticate/",
+                        include([
+                            path(
+                                "",
+                                incoming._hx_plagiarism_iThenticate,
+                                name="_hx_plagiarism_iThenticate",
+                            ),
+                            path(
+                                "assess",
+                                incoming._hx_plagiarism_iThenticate_assess,
+                                name="_hx_plagiarism_iThenticate_assess",
+                            ),
+                        ]),
+                    ), # end "iThenticate/"
+                ]),
+            ), # end "plagiarism/"
+            path( # "incoming/<identifier>/admission"
+                "admission",
                 incoming._hx_submission_admission,
                 name="_hx_submission_admission",
             ),
diff --git a/scipost_django/edadmin/views/base.py b/scipost_django/edadmin/views/base.py
index c9aa781f5..32192a4e8 100644
--- a/scipost_django/edadmin/views/base.py
+++ b/scipost_django/edadmin/views/base.py
@@ -6,7 +6,7 @@ import operator
 
 from django.contrib.auth.decorators import login_required, user_passes_test
 from django.http import Http404
-from django.shortcuts import render
+from django.shortcuts import get_object_or_404, render
 
 from guardian.shortcuts import get_objects_for_user
 
@@ -41,9 +41,9 @@ def _hx_submissions_in_stage(request, stage):
 
 @login_required
 @user_passes_test(is_edadmin)
-def _hx_submission_edadmin(request, identifier_w_vn_nr):
+def _hx_submission(request, identifier_w_vn_nr):
     submission = get_object_or_404(
         Submission, preprint__identifier_w_vn_nr=identifier_w_vn_nr
     )
     context = {"submission": submission,}
-    return render(request, "edadmin/_hx_submission_edadmin.html", context)
+    return render(request, "edadmin/_hx_submission.html", context)
-- 
GitLab