From 345a61246351f143878f10287998b6c5560a828a Mon Sep 17 00:00:00 2001 From: Jorran de Wit <jorrandewit@outlook.com> Date: Mon, 14 Aug 2017 14:39:00 +0200 Subject: [PATCH] Add EdCol Admin page --- scipost/templates/scipost/about.html | 2 +- scipost/templates/scipost/navbar.html | 5 + .../admin/editorial_admin_summary.html | 149 ++++++++++++++++++ .../submissions/refereeing_status_as_tr.html | 10 ++ .../_recommendation_author_content.html | 4 +- .../_recommendation_fellow_content.html | 2 +- .../_submission_refereeing_status.html | 9 +- .../admin/eic_recommendation_detail.html | 94 +++++++++++ .../plagiarism_report.html} | 4 +- .../submissions/editorial_admin_summary.html | 88 ++++++++--- .../submissions/reports_accepted_list.html | 72 ++++----- submissions/urls.py | 4 + submissions/views.py | 39 ++++- 13 files changed, 409 insertions(+), 73 deletions(-) create mode 100644 submissions/templates/partials/submissions/admin/editorial_admin_summary.html create mode 100644 submissions/templates/partials/submissions/refereeing_status_as_tr.html create mode 100644 submissions/templates/submissions/admin/eic_recommendation_detail.html rename submissions/templates/submissions/{editorial_admin_plagiarism.html => admin/plagiarism_report.html} (78%) diff --git a/scipost/templates/scipost/about.html b/scipost/templates/scipost/about.html index eb6f866f1..b4a1fba12 100644 --- a/scipost/templates/scipost/about.html +++ b/scipost/templates/scipost/about.html @@ -76,7 +76,7 @@ <div class="col-md-3 offset-md-1"> <h3><a href="{% url 'scipost:foundation' %}">The SciPost Foundation</a></h3> <ul> - <li>Chairman: Prof. <a href="http://jscaux.org">J.-S. Caux</a></li> + <li>Chairman: Prof. <a href="http://jscaux.org" target="_blank">J.-S. Caux</a></li> <li>Secretary: Dr J. van Mameren</li> <li>Treasurer: Dr J. van Wezel</li> </ul> diff --git a/scipost/templates/scipost/navbar.html b/scipost/templates/scipost/navbar.html index bd532a8c9..1bad25aa7 100644 --- a/scipost/templates/scipost/navbar.html +++ b/scipost/templates/scipost/navbar.html @@ -24,6 +24,11 @@ <li class="nav-item highlighted"> <span class="nav-link">Logged in as {{ user.username }}</span> </li> + {% 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_summary' %}">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/submissions/templates/partials/submissions/admin/editorial_admin_summary.html b/submissions/templates/partials/submissions/admin/editorial_admin_summary.html new file mode 100644 index 000000000..2a8c6e2f5 --- /dev/null +++ b/submissions/templates/partials/submissions/admin/editorial_admin_summary.html @@ -0,0 +1,149 @@ +{% load guardian_tags %} +{% load scipost_extras %} +{% load submissions_extras %} +{% load render_bundle from webpack_loader %} + + +<h5 class="pb-0">{{submission.get_subject_area_display}}</h5> +<h3 class="card-title"> + <a href="{{submission.get_absolute_url}}">{{submission.title}}</a> +</h3> + +<p class="card-text mb-3">by {{submission.author_list}}</p> +<h3>Info</h3> +<table class="text-muted w-100 mb-1"> + <tr> + <td style="min-width: 40%;">Version</td> + <td>{{submission.arxiv_vn_nr}} ({% if submission.is_current %}current version{% else %}deprecated version {{submission.arxiv_vn_nr}}{% endif %})</td> + </tr> + <tr> + <td>Submitted</td> + <td>{{submission.submission_date}} to {{submission.get_submitted_to_journal_display}}</td> + </tr> + + {% if submission.acceptance_date %} + <tr> + <td>Accepted</td> + <td>{{submission.acceptance_date}}</td> + </tr> + {% endif %} + + <tr> + <td>Latest activity</td> + <td>{{submission.latest_activity}}</td> + </tr> + <tr> + <td>Editor-in-charge</td> + <td> + {% if submission.editor_in_charge %} + {{ submission.editor_in_charge }} + {% elif perms.scipost.can_assign_submissions %} + <a href="{% url 'submissions:assign_submission' submission.arxiv_identifier_w_vn_nr %}">Send a new assignment request</a> + {% else %} + - + {% endif %} + </td> + </tr> + <tr> + <td>Status</td> + <td>{{ submission.get_status_display }}</td> + </tr> + <tr> + <td>Refereeing cycle</td> + <td>{{ submission.get_refereeing_cycle_display }}</td> + </tr> + + {% include 'partials/submissions/refereeing_status_as_tr.html' with submission=submission %} + + <tr> + <td>Comments</td> + <td> + {{submission.comments.vetted.count}} + <span class="circle-clickable" data-toggle="tooltip" data-html="true" title="{{submission.comments.regular_comments.vetted.count}} comments<br>{{submission.comments.author_replies.vetted.count}} author replies<hr>{{submission.comments.awaiting_vetting.count}} awaiting vetting">?</span> + </td> + </tr> + + <tr> + <td>Reporting deadline</td> + <td> + {% if submission.reporting_deadline > now %} + in {{submission.reporting_deadline|timeuntil}} + {% else %} + {{submission.reporting_deadline|timesince}} ago + {% endif %} + </td> + </tr> + + <tr> + <td>Plagiarism score</td> + <td> + {% if submission.plagiarism_report %} + {{ submission.plagiarism_report.score }} + {% else %} + <a href="{% url 'submissions:plagiarism' submission.arxiv_identifier_w_vn_nr %}">Run plagiarism check</a> + {% endif %} + </td> + </tr> + +</table> +<a href="{% url 'submissions:editorial_page' submission.arxiv_identifier_w_vn_nr %}" class="d-inline-block mb-3">Go to Editorial Page</a> + +<h3>Actions</h3> + +<ul class="pl-4 mb-3"> + {# EIC Assignments #} + {% if perms.scipost.can_assign_submissions %} + {% if not submission.editor_in_charge %} + <li>EIC Assignment requests:</li> + <ul> + {% for assignment in submission.editorialassignment_set.all %} + {% include 'submissions/_assignment_info.html' with assignment=assignment %} + {% empty %} + <li>None found. <a href="{% url 'submissions:assign_submission' submission.arxiv_identifier_w_vn_nr %}">Send a first assignment request</a></li> + {% endfor %} + </ul> + <li><a href="{% url 'submissions:assign_submission' submission.arxiv_identifier_w_vn_nr %}">Send a new assignment request</a></li> + <li><a href="{% url 'submissions:assignment_failed' submission.arxiv_identifier_w_vn_nr %}">Close pre-screening: failure to find EIC</a></li> + {% endif %} + {% endif %} + + {# Plagiarism #} + <li><a href="{% url 'submissions:plagiarism' submission.arxiv_identifier_w_vn_nr %}">Run plagiarism check</a></li> + + {# Compile pdfs #} + {% if submission.reports.accepted.exists %} + <li><a href="{% url 'submissions:reports_accepted_list' %}?submission={{submission.arxiv_identifier_w_vn_nr}}">Compile accepted reports</a></li> + {% endif %} + + {# Communication #} + {% if submission.editor_in_charge %} + <li><a href="{% url 'submissions:communication' arxiv_identifier_w_vn_nr=submission.arxiv_identifier_w_vn_nr comtype='StoE' %}">Send a communication to the Editor-in-charge</a></li> + {% endif %} + + {# EIC Recommendations #} + {% if submission.eicrecommendations.exists %} + <li>See Editorial Recommendations:</li> + <ul> + {% 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 %} + </ul> + {% endif %} + + {# Accepted submission actions #} + {% if submission.status == 'accepted' %} + <li><a href="{% url 'submissions:treated_submission_pdf_compile' submission.arxiv_identifier_w_vn_nr %}">Update the Refereeing Package pdf</a></li> + <li>After proofs have been accepted, you can <a href="{% url 'journals:initiate_publication' %}">initiate the publication process</a> (leads to the validation page)</li> + {% endif %} +</ul> + + +<h3>Events</h3> +<a href="javascript:;" data-toggle="toggle" data-target="#eventslist">Show/hide events</a> +<div id="eventslist"> + {% include 'submissions/submission_event_list.html' with events=submission.events.for_eic %} +</div> + +{% block footer_script %} + {% render_bundle 'tooltip' 'js' %} +{% endblock %} diff --git a/submissions/templates/partials/submissions/refereeing_status_as_tr.html b/submissions/templates/partials/submissions/refereeing_status_as_tr.html new file mode 100644 index 000000000..f87861191 --- /dev/null +++ b/submissions/templates/partials/submissions/refereeing_status_as_tr.html @@ -0,0 +1,10 @@ +{% if submission.refereeing_cycle != 'direct_rec' %} + <tr> + <td>Referees invited</td> + <td>{{submission.referee_invitations.count}} <span class="circle-clickable" data-toggle="tooltip" data-html="true" title="{{submission.referee_invitations.accepted.count}} acccepted<br>{{submission.referee_invitations.declined.count}} declined<br>{{submission.referee_invitations.pending.count}} response pending">?</span> + <tr> + <tr> + <td>Reports obtained</td> + <td>{{submission.reports.accepted.count}} <span class="circle-clickable" data-toggle="tooltip" data-html="true" title="{{submission.reports.accepted.invited.count}} invited<br>{{submission.reports.accepted.contributed.count}} contributed<hr>{{submission.reports.awaiting_vetting.count}} awaiting vetting<br>{{submission.reports.rejected.count}} rejected">?</span> + <tr> +{% endif %} diff --git a/submissions/templates/submissions/_recommendation_author_content.html b/submissions/templates/submissions/_recommendation_author_content.html index cfbda0714..d7a2bee96 100644 --- a/submissions/templates/submissions/_recommendation_author_content.html +++ b/submissions/templates/submissions/_recommendation_author_content.html @@ -6,10 +6,10 @@ {% endblock %} <h3 class="pb-0">Remarks for authors</h3> - <p class="pl-md-3">{{recommendation.remarks_for_authors}}</p> + <p class="pl-md-3">{{recommendation.remarks_for_authors|default:'-'}}</p> <h3 class="pb-0">Requested changes</h3> - <p class="pl-md-3">{{recommendation.requested_changes}}</p> + <p class="pl-md-3">{{recommendation.requested_changes|default:'-'}}</p> {% block recommendation_before_recommendation %}{% endblock %} diff --git a/submissions/templates/submissions/_recommendation_fellow_content.html b/submissions/templates/submissions/_recommendation_fellow_content.html index 79e165088..e2e3926a7 100644 --- a/submissions/templates/submissions/_recommendation_fellow_content.html +++ b/submissions/templates/submissions/_recommendation_fellow_content.html @@ -6,5 +6,5 @@ {% block recommendation_before_recommendation %} <h3 class="pb-0">Remarks for Editorial College</h3> - <p class="pl-md-3">{{recommendation.remarks_for_editorial_college}}</p> + <p class="pl-md-3">{{recommendation.remarks_for_editorial_college|default:'-'}}</p> {% endblock %} diff --git a/submissions/templates/submissions/_submission_refereeing_status.html b/submissions/templates/submissions/_submission_refereeing_status.html index 5d1ea7b1d..225405c15 100644 --- a/submissions/templates/submissions/_submission_refereeing_status.html +++ b/submissions/templates/submissions/_submission_refereeing_status.html @@ -1,6 +1,7 @@ {% if submission.refereeing_cycle != 'direct_rec' %} - <div class="card-block"> - <p class="card-text">Nr referees invited: {{submission.referee_invitations.count}} <span>[{{submission.count_accepted_invitations}} acccepted / {{submission.count_declined_invitations}} declined / {{submission.count_pending_invitations}} response pending]</span></p> - <p class="card-text">Nr reports obtained: {{submission.count_obtained_reports}} [{{submission.count_invited_reports}} invited / {{submission.count_contrib_reports}} contributed], nr refused: {{submission.reports.rejected.count}}, nr awaiting vetting: {{submission.reports.awaiting_vetting.count}}</p> - </div> +<p> + Nr referees invited: {{submission.referee_invitations.count}} <span>[{{submission.count_accepted_invitations}} acccepted / {{submission.count_declined_invitations}} declined / {{submission.count_pending_invitations}} response pending]</span> + <br> + Nr reports obtained: {{submission.count_obtained_reports}} [{{submission.count_invited_reports}} invited / {{submission.count_contrib_reports}} contributed], nr refused: {{submission.reports.rejected.count}}, nr awaiting vetting: {{submission.reports.awaiting_vetting.count}} +</p> {% endif %} diff --git a/submissions/templates/submissions/admin/eic_recommendation_detail.html b/submissions/templates/submissions/admin/eic_recommendation_detail.html new file mode 100644 index 000000000..8d8e0cd66 --- /dev/null +++ b/submissions/templates/submissions/admin/eic_recommendation_detail.html @@ -0,0 +1,94 @@ +{% extends 'submissions/_pool_base.html' %} + +{% block pagetitle %}: editorial recommendation for submission{% endblock pagetitle %} + +{% load scipost_extras %} +{% load bootstrap %} + +{% block breadcrumb_items %} + {{block.super}} + <a href="{% url 'submissions:admin_summary' %}?submission={{submission.arxiv_identifier_w_vn_nr}}" class="breadcrumb-item">Editorial Administration</a> + <span class="breadcrumb-item">Editorial Recommendation</span> +{% endblock %} + +{% block content %} + +<div class="row"> + <div class="col-12"> + <div class="card card-grey"> + <div class="card-block"> + <h1 class="card-title">Editorial Recommendation for Submission</h1> + <p class="card-text"> + Go back to the <a href="{% url 'submissions:editorial_page' arxiv_identifier_w_vn_nr=submission.arxiv_identifier_w_vn_nr %}"> + Editorial Page</a> to take editorial actions + </p> + </div> + </div> + </div> +</div> + +<h2>Submission</h2> +{% include 'submissions/_submission_summary.html' with submission=submission %} + +<div class="card card-outline-secondary"> + {% include 'submissions/_recommendation_fellow_content.html' with recommendation=object %} + <div class="card-block"> + {% if object.remark_set.all %} + <h3 class="card-title">Remarks by Fellows:</h3> + <ul> + {% for remark in object.remark_set.all|sort_by:'date' %} + {{ remark.as_li }} + {% endfor %} + </ul> + {% endif %} + + <h3 class="card-title">Fellows eligible to vote:</h3> + <ul> + <li> + {% for eligible in object.eligible_to_vote.all|sort_by:'user__last_name' %} + {{ eligible.user.last_name }}, + {% endfor %} + </li> + </ul> + + <h3 class="card-title">Voting results up to now:</h3> + <ul> + <li> + Agreed: ({{ object.voted_for.all.count }}) + {% for agreed in object.voted_for.all|sort_by:'user__last_name' %} + {{ agreed.user.last_name }}, + {% endfor %} + </li> + <li> + Disagreed: ({{ object.voted_against.all.count }}) + {% for disagreed in object.voted_against.all|sort_by:'user__last_name' %} + {{ disagreed.user.last_name }}, + {% endfor %} + </li> + <li> + Abstained: ({{ object.voted_abstain.all.count }}) + {% for abstained in object.voted_abstain.all|sort_by:'user__last_name' %} + {{ abstained.user.last_name }}, + {% endfor %} + </li> + </ul> + + {% if object.remark_set %} + <h3 class="card-title">Remarks:</h3> + <ul> + {% for rem in object.remark_set.all %} + <li>{{ rem }}</li> + {% empty %} + <li><em>No remarks</em></li> + {% endfor %} + </ul> + {% endif %} + + <h3>Actions:</h3> + <ul> + <li>To fix the College decision and follow the Editorial Recommendation as is: <a href="{% url 'submissions:fix_College_decision' rec_id=object.id %}">click here</a></li> + <li>To request a modification of the Recommendation to request for revision: click here</li> + </ul> + </div> +</div> +{% endblock content %} diff --git a/submissions/templates/submissions/editorial_admin_plagiarism.html b/submissions/templates/submissions/admin/plagiarism_report.html similarity index 78% rename from submissions/templates/submissions/editorial_admin_plagiarism.html rename to submissions/templates/submissions/admin/plagiarism_report.html index 173211765..b87381c2a 100644 --- a/submissions/templates/submissions/editorial_admin_plagiarism.html +++ b/submissions/templates/submissions/admin/plagiarism_report.html @@ -4,12 +4,14 @@ {% block breadcrumb_items %} {{block.super}} - <a href="{% url 'submissions:admin_summary' %}" class="breadcrumb-item">Editorial Administration</a> + <a href="{% url 'submissions:admin_summary' %}?submission={{submission.arxiv_identifier_w_vn_nr}}" class="breadcrumb-item">Editorial Administration</a> <span class="breadcrumb-item">Plagiarism Report ({{ submission.arxiv_identifier_w_vn_nr }})</span> {% endblock %} {% block content %} <h1>Plagiarism Report for <a href="{{submission.get_absolute_url}}">{{submission.arxiv_identifier_w_vn_nr}}</a></h1> + <h2>{{submission.title}}</h2> + <h3 class="mb-4">by {{submission.author_list}}</h3> {% if submission.plagiarism_report %} {{submission.plagiarism_report}} {% else %} diff --git a/submissions/templates/submissions/editorial_admin_summary.html b/submissions/templates/submissions/editorial_admin_summary.html index 78747d09a..8c03ab767 100644 --- a/submissions/templates/submissions/editorial_admin_summary.html +++ b/submissions/templates/submissions/editorial_admin_summary.html @@ -8,32 +8,70 @@ {% endblock %} {% block content %} - <h1>Summary for Editorial Administrators</h1> +<div class="row"> + <div class="col-md-7"> + <h1>Editorial Administration Page</h1> - <h3>Submissions currently in pre-screening</h3> - <ul class="unstyled-list"> - {% for submission in submission_list.prescreening %} - <li>{{submission}}</li> - {% empty %} - <li>No Submissions are currently in pre-screening</li> - {% endfor %} - </ul> + <h3>Submissions currently in pre-screening</h3> + <ul class="unstyled-list"> + {% for sub in submission_list.prescreening %} + <li> + {% if sub == submission %} + <strong><a href="?submission={{sub.arxiv_identifier_w_vn_nr}}" class="text-black">{{sub}}</a></strong> + {% else %} + <a href="?submission={{sub.arxiv_identifier_w_vn_nr}}">{{sub}}</a> + {% endif %} + </li> + {% empty %} + <li>No Submissions are currently in pre-screening</li> + {% endfor %} + </ul> - <h3>Submissions currently in refereeing round</h3> - <ul class="unstyled-list"> - {% for submission in submission_list.actively_refereeing %} - <li>{{submission}}<br>{{submission.get_status_display}}</li> - {% empty %} - <li>No Submissions are currently in refereeing round</li> - {% endfor %} - </ul> + <h3>Submissions currently in refereeing round</h3> + <ul class="unstyled-list"> + {% for sub in submission_list.actively_refereeing %} + <li> + {% if sub == submission %} + <strong><a href="?submission={{sub.arxiv_identifier_w_vn_nr}}" class="text-black">{{sub}}</a></strong> + {% else %} + <a href="?submission={{sub.arxiv_identifier_w_vn_nr}}">{{sub}}</a> + {% endif %} + </li> + {% empty %} + <li>No Submissions are currently in refereeing round</li> + {% endfor %} + </ul> - <h3>Submissions accepted</h3> - <ul class="unstyled-list"> - {% for submission in submission_list.accepted %} - <li>{{submission}}</li> - {% empty %} - <li>All accepted Submissions are published</li> - {% endfor %} - </ul> + <h3>Submissions accepted</h3> + <ul class="unstyled-list"> + {% for sub in submission_list.accepted %} + <li> + {% if sub == submission %} + <strong><a href="?submission={{sub.arxiv_identifier_w_vn_nr}}" class="text-black">{{sub}}</a></strong> + {% else %} + <a href="?submission={{sub.arxiv_identifier_w_vn_nr}}">{{sub}}</a> + {% endif %} + </li> + {% empty %} + <li>All accepted Submissions are published</li> + {% endfor %} + </ul> + </div> + + <div class="col-md-5"> + {% if submission %} + <div class="card card-outline-secondary"> + <div class="card-block"> + {% include 'partials/submissions/admin/editorial_admin_summary.html' with submission=submission %} + </div> + </div> + {% 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/reports_accepted_list.html b/submissions/templates/submissions/reports_accepted_list.html index b4a2ff77d..76838dc98 100644 --- a/submissions/templates/submissions/reports_accepted_list.html +++ b/submissions/templates/submissions/reports_accepted_list.html @@ -11,44 +11,40 @@ {% block content %} -<div class="row"> - <div class="col-12"> - <h1 class="highlight">Accepted Reports</h1> - </div> -</div> +<h1 class="highlight">Accepted Reports{% if request.GET.submission %}<small> for submission {{request.GET.submission}}</small>{% endif %}</h1> -<div class="row"> - <div class="col-12"> - <table class="table"> - <thead> - <tr> - <th>Report nr. of Submission</th> - <th>Submission</th> - <th>Report author</th> - <th>Has PDF</th> - <th>Action</th> - </tr> - </thead> - <tbody> - {% for report in reports %} - <tr{% if not report.pdf_report %} class="table-danger"{% endif %}> - <td>{{report.report_nr}}</td> - <td><a href="{{report.get_absolute_url}}">{{report.submission.arxiv_identifier_w_vn_nr}}</a></td> - <td>{% if report.anonymous %}<em>Anonymous</em>{% else %}{{report.author}}{% endif %}</td> - <td> - {{report.pdf_report|yesno:"Yes,No"}} - {% if report.pdf_report %} - · <a href="{% url 'submissions:report_detail_pdf' report.submission.arxiv_identifier_w_vn_nr report.report_nr %}" target="_blank">Download</a> - {% endif %} - </td> - <td> - <a href="{% url 'submissions:report_pdf_compile' report.id %}">Compile/upload report</a> - </td> - </tr> - {% endfor %} - </tbody> - </table> - </div> -</div> +<table class="table"> + <thead> + <tr> + <th>Report nr. of Submission</th> + <th>Submission</th> + <th>Report author</th> + <th>Has PDF</th> + <th>Action</th> + </tr> + </thead> + <tbody> + {% for report in reports %} + <tr{% if not report.pdf_report %} class="table-danger"{% endif %}> + <td>{{report.report_nr}}</td> + <td><a href="{{report.get_absolute_url}}">{{report.submission.arxiv_identifier_w_vn_nr}}</a></td> + <td>{% if report.anonymous %}<em>Anonymous</em>{% else %}{{report.author}}{% endif %}</td> + <td> + {{report.pdf_report|yesno:"Yes,No"}} + {% if report.pdf_report %} + · <a href="{% url 'submissions:report_detail_pdf' report.submission.arxiv_identifier_w_vn_nr report.report_nr %}" target="_blank">Download</a> + {% endif %} + </td> + <td> + <a href="{% url 'submissions:report_pdf_compile' report.id %}">Compile/upload report</a> + </td> + </tr> + {% empty %} + <tr> + <td colspan="5">No Reports found</td> + </tr> + {% endfor %} + </tbody> +</table> {% endblock %} diff --git a/submissions/urls.py b/submissions/urls.py index cfe6906e4..f9877b391 100644 --- a/submissions/urls.py +++ b/submissions/urls.py @@ -30,10 +30,14 @@ urlpatterns = [ views.treated_submission_pdf_compile, name='treated_submission_pdf_compile'), url(r'^admin/(?P<arxiv_identifier_w_vn_nr>[0-9]{4,}.[0-9]{5,}v[0-9]{1,2})/plagiarism$', views.PlagiarismView.as_view(), name='plagiarism'), + url(r'^admin/(?P<arxiv_identifier_w_vn_nr>[0-9]{4,}.[0-9]{5,}v[0-9]{1,2})/recommendations/(?P<rec_id>[0-9]+)$', + views.EICRecommendationView.as_view(), name='eic_recommendation_detail'), url(r'^admin/events/latest$', views.latest_events, name='latest_events'), url(r'^admin/reports$', views.reports_accepted_list, name='reports_accepted_list'), url(r'^admin/reports/(?P<report_id>[0-9]+)/compile$', views.report_pdf_compile, name='report_pdf_compile'), + url(r'^admin/reports/(?P<report_id>[0-9]+)/compile$', + views.report_pdf_compile, name='report_pdf_compile'), url(r'^submit_manuscript$', views.RequestSubmission.as_view(), name='submit_manuscript'), url(r'^submit_manuscript/prefill$', views.prefill_using_arxiv_identifier, diff --git a/submissions/views.py b/submissions/views.py index de0ffd7e0..768c220bf 100644 --- a/submissions/views.py +++ b/submissions/views.py @@ -257,6 +257,9 @@ def reports_accepted_list(request): """ reports = (Report.objects.accepted() .order_by('pdf_report', 'submission').prefetch_related('submission')) + + if request.GET.get('submission'): + reports = reports.filter(submission__arxiv_identifier_w_vn_nr=request.GET.get('submission')) context = { 'reports': reports } @@ -1393,6 +1396,8 @@ def fix_College_decision(request, rec_id): """ Terminates the voting on a Recommendation. Called by an Editorial Administrator. + + TO FIX: If multiple recommendations are submitted; decisions may be overruled unexpectedly. """ recommendation = get_object_or_404((EICRecommendation.objects .get_for_user_in_pool(request.user)), pk=rec_id) @@ -1435,14 +1440,46 @@ def fix_College_decision(request, rec_id): return redirect(reverse('submissions:pool')) +class EICRecommendationView(SubmissionAdminViewMixin, DetailView): + permission_required = 'scipost.can_fix_College_decision' + template_name = 'submissions/admin/eic_recommendation_detail.html' + editorial_page = True + + def get_context_data(self, *args, **kwargs): + """ Get the EICRecommendation as a submission-related instance. """ + ctx = super().get_context_data(*args, **kwargs) + ctx['object'] = get_object_or_404(ctx['submission'].eicrecommendations.all(), + id=self.kwargs['rec_id']) + 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/editorial_admin_summary.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. + try: + arxiv_id = self.request.GET.get('submission') + assert arxiv_id + context['submission'] = (context['submission_list'] + .get(arxiv_identifier_w_vn_nr=arxiv_id)) + except (AssertionError, Submission.DoesNotExist): + context['submission'] = None + context['latest_events'] = SubmissionEvent.objects.for_eic()#.last_hours() + return context + class PlagiarismView(SubmissionAdminViewMixin, DetailView): permission_required = 'scipost.can_do_plagiarism_checks' - template_name = 'submissions/editorial_admin_plagiarism.html' + template_name = 'submissions/admin/plagiarism_report.html' + editorial_page = True def post(self, request, *args, **kwargs): client = iThenticate.API.Client(settings.ITHENTICATE_USERNAME, -- GitLab