From 9cd7ab08aff397d914f1be074eff338af70165b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jean-S=C3=A9bastien=20Caux?= <git@jscaux.org>
Date: Wed, 7 Dec 2022 20:01:18 +0100
Subject: [PATCH] Change submissions.urls from module to package, add pool
 namespace

---
 .../edadmin/templates/edadmin/edadmin.html    |  2 +-
 scipost_django/edadmin/urls/incoming.py       | 20 +++---
 .../scipost/templates/scipost/navbar.html     |  2 +-
 .../scipost/personal_page/_hx_account.html    |  2 +-
 .../scipost/personal_page/_hx_edadmin.html    |  8 +--
 .../scipost/portal/_hx_tasklist.html          |  2 +-
 .../templates/scipost/portal/navbar.html      |  2 +-
 .../submissions/models/assignment.py          |  2 +-
 .../_hx_submission_update_preprint_file.html  |  2 +-
 .../_hx_submission_update_target_journal.html |  2 +-
 ..._submission_update_target_proceedings.html |  2 +-
 .../templates/submissions/admin/base.html     |  4 +-
 ...tml => iThenticate_plagiarism_report.html} |  0
 .../submissions/editorial_workflow.html       |  4 +-
 .../submissions/pool/_hx_submission_li.html   |  6 +-
 .../pool/_hx_submission_li_details.html       |  2 +-
 ...ns_list.html => _hx_submissions_list.html} |  2 +-
 .../submissions/{ => pool}/_remark_form.html  |  4 +-
 .../pool/_submission_assignment_request.html  |  2 +-
 .../pool/_submission_info_table.html          |  2 +-
 .../submissions/pool/assignments.html         |  2 +-
 .../templates/submissions/pool/base.html      |  2 +-
 .../templates/submissions/pool/pool.html      |  6 +-
 .../submissions/{urls.py => urls/__init__.py} | 46 ++-----------
 scipost_django/submissions/urls/pool.py       | 65 +++++++++++++++++++
 scipost_django/submissions/views.py           | 37 +++++------
 .../email/eic/assignment_request.html         |  2 +-
 .../email_fellow_fellowship_start.html        |  2 +-
 .../email_fellow_replaced_by_other.html       |  2 +-
 .../email/fellows/email_fellow_tasklist.html  |  6 +-
 30 files changed, 136 insertions(+), 106 deletions(-)
 rename scipost_django/submissions/templates/submissions/admin/{plagiarism_report.html => iThenticate_plagiarism_report.html} (100%)
 rename scipost_django/submissions/templates/submissions/pool/{hx_submissions_list.html => _hx_submissions_list.html} (90%)
 rename scipost_django/submissions/templates/submissions/{ => pool}/_remark_form.html (73%)
 rename scipost_django/submissions/{urls.py => urls/__init__.py} (91%)
 create mode 100644 scipost_django/submissions/urls/pool.py

diff --git a/scipost_django/edadmin/templates/edadmin/edadmin.html b/scipost_django/edadmin/templates/edadmin/edadmin.html
index 9da448b91..10ee1c53b 100644
--- a/scipost_django/edadmin/templates/edadmin/edadmin.html
+++ b/scipost_django/edadmin/templates/edadmin/edadmin.html
@@ -7,7 +7,7 @@
     <div class="container">
       <nav class="breadcrumb hidden-sm-down">
         {% block breadcrumb_items %}
-          <a href="{% url 'submissions:pool' %}" class="breadcrumb-item">EdAdmin</a>
+          <a href="{% url 'submissions:pool:pool' %}" class="breadcrumb-item">EdAdmin</a>
         {% endblock %}
       </nav>
     </div>
diff --git a/scipost_django/edadmin/urls/incoming.py b/scipost_django/edadmin/urls/incoming.py
index 14e75d365..8d511c5c0 100644
--- a/scipost_django/edadmin/urls/incoming.py
+++ b/scipost_django/edadmin/urls/incoming.py
@@ -7,19 +7,19 @@ from django.urls import include, path
 from ..views import incoming
 
 
