diff --git a/scipost/models.py b/scipost/models.py index 88a69d14e41057de35432fbb2e73192181a9d541..92d9f20429454017cf9634938617bd2ee781c849 100644 --- a/scipost/models.py +++ b/scipost/models.py @@ -84,6 +84,9 @@ class Contributor(models.Model): def is_currently_available(self): return not self.unavailability_periods.today().exists() + def is_EdCol_Admin(self): + return self.user.groups.filter(name='Editorial Administrators').exists() + def is_SP_Admin(self): return self.user.groups.filter(name='SciPost Administrators').exists() diff --git a/scipost/static/scipost/assets/css/_list_group.scss b/scipost/static/scipost/assets/css/_list_group.scss index 1053f6ce7398e17fabf169c3ebccd596cbc95ef1..4755ec289813f41a3be705df5c68db980d203c26 100644 --- a/scipost/static/scipost/assets/css/_list_group.scss +++ b/scipost/static/scipost/assets/css/_list_group.scss @@ -9,40 +9,17 @@ border-top-color: #f9f9f9; } ul.events-list { - padding-left: 30px; + padding-left: 0; li { padding-top: 0.5rem; padding-bottom: 0.5rem; border: 0; - &:before { - content: ''; - width: 12px; - height: 12px; - left: -24px; - border-radius: 99px; - position: absolute; - top: 11px; - background: #fff; - border: 2px solid $scipost-darkblue; - z-index: 99; - } - - &:after { - content: ''; - width: 2px; - height: calc(100% - 18px); - position: absolute; - left: -19px; - background: $scipost-darkblue;; - top: 26px; - z-index: 97; - border-radius: 99px; - } - - &:last-child:after { - content: none; + .time { + max-width: 9rem; + min-width: 9rem; + width: 9rem; } } } diff --git a/scipost/templates/scipost/navbar.html b/scipost/templates/scipost/navbar.html index d946d267599f9f75c182318174de04f7b0222327..ef66e3d109922ea8d862d26fffecbbd32430eb0c 100644 --- a/scipost/templates/scipost/navbar.html +++ b/scipost/templates/scipost/navbar.html @@ -51,11 +51,6 @@ <a class="nav-link" href="{% url 'production:production' %}">Production</a> </li> {% endif %} - {% if perms.scipost.can_oversee_refereeing %} - <li class="nav-item{% if '/submissions/admin' in request.path %} active{% endif %}"> - <a class="nav-link" href="{% url 'submissions:admin' %}">Editorial Administration</a> - </li> - {% endif %} {% if user.contributor %} <li class="nav-item{% if '/personal_page' in request.path %} active{% endif %}"> <a class="nav-link" href="{% url 'scipost:personal_page' %}">Personal Page</a> diff --git a/scipost/templates/scipost/personal_page.html b/scipost/templates/scipost/personal_page.html index ccdef253c64c9c545f4c960d931331a336ad1e7f..202a0041ce9d9785f111980618c3e11840d5e65d 100644 --- a/scipost/templates/scipost/personal_page.html +++ b/scipost/templates/scipost/personal_page.html @@ -296,7 +296,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:admin' %}">Editorial Administration Page</a></li> + <li><a href="{% url 'submissions: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_metadata' %}">Manage Publication metadata</a></li> diff --git a/submissions/templates/partials/submissions/admin/submission_li.html b/submissions/templates/partials/submissions/admin/submission_li.html deleted file mode 100644 index 0581df05cb3f822992a09b38bb1357069bc57e87..0000000000000000000000000000000000000000 --- a/submissions/templates/partials/submissions/admin/submission_li.html +++ /dev/null @@ -1,24 +0,0 @@ -<div class="row pool-item mb-0"> - <div class="icons{% if is_current %} text-info{% endif %}"> - {% include 'partials/submissions/admin/submission_tooltip.html' with submission=submission %} - - {% if submission.status == 'unassigned' %} - <i class="fa fa-exclamation mt-1 px-1 text-danger" data-toggle="tooltip" data-html="true" title="This Submission does not have a Editor-in-charge"></i> - {% endif %} - </div> - <div class="item col-auto"> - <p class="mb-1"> - <a href="{% url 'submissions:admin' submission.arxiv_identifier_w_vn_nr %}">{{ submission.title }}</a><br> - <em>by {{ submission.author_list }}</em> - </p> - - <p class="card-text mb-2"> - <a href="{% url 'submissions:admin' submission.arxiv_identifier_w_vn_nr %}" data-toggle="dynamic" data-target="#details" data-toggle="dynamic" data-target="">See details</a> - {% if submission.editor_in_charge == request.user.contributor %} - · <a href="{% url 'submissions:editorial_page' submission.arxiv_identifier_w_vn_nr %}">Go directly to editorial page</a> - {% endif %} - </p> - - <p class="label label-{% if submission.status == 'unassigned' %}outline-danger{% else %}secondary{% endif %} label-sm">{{ submission.get_status_display }}</p> - </div> -</div> diff --git a/submissions/templates/partials/submissions/pool/submission_details.html b/submissions/templates/partials/submissions/pool/submission_details.html index c5542efd8aa463a85ba75d16eb512bf684056c4b..3060f4d849001f08dd08ad747d715d7014c3affa 100644 --- a/submissions/templates/partials/submissions/pool/submission_details.html +++ b/submissions/templates/partials/submissions/pool/submission_details.html @@ -66,7 +66,7 @@ {# EIC Recommendations #} {% if submission.eicrecommendations.exists %} <li>See Editorial Recommendations:</li> - <ul> + <ul class="pl-3"> {% for rec in submission.eicrecommendations.all %} <li><a href="{% url 'submissions:eic_recommendation_detail' arxiv_identifier_w_vn_nr=submission.arxiv_identifier_w_vn_nr rec_id=rec.id %}">{{rec.get_recommendation_display}}</a></li> {% endfor %} diff --git a/submissions/templates/partials/submissions/pool/submission_li.html b/submissions/templates/partials/submissions/pool/submission_li.html index 73bc7fa516e69125906942aef32ac11b5fbac287..f56f5df73002123e71f31d908920f7cc9d0bfa47 100644 --- a/submissions/templates/partials/submissions/pool/submission_li.html +++ b/submissions/templates/partials/submissions/pool/submission_li.html @@ -1,6 +1,6 @@ <div class="row pool-item mb-0"> <div class="icons{% if is_current %} text-info{% endif %}"> - {% include 'partials/submissions/admin/submission_tooltip.html' with submission=submission %} + {% include 'partials/submissions/pool/submission_tooltip.html' with submission=submission %} {% if submission.status == 'unassigned' %} <i class="fa fa-exclamation mt-1 px-1 text-danger" data-toggle="tooltip" data-html="true" title="You can volunteer to become Editor-in-charge"></i> diff --git a/submissions/templates/partials/submissions/admin/submission_tooltip.html b/submissions/templates/partials/submissions/pool/submission_tooltip.html similarity index 100% rename from submissions/templates/partials/submissions/admin/submission_tooltip.html rename to submissions/templates/partials/submissions/pool/submission_tooltip.html diff --git a/submissions/templates/submissions/admin/base.html b/submissions/templates/submissions/admin/base.html index e238b581c8e1952ae403c814db783bf57f98f4ea..49b66534f3568f9661f205e0e6e18e9ab9a0f96f 100644 --- a/submissions/templates/submissions/admin/base.html +++ b/submissions/templates/submissions/admin/base.html @@ -4,7 +4,11 @@ <nav class="breadcrumb py-md-2 px-0 hidden-sm-down"> <div class="container"> {% block breadcrumb_items %} - <a href="{% url 'submissions:admin' %}" class="breadcrumb-item">Editorial Administration</a> + {% if submission %} + <a href="{% url 'submissions:pool' submission.arxiv_identifier_w_vn_nr %}" class="breadcrumb-item">Pool</a> + {% else %} + <a href="{% url 'submissions:pool' %}" class="breadcrumb-item">Pool</a> + {% endif %} {% endblock %} </div> </nav> diff --git a/submissions/templates/submissions/admin/editorial_admin.html b/submissions/templates/submissions/admin/editorial_admin.html deleted file mode 100644 index 8c23d6beb54f3791e2f0fda8b08b3590c74bd77d..0000000000000000000000000000000000000000 --- a/submissions/templates/submissions/admin/editorial_admin.html +++ /dev/null @@ -1,99 +0,0 @@ -{% extends 'submissions/admin/base.html' %} - -{% load scipost_extras %} - -{% block pagetitle %}: Editorial Administration{% endblock pagetitle %} - -{% block breadcrumb_items %} - {{ block.super }} - <span class="breadcrumb-item">{% if submission %}{{ submission.arxiv_identifier_w_vn_nr }}{% else %}All events in the last 24 hours{% endif %}</span> -{% endblock %} - -{% block body_class %}{{ block.super }} editorial-admin{% endblock %} - -{% block content %} -<div class="row"> - <div class="col-md-7"> - <h1>Editorial Administration Page</h1> - - <p> - {% if submission %} - <a href="{% url 'submissions:admin' %}">All events in the last 24 hours</a><br> - {% endif %} - <a href="{% url 'submissions:pool' %}">Go to the pool</a> - </p> - - {% if recommendations_to_prepare_for_voting %} - <h3>Recommendations to prepare for voting <i class="fa fa-exclamation-circle text-warning"></i></h3> - <ul> - {% for recommendation in recommendations_to_prepare_for_voting %} - <li>On Editorial Recommendation: {{ recommendation }}<br> - <a href="{% url 'submissions:prepare_for_voting' rec_id=recommendation.id %}">Prepare for voting</a> - </li> - {% endfor %} - </ul> - {% endif %} - - {% if recommendations_undergoing_voting %} - <h3>Recommendations undergoing voting <i class="fa fa-exclamation-circle text-warning"></i></h3> - <ul class="fa-ul"> - {% for recommendation in recommendations_undergoing_voting %} - <li>{% include 'partials/submissions/admin/recommendation_tooltip.html' with classes='fa-li' recommendation=recommendation %} - On Editorial Recommendation: {{ recommendation }}<br> - <a href="{% url 'submissions:admin_recommendation' recommendation.submission.arxiv_identifier_w_vn_nr %}">See Editorial Recommendation</a> - </li> - {% endfor %} - </ul> - {% endif %} - - {% if recommendations_to_prepare_for_voting or recommendations_undergoing_voting %} - <hr> - {% endif %} - - <h3>Submissions currently in pre-screening</h3> - <ul class="list-unstyled" data-target="active-list"> - {% for sub in submission_list.prescreening %} - <li class="p-2{% if sub == submission %} active{% endif %}"> - {% include 'partials/submissions/admin/submission_li.html' with submission=sub %} - </li> - {% empty %} - <li>No Submissions are currently in pre-screening</li> - {% endfor %} - </ul> - - <h3>Submissions currently in refereeing round</h3> - <ul class="list-unstyled" data-target="active-list"> - {% for sub in submission_list.actively_refereeing %} - <li class="p-2{% if sub == submission %} active{% endif %}"> - {% include 'partials/submissions/admin/submission_li.html' with submission=sub %} - </li> - {% empty %} - <li>No Submissions are currently in refereeing round</li> - {% endfor %} - </ul> - - <h3>Submissions accepted</h3> - <ul class="list-unstyled" data-target="active-list"> - {% for sub in submission_list.accepted %} - <li class="p-2{% if sub == submission %} active{% endif %}"> - {% include 'partials/submissions/admin/submission_li.html' with submission=sub %} - </li> - {% empty %} - <li>All accepted Submissions are published</li> - {% endfor %} - </ul> - </div> - - <div class="col-md-5" id="details"> - {% if submission %} - {% include 'partials/submissions/admin/submission_details.html' with submission=submission %} - {% else %} - <h3><em>Click on a submission to see its summary and actions</em></h3> - <h2>All events in the last 24 hours</h2> - <div id="eventslist" class=""> - {% include 'submissions/submission_event_list_general.html' with events=latest_events %} - </div> - {% endif %} - </div> -</div> -{% endblock content %} diff --git a/submissions/templates/submissions/admin/recommendation.html b/submissions/templates/submissions/admin/recommendation.html index 9f4b8c2d85169108778a00f7abaf300ea54540c7..43deb3def36289814b0ac16ef1e4d9e243765929 100644 --- a/submissions/templates/submissions/admin/recommendation.html +++ b/submissions/templates/submissions/admin/recommendation.html @@ -1,10 +1,10 @@ -{% extends 'submissions/pool/base.html' %} +{% extends 'submissions/admin/base.html' %} {% load bootstrap %} {% load scipost_extras %} {% block breadcrumb_items %} - <a href="{% url 'submissions:admin' %}" class="breadcrumb-item">Editorial Administration</a> + {{ block.super }} <span class="breadcrumb-item">Editorial Recommendation</span> {% endblock %} diff --git a/submissions/templates/submissions/pool/pool.html b/submissions/templates/submissions/pool/pool.html index 9da929fcd876c60e3dc348b6ed350c9af3fde561..97758bf7d200b5414411822a62b3c25fa99375bd 100644 --- a/submissions/templates/submissions/pool/pool.html +++ b/submissions/templates/submissions/pool/pool.html @@ -112,6 +112,13 @@ {% include 'partials/submissions/pool/submission_details.html' with submission=submission remark_form=remark_form is_ECAdmin=is_ECAdmin user=request.user %} {% else %} <h3><em>Click on a submission to see its summary and actions</em></h3> + + {% if is_ECAdmin %} + <h2>All events in the last 24 hours</h2> + <div id="eventslist"> + {% include 'submissions/submission_event_list_general.html' with events=latest_events %} + </div> + {% endif %} {% endif %} </div> </div> diff --git a/submissions/templates/submissions/submission_event_list.html b/submissions/templates/submissions/submission_event_list.html index 01e3d1b2dad54dc98a151d7ca30b49035114e786..8194ea235122e48368e462ea0a23b32b21cadc72 100644 --- a/submissions/templates/submissions/submission_event_list.html +++ b/submissions/templates/submissions/submission_event_list.html @@ -3,9 +3,9 @@ <ul class="list-group list-group-flush events-list"> {% for event in events %} <li class="list-group-item"> - <div> - {{event.text}}<br> - <span class="text-muted">{{event.created}}</span> + <div class="d-flex flex-nowrap justify-content-start"> + <div class="time text-muted pr-2">{{event.created}}</div> + <div class="content">{{event.text}}</div> </div> </li> {% empty %} diff --git a/submissions/templates/submissions/submission_event_list_general.html b/submissions/templates/submissions/submission_event_list_general.html index a9d0b0d84d32f1fbf8845d4150b2e441d230c82a..d129c7591cd5a06e0ce51a9af010231902b2b567 100644 --- a/submissions/templates/submissions/submission_event_list_general.html +++ b/submissions/templates/submissions/submission_event_list_general.html @@ -3,10 +3,12 @@ <ul class="list-group list-group-flush events-list"> {% for event in events %} <li class="list-group-item"> - <div> - <strong>{{event.text}}</strong><br> - Submission: <a href="{{event.submission.get_absolute_url}}">{{event.submission.title}} ({{event.submission.arxiv_identifier_w_vn_nr}})</a><br> - <span class="text-muted">{{event.created}}</span> + <div class="d-flex flex-nowrap justify-content-start"> + <div class="time text-muted pr-2">{{event.created}}</div> + <div class="content"> + <strong>{{event.text}}</strong><br> + Submission: <a href="{{event.submission.get_absolute_url}}">{{event.submission.title}} ({{event.submission.arxiv_identifier_w_vn_nr}})</a><br> + </div> </div> </li> {% empty %} diff --git a/submissions/templates/submissions/treated_submissions_list.html b/submissions/templates/submissions/treated_submissions_list.html index c9b167bd9832f074302c794376cfd497b0413f2c..00834954245222b0030dd6d5a5a9736eb669af00 100644 --- a/submissions/templates/submissions/treated_submissions_list.html +++ b/submissions/templates/submissions/treated_submissions_list.html @@ -1,7 +1,7 @@ {% extends 'scipost/_personal_page_base.html' %} {% block breadcrumb_items %} - {{block.super}} + {{ block.super }} <span class="breadcrumb-item">Treated Submissions</span> {% endblock %} diff --git a/submissions/urls.py b/submissions/urls.py index 6cd83e4ec6d855ebde05931aa76a0cafb7b863b5..2b9232e49bee589d62af54a5cb7668bc139f6553 100644 --- a/submissions/urls.py +++ b/submissions/urls.py @@ -25,9 +25,6 @@ urlpatterns = [ views.submission_refereeing_package_pdf, name='refereeing_package_pdf'), # Editorial Administration - url(r'^admin$', views.EditorialSummaryView.as_view(), name='admin'), - url(r'^admin/{regex}$'.format(regex=SUBMISSIONS_COMPLETE_REGEX), - views.EditorialSummaryView.as_view(), name='admin'), url(r'^admin/treated$', views.treated_submissions_list, name='treated_submissions_list'), url(r'^admin/{regex}/reports/compile$'.format(regex=SUBMISSIONS_COMPLETE_REGEX), views.treated_submission_pdf_compile, name='treated_submission_pdf_compile'), diff --git a/submissions/views.py b/submissions/views.py index ccf17f9e1c2880b7dbbc3920c808bddc2ce3645a..0a6994baaaa9a703f5b217e64a5540a860868c66 100644 --- a/submissions/views.py +++ b/submissions/views.py @@ -354,6 +354,7 @@ def pool(request, arxiv_identifier_w_vn_nr=None): .exclude(submission__status__in=SUBMISSION_STATUS_VOTING_DEPRECATED)) rec_vote_form = RecommendationVoteForm() remark_form = RemarkForm() + context = { 'submissions_in_pool': submissions_in_pool, 'submission_status': SUBMISSION_STATUS, @@ -385,6 +386,10 @@ def pool(request, arxiv_identifier_w_vn_nr=None): except Submission.DoesNotExist: pass + # EdColAdmin related variables + if request.user.contributor.is_EdCol_Admin(): + context['latest_events'] = SubmissionEvent.objects.for_eic().last_hours() + # Temporary test logic: only testers see the new Pool if context['submission'] and request.is_ajax(): template = 'partials/submissions/pool/submission_details.html' @@ -1535,43 +1540,6 @@ class EICRecommendationView(SubmissionAdminViewMixin, DetailView): return ctx -class EditorialSummaryView(SubmissionAdminViewMixin, ListView): - """ - Show all submission currently active in a refereeing process. - In addition show all EIC events of the last 24 hours. - """ - permission_required = 'scipost.can_oversee_refereeing' - template_name = 'submissions/admin/editorial_admin.html' - - def get_context_data(self, *args, **kwargs): - context = super().get_context_data(*args, **kwargs) - - # Pick submission from `submission_list` to include proper filters such as author filters. - if self.kwargs.get('arxiv_identifier_w_vn_nr'): - try: - context['submission'] = context['submission_list'].get( - arxiv_identifier_w_vn_nr=self.kwargs['arxiv_identifier_w_vn_nr']) - except Submission.DoesNotExist: - context['submission'] = None - - if not context.get('submission'): - context['latest_events'] = SubmissionEvent.objects.for_eic().last_hours() - - context['recommendations_undergoing_voting'] = ( - EICRecommendation.objects.get_for_user_in_pool(self.request.user) - .filter(submission__status='put_to_EC_voting')) - context['recommendations_to_prepare_for_voting'] = ( - EICRecommendation.objects.get_for_user_in_pool(self.request.user) - .filter(submission__status='voting_in_preparation')) - return context - - def get_template_names(self): - if self.request.GET.get('json'): - return ['partials/submissions/admin/submission_details.html'] - else: - return ['submissions/admin/editorial_admin.html'] - - class PlagiarismView(SubmissionAdminViewMixin, UpdateView): permission_required = 'scipost.can_do_plagiarism_checks' template_name = 'submissions/admin/plagiarism_report.html'