From 88292f7f34dfb92158849aa5d89e93436af876a1 Mon Sep 17 00:00:00 2001
From: George Katsikas <giorgakis.katsikas@gmail.com>
Date: Thu, 29 Aug 2024 16:57:56 +0200
Subject: [PATCH] allow publication officers to view edadmin tab

---
 scipost_django/scipost/context_processors.py  |  2 ++
 .../commands/add_groups_and_permissions.py    |  1 +
 .../scipost/personal_page/_hx_edadmin.html    | 24 ++++++++++++-------
 .../scipost/personal_page/_hx_tablist.html    |  2 +-
 scipost_django/scipost/views.py               |  1 +
 5 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/scipost_django/scipost/context_processors.py b/scipost_django/scipost/context_processors.py
index b3a74ec0b..d02673b70 100644
--- a/scipost_django/scipost/context_processors.py
+++ b/scipost_django/scipost/context_processors.py
@@ -32,6 +32,8 @@ def roles_processor(request):
         context["user_roles"].append("junior_ambassador")
     if "Production Officers" in group_names:
         context["user_roles"].append("production_officer")
+    if "Publication Officers" in group_names:
+        context["user_roles"].append("publication_officer")
     # Contributor-based roles
     try:
         active_fellowships = request.user.contributor.fellowships.active()
diff --git a/scipost_django/scipost/management/commands/add_groups_and_permissions.py b/scipost_django/scipost/management/commands/add_groups_and_permissions.py
index e549236a7..18df261b7 100644
--- a/scipost_django/scipost/management/commands/add_groups_and_permissions.py
+++ b/scipost_django/scipost/management/commands/add_groups_and_permissions.py
@@ -787,6 +787,7 @@ class Command(BaseCommand):
                 can_add_profile_emails,
                 can_manage_organizations,
                 can_publish_accepted_submission,
+                can_manage_issues,
             ]
         )
 
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 dac7113ca..0ced65ea1 100644
--- a/scipost_django/scipost/templates/scipost/personal_page/_hx_edadmin.html
+++ b/scipost_django/scipost/templates/scipost/personal_page/_hx_edadmin.html
@@ -35,22 +35,28 @@
       </ul>
     {% endif %}
 
-    {% if perms.scipost.can_oversee_refereeing %}
-      <h3>Editorial Admin actions</h3>
-      <ul>
+    <h3>Editorial Admin actions</h3>
+    <ul>
+      <li><a href="{% url 'submissions:pool:pool' %}">Submissions Pool</a></li>
+      {% if perms.scipost.can_manage_reports %}
         <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: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>
+      {% endif %}
+      {% if perms.scipost.can_publish_accepted_submission %}
         <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>
-        <li><a href="{% url 'journals:admin_volumes_list' %}">Manage Volumes</a></li>
+        <li><a href="{% url 'journals:harvest_citedby_list' %}">Manage Volumes</a></li>
+      {% endif %}
+      {% if perms.scipost.can_manage_issues %}
         <li><a href="{% url 'journals:admin_issue_list' %}">Manage Issues</a></li>
         <li><a href="{% url 'proceedings:proceedings' %}">Manage Proceedings Issues</a></li>
+      {% endif %}
+      {% if perms.scipost.can_publish_accepted_submission %}
         <li><a href="{% url 'journals:manage_metadata' %}">Manage Publication metadata</a></li>
-        <li><a href="{% url 'journals:manage_report_metadata' %}">Manage Report metadata</a></li>
         <li><a href="{% url 'journals:manage_update_metadata' %}">Manage PublicationUpdate metadata</a></li>
-      </ul>
-    {% endif %}
+        <li><a href="{% url 'journals:manage_comment_metadata' %}">Manage Comment metadata</a></li>
+        <li><a href="{% url 'journals:manage_report_metadata' %}">Manage Report metadata</a></li>
+      {% endif %}
+    </ul>
 
   </div>
 
diff --git a/scipost_django/scipost/templates/scipost/personal_page/_hx_tablist.html b/scipost_django/scipost/templates/scipost/personal_page/_hx_tablist.html
index 0fbda50f9..edcde8c5d 100644
--- a/scipost_django/scipost/templates/scipost/personal_page/_hx_tablist.html
+++ b/scipost_django/scipost/templates/scipost/personal_page/_hx_tablist.html
@@ -13,7 +13,7 @@
     >Admin</a>
   {% endif %}
 
-  {% if "scipost_admin" in user_roles or "edadmin" in user_roles or "active_fellow" in user_roles or "advisory_board" in user_roles or "vetting_editor" in user_roles or "ambassador" in user_roles or "junior_ambassador" in user_roles %}
+  {% if "scipost_admin" in user_roles or "edadmin" in user_roles or "active_fellow" in user_roles or "advisory_board" in user_roles or "vetting_editor" in user_roles or "ambassador" in user_roles or "junior_ambassador" in user_roles or "publication_officer" in user_roles %}
     <a hx-get="{% url 'scipost:personal_page_hx_edadmin' %}" 
       {% if selected == 'edadmin' %}class="selected"{% endif %}
     >Editorial Actions</a>
diff --git a/scipost_django/scipost/views.py b/scipost_django/scipost/views.py
index 059c48eb8..6c19bf0b1 100644
--- a/scipost_django/scipost/views.py
+++ b/scipost_django/scipost/views.py
@@ -1184,6 +1184,7 @@ def personal_page_hx_edadmin(request):
                 "Editorial College",
                 "Vetting Editors",
                 "Junior Ambassadors",
+                "Publication Officers",
             ]
         ).exists()
         or request.user.is_superuser
-- 
GitLab