-urlpatterns = [
-    path( # "incoming/<identifier>/"
+urlpatterns = [ # building on /edadmin/incoming/
+    path( # <identifier>/
         "<identifier:identifier_w_vn_nr>/",
         include([
-            path( # "incoming/<identifier>/admissibility"
+            path( # incoming/<identifier>/admissibility
                 "admissibility",
                 incoming._hx_submission_admissibility,
                 name="_hx_submission_admissibility",
             ),
-            path( # "incoming/<identifier>/plagiarism/"
+            path( # incoming/<identifier>/plagiarism/
                 "plagiarism/",
                 include([
-                    path( # "incoming/<identifier>/plagiarism/internal/"
+                    path( # incoming/<identifier>/plagiarism/internal/
                         "internal/",
                         include([
                             path(
@@ -33,8 +33,8 @@ urlpatterns = [
                                 name="_hx_plagiarism_internal_assess",
                             ),
                             ]),
-                    ), # end "internal/"
-                    path( # "incoming/<identifier>/plagiarism/iThenticate/"
+                    ), # end internal/
+                    path( # incoming/<identifier>/plagiarism/iThenticate/
                         "iThenticate/",
                         include([
                             path(
@@ -48,10 +48,10 @@ urlpatterns = [
                                 name="_hx_plagiarism_iThenticate_assess",
                             ),
                         ]),
-                    ), # end "iThenticate/"
+                    ), # end iThenticate/
                 ]),
-            ), # end "plagiarism/"
-            path( # "incoming/<identifier>/admission"
+            ), # end plagiarism/
+            path( # incoming/<identifier>/admission
                 "admission",
                 incoming._hx_submission_admission,
                 name="_hx_submission_admission",
diff --git a/scipost_django/scipost/templates/scipost/navbar.html b/scipost_django/scipost/templates/scipost/navbar.html
index 1bf11c40e..77ac81edc 100644
--- a/scipost_django/scipost/templates/scipost/navbar.html
+++ b/scipost_django/scipost/templates/scipost/navbar.html
@@ -184,7 +184,7 @@
                 </div>
                 {% if is_active_fellow %}
                   <div class="dropdown-item">
-                    <a href="{% url 'submissions:pool' %}">Submissions Pool</a>
+                    <a href="{% url 'submissions:pool:pool' %}">Submissions Pool</a>
                   </div>
                 {% endif %}
 	      {% endif %}
diff --git a/scipost_django/scipost/templates/scipost/personal_page/_hx_account.html b/scipost_django/scipost/templates/scipost/personal_page/_hx_account.html
index 2d3eb1721..51e04815a 100644
--- a/scipost_django/scipost/templates/scipost/personal_page/_hx_account.html
+++ b/scipost_django/scipost/templates/scipost/personal_page/_hx_account.html
@@ -150,7 +150,7 @@
           </li>
         {% endfor %}
       </ul>
-      <a href="{% url 'submissions:pool' %}" class="h3 text-primary ms-4 px-3 d-block-inline">Go to the Submissions Pool</a>
+      <a href="{% url 'submissions:pool:pool' %}" class="h3 text-primary ms-4 px-3 d-block-inline">Go to the Submissions Pool</a>
     {% endif %}
 
     <h3 class="mt-3">Update your personal data or password</h3>
diff --git a/scipost_django/scipost/templates/scipost/personal_page/_hx_edadmin.html b/scipost_django/scipost/templates/scipost/personal_page/_hx_edadmin.html
index 07063daa5..d1ef8e320 100644
--- a/scipost_django/scipost/templates/scipost/personal_page/_hx_edadmin.html
+++ b/scipost_django/scipost/templates/scipost/personal_page/_hx_edadmin.html
@@ -39,7 +39,7 @@
       <h3>Editorial Admin actions</h3>
       <ul>
         <li><a href="{% url 'submissions:reports_accepted_list' %}">Accepted Reports</a>{% if nr_reports_without_pdf %} ({{nr_reports_without_pdf}} unfinished){% endif %}</li>
-        <li><a href="{% url 'submissions:pool' %}">Submissions Pool</a></li>
+        <li><a href="{% url 'submissions:pool:pool' %}">Submissions Pool</a></li>
         <li><a href="{% url 'submissions:treated_submissions_list' %}">Fully treated Submissions</a>{% if nr_treated_submissions_without_pdf %} ({{nr_treated_submissions_without_pdf}} unfinished){% endif %}</li>
         <li><a href="{% url 'journals:harvest_citedby_list' %}">Harvest citedby data</a></li>
         <li><a href="{% url 'journals:manage_comment_metadata' %}">Manage Comment metadata</a></li>
@@ -71,10 +71,10 @@
         <li><a href="{% url 'colleges:fellowships' %}">Assignments overview</a></li>
 
         {% if perms.scipost.can_assign_submissions %}
-          <li>Assign Submissions via the <a href="{% url 'submissions:pool' %}">Submissions Pool</a> ({{ nr_submissions_to_assign }})</li>
+          <li>Assign Submissions via the <a href="{% url 'submissions:pool:pool' %}">Submissions Pool</a> ({{ nr_submissions_to_assign }})</li>
         {% endif %}
         {% if request.user.contributor.is_active_fellow %}
-          <li>Accept or decline assignments via the <a href="{% url 'submissions:pool' %}">Submissions Pool</a> ({{ nr_assignments_to_consider }})</li>
+          <li>Accept or decline assignments via the <a href="{% url 'submissions:pool:pool' %}">Submissions Pool</a> ({{ nr_assignments_to_consider }})</li>
         {% endif %}
       </ul>
 
@@ -86,7 +86,7 @@
         </ul>
         <h3>Voting</h3>
         <ul>
-          <li>Prepare Editorial Recommendations for voting via the <a href="{% url 'submissions:pool' %}">Submissions Pool</a> ({{ nr_recommendations_to_prepare_for_voting }})</li>
+          <li>Prepare Editorial Recommendations for voting via the <a href="{% url 'submissions:pool:pool' %}">Submissions Pool</a> ({{ nr_recommendations_to_prepare_for_voting }})</li>
         </ul>
       {% endif %}
     </div>
diff --git a/scipost_django/scipost/templates/scipost/portal/_hx_tasklist.html b/scipost_django/scipost/templates/scipost/portal/_hx_tasklist.html
index 268a0875e..670c9ef42 100644
--- a/scipost_django/scipost/templates/scipost/portal/_hx_tasklist.html
+++ b/scipost_django/scipost/templates/scipost/portal/_hx_tasklist.html
@@ -10,7 +10,7 @@
       <ul>
 	{% for assignment in assignments_to_consider %}
 	  <li>On submission: {{ assignment.submission }}<br>
-            <a class="btn btn-sm btn-primary" href="{% url 'submissions:assignment_request' assignment.id %}">Accept or decline here</a>
+            <a class="btn btn-sm btn-primary" href="{% url 'submissions:pool:assignment_request' assignment.id %}">Accept or decline here</a>
 	  </li>
 	{% endfor %}
       </ul>
diff --git a/scipost_django/scipost/templates/scipost/portal/navbar.html b/scipost_django/scipost/templates/scipost/portal/navbar.html
index 31d1b0748..edeced9a7 100644
--- a/scipost_django/scipost/templates/scipost/portal/navbar.html
+++ b/scipost_django/scipost/templates/scipost/portal/navbar.html
@@ -107,7 +107,7 @@
                 </div>
                 {% if is_active_fellow %}
                   <div class="dropdown-item">
-                    <a href="{% url 'submissions:pool' %}">Submissions Pool</a>
+                    <a href="{% url 'submissions:pool:pool' %}">Submissions Pool</a>
                   </div>
                 {% endif %}
 	      {% endif %}
diff --git a/scipost_django/submissions/models/assignment.py b/scipost_django/submissions/models/assignment.py
index 436f24023..a7000adef 100644
--- a/scipost_django/submissions/models/assignment.py
+++ b/scipost_django/submissions/models/assignment.py
@@ -62,7 +62,7 @@ class EditorialAssignment(SubmissionRelatedObjectMixin, models.Model):
 
     def get_absolute_url(self):
         """Return the url of the assignment's processing page."""
-        return reverse("submissions:assignment_request", args=(self.id,))
+        return reverse("submissions:pool:assignment_request", args=(self.id,))
 
     @property
     def preassigned(self):
diff --git a/scipost_django/submissions/templates/submissions/admin/_hx_submission_update_preprint_file.html b/scipost_django/submissions/templates/submissions/admin/_hx_submission_update_preprint_file.html
index 823548d30..8561acab8 100644
--- a/scipost_django/submissions/templates/submissions/admin/_hx_submission_update_preprint_file.html
+++ b/scipost_django/submissions/templates/submissions/admin/_hx_submission_update_preprint_file.html
@@ -3,7 +3,7 @@
   <p><strong>Update the preprint pdf</strong>
     <button
 	type="button" class="ms-2 px-1 py-0 btn btn-sm btn-outline-danger"
-	hx-get="{% url 'submissions:pool_hx_submission_li_details' submission.preprint.identifier_w_vn_nr %}"
+	hx-get="{% url 'submissions:pool:_hx_submission_li_details' submission.preprint.identifier_w_vn_nr %}"
 	hx-target="#details_{{ submission.id }}"
     >
       cancel
diff --git a/scipost_django/submissions/templates/submissions/admin/_hx_submission_update_target_journal.html b/scipost_django/submissions/templates/submissions/admin/_hx_submission_update_target_journal.html
index 2ff290779..0f1e7b78f 100644
--- a/scipost_django/submissions/templates/submissions/admin/_hx_submission_update_target_journal.html
+++ b/scipost_django/submissions/templates/submissions/admin/_hx_submission_update_target_journal.html
@@ -3,7 +3,7 @@
   <p><strong>Update the target Journal</strong>
     <button
 	type="button" class="ms-2 px-1 py-0 btn btn-sm btn-outline-danger"
-	hx-get="{% url 'submissions:pool_hx_submission_li_details' form.instance.preprint.identifier_w_vn_nr %}"
+	hx-get="{% url 'submissions:pool:_hx_submission_li_details' form.instance.preprint.identifier_w_vn_nr %}"
 	hx-target="#details_{{ form.instance.id }}"
     >
       cancel
diff --git a/scipost_django/submissions/templates/submissions/admin/_hx_submission_update_target_proceedings.html b/scipost_django/submissions/templates/submissions/admin/_hx_submission_update_target_proceedings.html
index 8659ab8b4..5f6165cbb 100644
--- a/scipost_django/submissions/templates/submissions/admin/_hx_submission_update_target_proceedings.html
+++ b/scipost_django/submissions/templates/submissions/admin/_hx_submission_update_target_proceedings.html
@@ -3,7 +3,7 @@
   <p><strong>Update the target Proceedings</strong>
     <button
       type="button" class="ms-2 px-1 py-0 btn btn-sm btn-outline-danger"
-	    hx-get="{% url 'submissions:pool_hx_submission_li_details' form.instance.preprint.identifier_w_vn_nr %}"
+	    hx-get="{% url 'submissions:pool:_hx_submission_li_details' form.instance.preprint.identifier_w_vn_nr %}"
 	    hx-target="#details_{{ form.instance.id }}"
     >
       cancel
diff --git a/scipost_django/submissions/templates/submissions/admin/base.html b/scipost_django/submissions/templates/submissions/admin/base.html
index e10c73c1e..b63b8a904 100644
--- a/scipost_django/submissions/templates/submissions/admin/base.html
+++ b/scipost_django/submissions/templates/submissions/admin/base.html
@@ -6,9 +6,9 @@
       <nav class="breadcrumb hidden-sm-down">
         {% block breadcrumb_items %}
           {% if submission %}
-            <a href="{% url 'submissions:pool' submission.preprint.identifier_w_vn_nr %}" class="breadcrumb-item">Pool</a>
+            <a href="{% url 'submissions:pool:pool' submission.preprint.identifier_w_vn_nr %}" class="breadcrumb-item">Pool</a>
           {% else %}
-            <a href="{% url 'submissions:pool' %}" class="breadcrumb-item">Pool</a>
+            <a href="{% url 'submissions:pool:pool' %}" class="breadcrumb-item">Pool</a>
           {% endif %}
         {% endblock %}
       </nav>
diff --git a/scipost_django/submissions/templates/submissions/admin/plagiarism_report.html b/scipost_django/submissions/templates/submissions/admin/iThenticate_plagiarism_report.html
similarity index 100%
rename from scipost_django/submissions/templates/submissions/admin/plagiarism_report.html
rename to scipost_django/submissions/templates/submissions/admin/iThenticate_plagiarism_report.html
diff --git a/scipost_django/submissions/templates/submissions/editorial_workflow.html b/scipost_django/submissions/templates/submissions/editorial_workflow.html
index 5d270022a..1798ac684 100644
--- a/scipost_django/submissions/templates/submissions/editorial_workflow.html
+++ b/scipost_django/submissions/templates/submissions/editorial_workflow.html
@@ -36,7 +36,7 @@
     <div class="col-12">
       <h3 class="highlight">The Submissions Pool</h3>
       <p>
-        At any moment, you can peruse the <a href="{% url 'submissions:pool' %}">
+        At any moment, you can peruse the <a href="{% url 'submissions:pool:pool' %}">
         Submissions Pool</a> in order to view the status of all Submissions
         currently undergoing peer review in SciPost. Only members of the Editorial
         College and Editorial Administrators have access to this page.
@@ -52,7 +52,7 @@
       <p>You can become Editor-in-charge of a Submission by either:
         <ul>
           <li>accepting an assignment request (emailed to you by an Editorial Administrator)</li>
-          <li>volunteering directly from the <a href="{% url 'submissions:pool' %}">
+          <li>volunteering directly from the <a href="{% url 'submissions:pool:pool' %}">
             Submissions Pool</a>.</li>
         </ul>
         For each incoming Submission, assignment requests are emailed to a handful of
diff --git a/scipost_django/submissions/templates/submissions/pool/_hx_submission_li.html b/scipost_django/submissions/templates/submissions/pool/_hx_submission_li.html
index 6b99a2c79..6585317c5 100644
--- a/scipost_django/submissions/templates/submissions/pool/_hx_submission_li.html
+++ b/scipost_django/submissions/templates/submissions/pool/_hx_submission_li.html
@@ -36,7 +36,7 @@
 	    <li>Seeking assignment</li>
 	  {% else %}
             <li>You can
-	      <a href="{% url 'submissions:editorial_assignment' submission.preprint.identifier_w_vn_nr %}"><strong class="text-danger">volunteer to become Editor-in-charge</strong></a>
+	      <a href="{% url 'submissions:pool:editorial_assignment' submission.preprint.identifier_w_vn_nr %}"><strong class="text-danger">volunteer to become Editor-in-charge</strong></a>
 	    </li>
 	  {% endif %}
 	  {% if request.user.contributor.is_active_senior_fellow %}
@@ -107,14 +107,14 @@
     {% if invitations %}
       <div class="border border-warning mt-1 py-1 px-2">
         <span class="mt-1 px-1 text-danger">{% include 'bi/exclamation.html' %}</i>
-          You are invited to become Editor-in-charge of this Submission. <a href="{% url 'submissions:editorial_assignment' submission.preprint.identifier_w_vn_nr %}">You can reply to this invitation here</a>.
+          You are invited to become Editor-in-charge of this Submission. <a href="{% url 'submissions:pool:editorial_assignment' submission.preprint.identifier_w_vn_nr %}">You can reply to this invitation here</a>.
       </div>
     {% endif %}
   {% endif %}
 
   <div id="details_{{ submission.id }}" class="mt-2">
     <button type="button" class="btn btn-primary p-1 mx-auto"
-	    hx-get="{% url 'submissions:pool_hx_submission_li_details' submission.preprint.identifier_w_vn_nr %}"
+	    hx-get="{% url 'submissions:pool:_hx_submission_li_details' submission.preprint.identifier_w_vn_nr %}"
 	    hx-target="#details_{{ submission.id }}"
 	    hx-indicator="#indicator-details-{{ submission.id }}"
     >
diff --git a/scipost_django/submissions/templates/submissions/pool/_hx_submission_li_details.html b/scipost_django/submissions/templates/submissions/pool/_hx_submission_li_details.html
index 81e8b55bc..a0cd2935f 100644
--- a/scipost_django/submissions/templates/submissions/pool/_hx_submission_li_details.html
+++ b/scipost_django/submissions/templates/submissions/pool/_hx_submission_li_details.html
@@ -28,7 +28,7 @@
     <hr>
     <h3>Remarks on this submission:</h3>
     {% if remark_form %}
-      {% include 'submissions/_remark_form.html' with submission=submission form=remark_form auto_show=1 %}
+      {% include 'submissions/pool/_remark_form.html' with submission=submission form=remark_form auto_show=1 %}
     {% endif %}
     <p class="mb-1">Current remarks:</p>
     <ul>
diff --git a/scipost_django/submissions/templates/submissions/pool/hx_submissions_list.html b/scipost_django/submissions/templates/submissions/pool/_hx_submissions_list.html
similarity index 90%
rename from scipost_django/submissions/templates/submissions/pool/hx_submissions_list.html
rename to scipost_django/submissions/templates/submissions/pool/_hx_submissions_list.html
index 7eb1a20d9..bc01be873 100644
--- a/scipost_django/submissions/templates/submissions/pool/hx_submissions_list.html
+++ b/scipost_django/submissions/templates/submissions/pool/_hx_submissions_list.html
@@ -7,7 +7,7 @@
   <li>No Submission could be found</li>
 {% endfor %}
 {% if page_obj.has_next %}
-  <li hx-post="{% url 'submissions:pool_hx_submissions_list' %}?page={{ page_obj.next_page_number }}"
+  <li hx-post="{% url 'submissions:pool:_hx_submissions_list' %}?page={{ page_obj.next_page_number }}"
       hx-include="#search-form"
       hx-trigger="revealed"
       hx-swap="afterend"
diff --git a/scipost_django/submissions/templates/submissions/_remark_form.html b/scipost_django/submissions/templates/submissions/pool/_remark_form.html
similarity index 73%
rename from scipost_django/submissions/templates/submissions/_remark_form.html
rename to scipost_django/submissions/templates/submissions/pool/_remark_form.html
index d7a05e6c1..9700b37e1 100644
--- a/scipost_django/submissions/templates/submissions/_remark_form.html
+++ b/scipost_django/submissions/templates/submissions/pool/_remark_form.html
@@ -1,7 +1,7 @@
 {% load bootstrap %}
 
 {% if auto_show %}
-  <form action="{% url 'submissions:add_remark' submission.preprint.identifier_w_vn_nr %}" method="post" class="pb-2">
+  <form action="{% url 'submissions:pool:add_remark' submission.preprint.identifier_w_vn_nr %}" method="post" class="pb-2">
     {% csrf_token %}
     {{ form|bootstrap:'0,12' }}
     <input class="btn btn-outline-secondary" type="submit" value="Submit" />
@@ -9,7 +9,7 @@
 {% else %}
   <button class="btn btn-outline-secondary mb-2" data-bs-toggle="toggle" data-bs-target="#remarkForm{{ submission.id }}" id="remarkButton{{ submission.id }}">Add a remark on this Submission</button>
   <div class="submitRemarkForm pb-2" id="remarkForm{{ submission.id }}" style="display:none;">
-    <form action="{% url 'submissions:add_remark' submission.preprint.identifier_w_vn_nr %}" method="post">
+    <form action="{% url 'submissions:pool:add_remark' submission.preprint.identifier_w_vn_nr %}" method="post">
       {% csrf_token %}
       {{ form|bootstrap:'0,12' }}
       <input class="btn btn-outline-secondary" type="submit" value="Submit" />
diff --git a/scipost_django/submissions/templates/submissions/pool/_submission_assignment_request.html b/scipost_django/submissions/templates/submissions/pool/_submission_assignment_request.html
index 90d7aa714..8a99f7c52 100644
--- a/scipost_django/submissions/templates/submissions/pool/_submission_assignment_request.html
+++ b/scipost_django/submissions/templates/submissions/pool/_submission_assignment_request.html
@@ -6,7 +6,7 @@
 <h2 class="highlight">Accept or Decline this Assignment</h2>
 <h3 class="mb-2">By accepting, you will be required to start a refereeing round on the next screen.</h3>
 
-<form action="{% url 'submissions:assignment_request' assignment_id=assignment.id %}" method="post">
+<form action="{% url 'submissions:pool:assignment_request' assignment_id=assignment.id %}" method="post">
   {% csrf_token %}
   <div class="form-group row">
     <div class="col-12">
diff --git a/scipost_django/submissions/templates/submissions/pool/_submission_info_table.html b/scipost_django/submissions/templates/submissions/pool/_submission_info_table.html
index 6a81fca12..61d9ac7a5 100644
--- a/scipost_django/submissions/templates/submissions/pool/_submission_info_table.html
+++ b/scipost_django/submissions/templates/submissions/pool/_submission_info_table.html
@@ -50,7 +50,7 @@
 	    <li>Seeking assignment</li>
 	  {% else %}
             <li>You can
-	      <a href="{% url 'submissions:editorial_assignment' submission.preprint.identifier_w_vn_nr %}"><strong class="text-danger">volunteer to become Editor-in-charge</strong></a>
+	      <a href="{% url 'submissions:pool:editorial_assignment' submission.preprint.identifier_w_vn_nr %}"><strong class="text-danger">volunteer to become Editor-in-charge</strong></a>
 	    </li>
 	  {% endif %}
 	  {% if request.user.contributor.is_active_senior_fellow %}
diff --git a/scipost_django/submissions/templates/submissions/pool/assignments.html b/scipost_django/submissions/templates/submissions/pool/assignments.html
index e11dbe4b9..a725ba5c8 100644
--- a/scipost_django/submissions/templates/submissions/pool/assignments.html
+++ b/scipost_django/submissions/templates/submissions/pool/assignments.html
@@ -15,7 +15,7 @@
     <ul>
       {% for assignment in assignments_to_consider %}
         <li>On submission: {{ assignment.submission }}<br>
-          <a href="{% url 'submissions:assignment_request' assignment.id %}">Accept or decline here</a>
+          <a href="{% url 'submissions:pool:assignment_request' assignment.id %}">Accept or decline here</a>
         </li>
       {% endfor %}
     </ul>
diff --git a/scipost_django/submissions/templates/submissions/pool/base.html b/scipost_django/submissions/templates/submissions/pool/base.html
index f038d9240..97d671435 100644
--- a/scipost_django/submissions/templates/submissions/pool/base.html
+++ b/scipost_django/submissions/templates/submissions/pool/base.html
@@ -7,7 +7,7 @@
     <div class="container">
       <nav class="breadcrumb hidden-sm-down">
         {% block breadcrumb_items %}
-          <a href="{% url 'submissions:pool' %}" class="breadcrumb-item">Pool</a>
+          <a href="{% url 'submissions:pool:pool' %}" class="breadcrumb-item">Pool</a>
         {% endblock %}
       </nav>
     </div>
diff --git a/scipost_django/submissions/templates/submissions/pool/pool.html b/scipost_django/submissions/templates/submissions/pool/pool.html
index b32317330..90696fbca 100644
--- a/scipost_django/submissions/templates/submissions/pool/pool.html
+++ b/scipost_django/submissions/templates/submissions/pool/pool.html
@@ -11,7 +11,7 @@
     <div class="container">
       <nav class="breadcrumb hidden-sm-down">
         {% block breadcrumb_items %}
-          <a href="{% url 'submissions:pool' %}" class="breadcrumb-item">Pool</a>
+          <a href="{% url 'submissions:pool:pool' %}" class="breadcrumb-item">Pool</a>
         {% endblock %}
       </nav>
     </div>
@@ -44,7 +44,7 @@
       <ul>
         {% for assignment in assignments_to_consider %}
           <li>On submission: {{ assignment.submission }}<br>
-            <a href="{% url 'submissions:assignment_request' assignment.id %}">Accept or decline here</a>
+            <a href="{% url 'submissions:pool:assignment_request' assignment.id %}">Accept or decline here</a>
           </li>
         {% endfor %}
       </ul>
@@ -81,7 +81,7 @@
     </div>
     <div class="card-body">
       <form
-	  hx-post="{% url 'submissions:pool_hx_submissions_list' %}"
+	  hx-post="{% url 'submissions:pool:_hx_submissions_list' %}"
 	  hx-trigger="load, keyup delay:500ms, change"
 	  hx-target="#search-results"
 	  hx-indicator="#indicator-search"
diff --git a/scipost_django/submissions/urls.py b/scipost_django/submissions/urls/__init__.py
similarity index 91%
rename from scipost_django/submissions/urls.py
rename to scipost_django/submissions/urls/__init__.py
index 6d8f93e6a..9cfcb9992 100644
--- a/scipost_django/submissions/urls.py
+++ b/scipost_django/submissions/urls/__init__.py
@@ -2,16 +2,20 @@ __copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
 __license__ = "AGPL v3"
 
 
-from django.urls import path, re_path
+from django.urls import include, path, re_path
 from django.views.generic import TemplateView
 from django.views.generic.base import RedirectView
 
-from . import views
+from .. import views
 
 app_name = "submissions"
 
 
 urlpatterns = [
+
+    # nested namespaces
+    path("pool/", include("submissions.urls.pool", namespace="pool")),
+
     # Autocomplete
     path(
         "submission-autocomplete",
@@ -239,44 +243,6 @@ urlpatterns = [
         views.withdraw_manuscript,
         name="withdraw_manuscript",
     ),
-    # Pool
-    path("pool", views.pool, name="pool"),
-    path(
-        "pool/<identifier:identifier_w_vn_nr>/",
-        views.pool,
-        name="pool",
-    ),
-    path(
-        "pool/submissions",
-        views.pool_hx_submissions_list,
-        name="pool_hx_submissions_list",
-    ),
-    path(
-        "pool/submissions/<identifier:identifier_w_vn_nr>",
-        views.pool_hx_submission_li_details,
-        name="pool_hx_submission_li_details",
-    ),
-    path(
-        "add_remark/<identifier:identifier_w_vn_nr>",
-        views.add_remark,
-        name="add_remark",
-    ),
-    # Assignment of Editor-in-charge
-    path(
-        "pool/assignment_request/<int:assignment_id>",
-        views.assignment_request,
-        name="assignment_request",
-    ),
-    path(
-        "pool/<identifier:identifier_w_vn_nr>/editorial_assignment/",
-        views.editorial_assignment,
-        name="editorial_assignment",
-    ),
-    path(
-        "pool/<identifier:identifier_w_vn_nr>/editorial_assignment/<int:assignment_id>/",
-        views.editorial_assignment,
-        name="editorial_assignment",
-    ),
     path(
         "update_authors_assignment/<identifier:identifier_w_vn_nr>/<int:nrweeks>",
         views.update_authors_assignment,
diff --git a/scipost_django/submissions/urls/pool.py b/scipost_django/submissions/urls/pool.py
new file mode 100644
index 000000000..e801e6108
--- /dev/null
+++ b/scipost_django/submissions/urls/pool.py
@@ -0,0 +1,65 @@
+__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
+__license__ = "AGPL v3"
+
+
+from django.urls import include, path
+
+from .. import views
+
+app_name = "pool"
+
+
+
+urlpatterns = [ # building on /submissions/pool/
+    path(
+        "",
+        views.pool,
+        name="pool",
+    ),
+    path( # <identifier>/
+        "<identifier:identifier_w_vn_nr>/",
+        views.pool,
+        name="pool",
+    ),
+    path(
+        "submissions/",
+        include([
+            path(
+                "",
+                views.pool_hx_submissions_list,
+                name="_hx_submissions_list",
+            ),
+            path(
+                "<identifier:identifier_w_vn_nr>",
+                views.pool_hx_submission_li_details,
+                name="_hx_submission_li_details",
+            ),
+        ]),
+    ),
+    path(
+        "add_remark/<identifier:identifier_w_vn_nr>",
+        views.add_remark,
+        name="add_remark",
+    ),
+    # Assignment of Editor-in-charge
+    path(
+        "assignment_request/<int:assignment_id>",
+        views.assignment_request,
+        name="assignment_request",
+    ),
+    path(
+        "pool/<identifier:identifier_w_vn_nr>/editorial_assignment/",
+        include([
+            path(
+                "",
+                views.editorial_assignment,
+                name="editorial_assignment",
+            ),
+            path(
+                "<int:assignment_id>/",
+                views.editorial_assignment,
+                name="editorial_assignment",
+            ),
+        ]),
+    ),
+]
diff --git a/scipost_django/submissions/views.py b/scipost_django/submissions/views.py
index 96b90a230..3961d2bbd 100644
--- a/scipost_django/submissions/views.py
+++ b/scipost_django/submissions/views.py
@@ -893,7 +893,7 @@ def pool_hx_submissions_list(request):
     count = paginator.count
     start_index = page_obj.start_index
     context = {"count": count, "page_obj": page_obj, "start_index": start_index,}
-    return render(request, "submissions/pool/hx_submissions_list.html", context)
+    return render(request, "submissions/pool/_hx_submissions_list.html", context)
 
 
 @login_required
@@ -932,7 +932,7 @@ def add_remark(request, identifier_w_vn_nr):
         messages.success(request, "Your remark has succesfully been posted")
     else:
         messages.warning(request, "The form was invalidly filled.")
-    return redirect(reverse("submissions:pool", args=(identifier_w_vn_nr,)))
+    return redirect(reverse("submissions:pool:pool", args=(identifier_w_vn_nr,)))
 
 
 @permission_required("scipost.can_manage_ontology", raise_exception=True)
@@ -1003,7 +1003,7 @@ def editorial_assignment(request, identifier_w_vn_nr, assignment_id=None):
                 submission.editor_in_charge.user.last_name,
             ),
         )
-        return redirect("submissions:pool")
+        return redirect("submissions:pool:pool")
     elif submission.status == submission.ASSIGNMENT_FAILED:
         messages.success(
             request,
@@ -1012,7 +1012,7 @@ def editorial_assignment(request, identifier_w_vn_nr, assignment_id=None):
                 " This Submission has failed assignment and has been rejected."
             ),
         )
-        return redirect("submissions:pool")
+        return redirect("submissions:pool:pool")
 
     if assignment_id:
         # Process existing EditorialAssignment.
@@ -1065,7 +1065,7 @@ def editorial_assignment(request, identifier_w_vn_nr, assignment_id=None):
         else:
             # Fellow declined the invitation.
             msg = "Thank you for considering"
-            url = reverse("submissions:pool")
+            url = reverse("submissions:pool:pool")
 
         # Form submitted; redirect user
         messages.success(request, msg)
@@ -1093,7 +1093,7 @@ def assignment_request(request, assignment_id):
     )
     return redirect(
         reverse(
-            "submissions:editorial_assignment",
+            "submissions:pool:editorial_assignment",
             kwargs={
                 "identifier_w_vn_nr": assignment.submission.preprint.identifier_w_vn_nr,
                 "assignment_id": assignment.id,
@@ -1130,7 +1130,7 @@ def update_authors_assignment(request, identifier_w_vn_nr, nrweeks):
         )
         messages.success(request, "Authors have been updated by email.")
         mail_editor_view.send_mail()
-        return redirect(reverse("submissions:pool"))
+        return redirect(reverse("submissions:pool:pool"))
     return mail_editor_view.interrupt()
 
 
@@ -1174,7 +1174,7 @@ def assignment_failed(request, identifier_w_vn_nr):
         )
         messages.success(request, "Authors have been informed by email.")
         mail_editor_view.send_mail()
-        return redirect(reverse("submissions:pool"))
+        return redirect(reverse("submissions:pool:pool"))
     return mail_editor_view.interrupt()
 
 
@@ -1898,7 +1898,7 @@ def communication(request, identifier_w_vn_nr, comtype, referee_id=None):
         elif comtype == "AtoE":
             return redirect(submission.get_absolute_url())
         elif comtype == "StoE":
-            return redirect(reverse("submissions:pool"))
+            return redirect(reverse("submissions:pool:pool"))
         return redirect(submission.get_absolute_url())
 
     context = {
@@ -2395,7 +2395,6 @@ def vote_on_rec(request, rec_id):
                 messages.warning(
                     request, "You have already abstained on this Recommendation."
                 )
-                # return redirect(reverse('submissions:pool'))
                 pass
         votechanged = previous_vote and form.cleaned_data["vote"] != previous_vote
         if form.cleaned_data["remark"] or votechanged:
@@ -2422,7 +2421,7 @@ def vote_on_rec(request, rec_id):
             remark.save()
         recommendation.save()
         messages.success(request, "Thank you for your vote.")
-        return redirect(reverse("submissions:pool"))
+        return redirect(reverse("submissions:pool:pool"))
 
     context = {
         "recommendation": recommendation,
@@ -2464,7 +2463,7 @@ def remind_Fellows_to_vote(request, rec_id):
     context = {
         "ack_message": Template(ack_message).render(Context({})),
         "followup_message": "Return to the ",
-        "followup_link": reverse("submissions:pool"),
+        "followup_link": reverse("submissions:pool:pool"),
         "followup_link_label": "Submissions pool",
     }
     return render(request, "scipost/acknowledgement.html", context)
@@ -2544,7 +2543,7 @@ class SubmissionReassignmentView(
     template_name = "submissions/admin/submission_reassign.html"
     form_class = SubmissionReassignmentForm
     editorial_page = True
-    success_url = reverse_lazy("submissions:pool")
+    success_url = reverse_lazy("submissions:pool:pool")
     success_message = "Editor successfully replaced."
 
 
@@ -2564,7 +2563,7 @@ def _hx_submission_update_target_journal(request, identifier_w_vn_nr):
             )
         return redirect(
             reverse(
-                "submissions:pool_hx_submission_li_details",
+                "submissions:pool:_hx_submission_li_details",
                 args=(submission.preprint.identifier_w_vn_nr,),
             )
         )
@@ -2590,7 +2589,7 @@ def _hx_submission_update_target_proceedings(request, identifier_w_vn_nr):
             )
         return redirect(
             reverse(
-                "submissions:pool_hx_submission_li_details",
+                "submissions:pool:_hx_submission_li_details",
                 args=(submission.preprint.identifier_w_vn_nr,),
             )
         )
@@ -2624,7 +2623,7 @@ def _hx_submission_update_preprint_file(request, identifier_w_vn_nr):
                 )
             return redirect(
                 reverse(
-                    "submissions:pool_hx_submission_li_details",
+                    "submissions:pool:_hx_submission_li_details",
                     args=(preprint.identifier_w_vn_nr,),
                 )
             )
@@ -2644,7 +2643,7 @@ class PreassignmentView(SubmissionAdminViewMixin, UpdateView):
     template_name = "submissions/admin/submission_preassignment.html"
     form_class = SubmissionPreassignmentForm
     editorial_page = True
-    success_url = reverse_lazy("submissions:pool")
+    success_url = reverse_lazy("submissions:pool:pool")
 
     def get_form_kwargs(self):
         kwargs = super().get_form_kwargs()
@@ -2658,7 +2657,7 @@ class SubmissionConflictsView(SubmissionAdminViewMixin, DetailView):
     permission_required = "scipost.can_run_preassignment"
     template_name = "submissions/admin/submission_conflicts.html"
     editorial_page = True
-    success_url = reverse_lazy("submissions:pool")
+    success_url = reverse_lazy("submissions:pool:pool")
 
 
 class EICRecommendationDetailView(
@@ -2853,7 +2852,7 @@ def fix_editorial_decision(request, identifier_w_vn_nr):
             )
         )
 
-        return redirect("submissions:pool")
+        return redirect("submissions:pool:pool")
     else:
         return mail_request.interrupt()
 
diff --git a/scipost_django/templates/email/eic/assignment_request.html b/scipost_django/templates/email/eic/assignment_request.html
index 30c9148df..4b1f2b42c 100644
--- a/scipost_django/templates/email/eic/assignment_request.html
+++ b/scipost_django/templates/email/eic/assignment_request.html
@@ -10,7 +10,7 @@
 </p>
 
 <p>
-    Please visit the <a href="https://{{ domain }}{% url 'submissions:pool' %}">Submissions Pool</a> in order to accept or decline (it is important for you to inform us even if you decline, since this affects the result of the assignment process).
+    Please visit the <a href="https://{{ domain }}{% url 'submissions:pool:pool' %}">Submissions Pool</a> in order to accept or decline (it is important for you to inform us even if you decline, since this affects the result of the assignment process).
 </p>
 <p>
   Note that this assignment request is automatically deprecated if another Fellow takes charge of this Submission or if assignment fails in the meantime.
diff --git a/scipost_django/templates/email/fellows/email_fellow_fellowship_start.html b/scipost_django/templates/email/fellows/email_fellow_fellowship_start.html
index 8a31a178d..274d32a30 100644
--- a/scipost_django/templates/email/fellows/email_fellow_fellowship_start.html
+++ b/scipost_django/templates/email/fellows/email_fellow_fellowship_start.html
@@ -6,7 +6,7 @@
 <p>From your <a href="https://{{ domain }}{% url 'scipost:personal_page' %}">personal page</a>, please have a look at the basic information associated to your account (in particular, your areas of specialization). If necessary, please update the data by following the "Update your personal data" link.</p>
 <p>Though we do not require it, we greatly encourage you to use our two-factor authentication setup (see <a a href="https://{{ domain }}{% url 'scipost:totp' %}">this link</a>) to ensure that your account is robust against hacking attempts.</p>
 <h3>Your new Fellows-only pages</h3>
-<p>Again on your personal page, you should now see an "Editorial Actions" tab. This contains a number of links relevant to our editorial processes, most importantly to the <a href="https://{{ domain }}{% url 'submissions:pool' %}">submissions pool</a>, which is the place where all submissions currently under consideration are listed. As a newcomer, this will be more or less empty for you, but will fill as new submissions come in.</p>
+<p>Again on your personal page, you should now see an "Editorial Actions" tab. This contains a number of links relevant to our editorial processes, most importantly to the <a href="https://{{ domain }}{% url 'submissions:pool:pool' %}">submissions pool</a>, which is the place where all submissions currently under consideration are listed. As a newcomer, this will be more or less empty for you, but will fill as new submissions come in.</p>
 <p>To get an idea of the editorial workflow, the best is to look at the <a href="https://{{ domain }}{% url 'submissions:editorial_workflow' %}">editorial workflow summary</a>.</p>
 <h3>What happens now?</h3>
 <p>As new submissions come in for which your expertises match, you will start receiving assignment request emails inviting you to take charge of a particular Submission. You are never obliged to do so. Once you do take charge of one, you will be given access to that Submission's Editorial Page from which you will be able to run the refereeing process.</p>
diff --git a/scipost_django/templates/email/fellows/email_fellow_replaced_by_other.html b/scipost_django/templates/email/fellows/email_fellow_replaced_by_other.html
index 8adb78387..b9c68a5c6 100644
--- a/scipost_django/templates/email/fellows/email_fellow_replaced_by_other.html
+++ b/scipost_django/templates/email/fellows/email_fellow_replaced_by_other.html
@@ -4,7 +4,7 @@ We have deprecated your assignment as Editor-in-charge of Submission
 
 {{ assignment.submission.title }} by {{ assignment.submission.author_list }}.
 
-To see your current active assignments, check <a href="https://{{ domain }}{% url 'submissions:pool' %}?editor_in_charge=on.">the Pool</a>.
+To see your current active assignments, check <a href="https://{{ domain }}{% url 'submissions:pool:pool' %}?editor_in_charge=on.">the Pool</a>.
 
 Many thanks for your valuable work,
 
diff --git a/scipost_django/templates/email/fellows/email_fellow_tasklist.html b/scipost_django/templates/email/fellows/email_fellow_tasklist.html
index ac439fe5b..c224bed61 100644
--- a/scipost_django/templates/email/fellows/email_fellow_tasklist.html
+++ b/scipost_django/templates/email/fellows/email_fellow_tasklist.html
@@ -11,7 +11,7 @@
 {% if recs_to_vote_on %}
     <br/>
     <h3>Recommendations for you to vote on</h3>
-    <p>Please go to the <a href="https://{{ domain }}{% url 'submissions:pool' %}">pool</a> to cast your vote on:</p>
+    <p>Please go to the <a href="https://{{ domain }}{% url 'submissions:pool:pool' %}">pool</a> to cast your vote on:</p>
     <ul>
       {% for rec in recs_to_vote_on %}
           <li>{{ rec.submission.title }}</li>
@@ -26,7 +26,7 @@
     {% for assignment in assignments_to_consider %}
         <li>
             On submission: {{ assignment.submission }}<br>
-            <a href="https://{{ domain }}{% url 'submissions:assignment_request' assignment.id %}">Accept or decline here</a>
+            <a href="https://{{ domain }}{% url 'submissions:pool:assignment_request' assignment.id %}">Accept or decline here</a>
         </li>
     {% endfor %}
     </ul>
@@ -65,7 +65,7 @@
     <ul>
       {% for assignment in assignments_upcoming_deadline %}
           <li>
-            <h3><a href="https://{{ domain }}{% url 'submissions:pool' assignment.submission.preprint.identifier_w_vn_nr %}">{{ assignment.submission.title }}</a></h3>
+            <h3><a href="https://{{ domain }}{% url 'submissions:pool:pool' assignment.submission.preprint.identifier_w_vn_nr %}">{{ assignment.submission.title }}</a></h3>
             <p>
               <em>by {{ assignment.submission.author_list }}</em>
             </p>
-- 
GitLab