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/_general.scss b/scipost/static/scipost/assets/css/_general.scss index bd291703ecce886c40d13ad9a4f17b24884c2537..1b588ba860c314f02a84144451264ecebcc3e91f 100644 --- a/scipost/static/scipost/assets/css/_general.scss +++ b/scipost/static/scipost/assets/css/_general.scss @@ -39,3 +39,8 @@ footer .logos a { body > .container { padding-bottom: 1.5rem; } + +.quote-border { + border-left: 3px solid $scipost-lightblue; + padding-left: 1rem; +} 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/static/scipost/assets/js/scripts.js b/scipost/static/scipost/assets/js/scripts.js index fcc6ddc4c8d8d56b05c1ad16940e917cccc6342c..ce2d0a59dce94d80371442a40701bd14b61a4538 100644 --- a/scipost/static/scipost/assets/js/scripts.js +++ b/scipost/static/scipost/assets/js/scripts.js @@ -1,10 +1,17 @@ -import tooltip from './tooltip.js'; import notifications from './notifications.js'; function hide_all_alerts() { $(".alert").fadeOut(300); } +var activate_tooltip = function() { + jQuery('[data-toggle="tooltip"]').tooltip({ + animation: false, + fallbackPlacement: 'clockwise', + placement: 'auto' + }); +} + var getUrlParameter = function getUrlParameter(sParam) { var sPageURL = decodeURIComponent(window.location.search.substring(1)), sURLVariables = sPageURL.split('&'), @@ -31,6 +38,8 @@ function init_page() { $("form .auto-submit input, form.auto-submit input, form.auto-submit select").on('change', function(){ $(this).parents('form').submit() }); + + activate_tooltip(); } $(function(){ diff --git a/scipost/static/scipost/assets/js/tooltip.js b/scipost/static/scipost/assets/js/tooltip.js deleted file mode 100644 index f636b484f0f08f51adc9dcc92ad1d83a4f6985e2..0000000000000000000000000000000000000000 --- a/scipost/static/scipost/assets/js/tooltip.js +++ /dev/null @@ -1,9 +0,0 @@ -var activate_tooltip = function() { - jQuery('[data-toggle="tooltip"]').tooltip({ - animation: false, - fallbackPlacement: 'clockwise', - placement: 'auto' - }); -} - -activate_tooltip(); 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/scipost/templatetags/scipost_extras.py b/scipost/templatetags/scipost_extras.py index a378cf31277cdda85e8874504559044eeb7d42a1..ed9aaebcbce23e8b509aaaf3042a31d11b9de8f6 100644 --- a/scipost/templatetags/scipost_extras.py +++ b/scipost/templatetags/scipost_extras.py @@ -1,6 +1,6 @@ from django import template -from ..constants import subject_areas_dict, subject_areas_raw_dict +from ..constants import subject_areas_dict from ..models import Contributor register = template.Library() diff --git a/scipost/templatetags/user_groups.py b/scipost/templatetags/user_groups.py new file mode 100644 index 0000000000000000000000000000000000000000..eac1a8b142a94351ee09751cae447afec31aa901 --- /dev/null +++ b/scipost/templatetags/user_groups.py @@ -0,0 +1,12 @@ +from django import template + +register = template.Library() + + +@register.simple_tag +def is_edcol_admin(user): + """ + Assign template variable (boolean) to check if user is Editorial Administator. + This assignment is limited to a certain context block! + """ + return user.groups.filter(name='Editorial Administrators').exists() or user.is_superuser() diff --git a/submissions/templates/partials/submissions/admin/submission_details.html b/submissions/templates/partials/submissions/admin/submission_details.html deleted file mode 100644 index 39969bdc536c7e7dc0974c1fdb5ceaf89b2bd093..0000000000000000000000000000000000000000 --- a/submissions/templates/partials/submissions/admin/submission_details.html +++ /dev/null @@ -1,147 +0,0 @@ -{% load guardian_tags %} -{% load scipost_extras %} -{% load submissions_extras %} - - -<div class="card border-secondary mt-2 submission-detail"> - <div class="card-body"> - <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-placement='bottom' 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.editorial_assignments.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 %}">Manage plagiarism report</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> - <div id="eventslist"> - {% include 'submissions/submission_event_list.html' with events=submission.events.for_eic %} - </div> - </div> -</div> 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 4b45732367b38ee70410bf1231deabbc75c5fc9e..032739c452da25847ed4887f2cc669d4f9af6e3c 100644 --- a/submissions/templates/partials/submissions/pool/submission_details.html +++ b/submissions/templates/partials/submissions/pool/submission_details.html @@ -1,7 +1,10 @@ {% load guardian_tags %} {% load scipost_extras %} {% load submissions_extras %} +{% load user_groups %} +{% get_obj_perms request.user for submission as "sub_perms" %} +{% is_edcol_admin request.user as is_ECAdmin %} <div class="card submission-detail"> {% include 'submissions/_submission_card_fellow_content.html' with submission=submission %} @@ -20,9 +23,6 @@ {% endfor %} </ul> - - - {% get_obj_perms request.user for submission as "sub_perms" %} {% if "can_take_editorial_actions" in sub_perms or is_ECAdmin %} {% include 'submissions/_required_actions_block.html' with submission=submission %} <h4> @@ -30,31 +30,60 @@ </h4> {% endif %} - {% if perms.scipost.can_assign_submissions %} - {% if submission.editorial_assignments.exists %} - <h4>EIC Assignment requests:</h4> - <ul> - {% for assignment in submission.editorial_assignments.all %} - {% include 'submissions/_assignment_info.html' with assignment=assignment %} - {% endfor %} - </ul> - {% endif %} - {% if submission.editor_in_charge == None %} - <h4>Actions:</h4> - <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> - </ul> - {% endif %} - {% endif %} - {% if is_ECAdmin %} - <h4> - <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> - </h4> - {% if submission.status == 'accepted' %} - <h4>After proofs have been accepted, you can <a href="{% url 'journals:initiate_publication' %}">initiate the publication process</a> (leads to the validation page)</h4> - {% endif %} + <h3>Editorial Administration</h3> + <ul class="pl-4 mb-3"> + {# EIC Assignments #} + {% if perms.scipost.can_assign_submissions %} + <li>EIC Assignment requests:</li> + <ul class="pl-3"> + {% for assignment in submission.editorial_assignments.all %} + {% include 'submissions/_assignment_info.html' with assignment=assignment %} + {% empty %} + <li>No assignment requests have been sent</li> + {% endfor %} + + {% if not submission.editor_in_charge %} + <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 %} + </ul> + {% endif %} + + {# Plagiarism #} + <li><a href="{% url 'submissions:plagiarism' submission.arxiv_identifier_w_vn_nr %}">Manage plagiarism report</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 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 %} + </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> + <div id="eventslist"> + {% include 'submissions/submission_event_list.html' with events=submission.events.for_eic %} + </div> {% endif %} </div> </div> 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/partials/submissions/refereeing_status_as_tr.html b/submissions/templates/partials/submissions/refereeing_status_as_tr.html index 6a9692aa6033791ca716766ee6288dafc76907cf..05c0db715947fe69912930d07835e44381f45761 100644 --- a/submissions/templates/partials/submissions/refereeing_status_as_tr.html +++ b/submissions/templates/partials/submissions/refereeing_status_as_tr.html @@ -1,10 +1,10 @@ {% if submission.refereeing_cycle != 'direct_rec' %} <tr> <td>Referees invited</td> - <td>{{submission.referee_invitations.count}} <span class="circle-clickable" data-placement='bottom' data-toggle="tooltip" data-html="true" title="{{submission.referee_invitations.accepted.count}} accepted<br>{{submission.referee_invitations.declined.count}} declined<br>{{submission.referee_invitations.pending.count}} response pending">?</span> + <td>{{submission.referee_invitations.count}} <small><span class="fa fa-info-circle" data-placement='bottom' data-toggle="tooltip" data-html="true" title="{{submission.referee_invitations.accepted.count}} accepted<br>{{submission.referee_invitations.declined.count}} declined<br>{{submission.referee_invitations.pending.count}} response pending"></span></small> <tr> <tr> <td>Reports obtained</td> - <td>{{submission.reports.accepted.count}} <span class="circle-clickable" data-placement='bottom' 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> + <td>{{submission.reports.accepted.count}} <small><span class="fa fa-info-circle" data-placement='bottom' 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></small> <tr> {% endif %} diff --git a/submissions/templates/submissions/_submission_card_fellow_content.html b/submissions/templates/submissions/_submission_card_fellow_content.html index 6af2e213aa06bba299eb2d3c13987b10b0b3fbfa..49c7e881e218d6a7ee18075fcb771ff665ebb658 100644 --- a/submissions/templates/submissions/_submission_card_fellow_content.html +++ b/submissions/templates/submissions/_submission_card_fellow_content.html @@ -1,7 +1,82 @@ -{% extends 'submissions/_submission_card_fellow_content_sparse.html' %} +{% extends 'submissions/_submission_card_base.html' %} {% block card_block_footer %} - {{block.super}} + <p class="card-text mb-3">by {{submission.author_list}}</p> + <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> - {% include 'submissions/_submission_refereeing_status.html' with submission=submission %} + {% 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}} + <small><span class="fa fa-info-circle" data-toggle="tooltip" data-placement='bottom' 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></small> + </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> + + {% if perms.scipost.can_do_plagiarism_checks %} + <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> + {% endif %} + + </table> {% endblock %} diff --git a/submissions/templates/submissions/_submission_card_fellow_content_sparse.html b/submissions/templates/submissions/_submission_card_fellow_content_sparse.html deleted file mode 100644 index 8fbd9b1aeb82e3675874435338df0f7a40cdb66a..0000000000000000000000000000000000000000 --- a/submissions/templates/submissions/_submission_card_fellow_content_sparse.html +++ /dev/null @@ -1,13 +0,0 @@ -{% extends 'submissions/_submission_card_content.html' %} - -{% block card_block_footer %} - {{block.super}} - - <!-- Fellow specific info --> - {% if submission.status == 'unassigned' %} - <p class="card-text text-danger">Status: {{ submission.get_status_display }}. You can volunteer to become Editor-in-charge by <a href="{% url 'submissions:volunteer_as_EIC' submission.arxiv_identifier_w_vn_nr %}">clicking here</a>.</p> - {% else %} - <p class="card-text">Editor-in-charge: <em>{{ submission.editor_in_charge }}</em></p> - <p class="card-text">Status: {{ submission.get_status_display }}</p> - {% endif %} -{% endblock %} 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 a4eed96cbcd805ad7f90cddf7655bfa75873fdae..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 %} @@ -14,7 +14,7 @@ <h1 class="highlight">Editorial Recommendation</h1> <div class="card card-outline-secondary"> - {% include 'submissions/_submission_card_fellow_content_sparse.html' with submission=object.submission %} + {% include 'submissions/_submission_card_fellow_content.html' with submission=object.submission %} </div> <div class="card card-outline-secondary"> diff --git a/submissions/templates/submissions/pool.html b/submissions/templates/submissions/pool.html index ee80629ae9547d42966b84e0561162da0c09bac8..632bb4fe8b832e60ace7193cee4052cfb862c128 100644 --- a/submissions/templates/submissions/pool.html +++ b/submissions/templates/submissions/pool.html @@ -45,7 +45,7 @@ <div class="col-12" id="undergoing_rec_{{rec.id}}"> <div class="card card-outline-secondary"> - {% include 'submissions/_submission_card_fellow_content_sparse.html' with submission=rec.submission %} + {% include 'submissions/_submission_card_fellow_content.html' with submission=rec.submission %} </div> <div class="card card-outline-secondary"> @@ -131,7 +131,7 @@ <div class="row"> <div class="col-12" id="prepare_rec_{{rec.id}}"> <div class="card card-outline-secondary"> - {% include 'submissions/_submission_card_fellow_content_sparse.html' with submission=rec.submission %} + {% include 'submissions/_submission_card_fellow_content.html' with submission=rec.submission %} </div> <div class="card card-outline-secondary"> diff --git a/submissions/templates/submissions/pool/pool.html b/submissions/templates/submissions/pool/pool.html index f304a5068691ef1752024a24e507eb474d131f58..97758bf7d200b5414411822a62b3c25fa99375bd 100644 --- a/submissions/templates/submissions/pool/pool.html +++ b/submissions/templates/submissions/pool/pool.html @@ -4,6 +4,7 @@ {% load guardian_tags %} {% load scipost_extras %} {% load submissions_extras %} +{% load user_groups %} {% block breadcrumb_items %} <a href="{% url 'scipost:personal_page' %}" class="breadcrumb-item">Personal Page</a> @@ -18,15 +19,45 @@ {% block pagetitle %}: Submissions Pool{% endblock pagetitle %} {% block content %} - {% with is_ECAdmin=request.user|is_in_group:'Editorial Administrators' %} - <a href="{% url 'submissions:pool' %}?test=1">See old pool layout</a> - <div class="row"> - <div class="col-md-7"> - <h1>SciPost Submissions Pool</h1> - {% if is_ECAdmin %} - <a href="{% url 'submissions:admin' %}">Go to the Editorial Administration</a> + {% is_edcol_admin request.user as is_ECAdmin %} + + <a href="{% url 'submissions:pool' %}?test=1">See old pool layout</a> + <div class="row"> + <div class="col-md-7"> + <h1>SciPost Submissions Pool</h1> + {% if is_ECAdmin %} + + {% if recommendations_to_prepare_for_voting or recommendations_undergoing_voting %} + <div class="quote-border"> + <h2 class="text-primary">Administrative Tasks</h2> + + {% 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 %} + </div> {% endif %} + {% endif %} + {% if assignments_to_consider or recs_to_vote_on %} {% if assignments_to_consider %} <h3>Your open Assignment Requests <i class="fa fa-exclamation-circle text-warning"></i></h3> <ul> @@ -48,43 +79,47 @@ {% endfor %} </ul> {% endif %} + <hr> + {% endif %} - {% if assignments_to_consider or recs_to_vote_on %} - <hr> - {% endif %} + {% if search_form %} + <h3>Filter by status</h3> + <form method="get" class="auto-submit mb-3"> + {{ search_form|bootstrap:'12,12' }} + </form> + {% endif %} - {% if search_form %} - <h3>Filter by status</h3> - <form method="get" class="auto-submit mb-3"> - {{ search_form|bootstrap:'12,12' }} - </form> - {% endif %} + <ul class="list-unstyled" data-target="active-list"> + <!-- Submissions list --> + {% for sub in submissions_in_pool %} + <li class="p-2{% if sub == submission %} active{% endif %}"> + {% if sub == submission %} + {% include 'partials/submissions/pool/submission_li.html' with submission=sub is_current=1 %} + {% else %} + {% include 'partials/submissions/pool/submission_li.html' with submission=sub is_current=0 %} + {% endif %} + </li> + {% empty %} + <li> + <h3 class="text-center"><i class="fa fa-question fa-2x"></i><br>No Submissions found.</h3> + </li> + {% endfor %} + </ul> + </div><!-- End page content --> - <ul class="list-unstyled" data-target="active-list"> - <!-- Submissions list --> - {% for sub in submissions_in_pool %} - <li class="p-2{% if sub == submission %} active{% endif %}"> - {% if sub == submission %} - {% include 'partials/submissions/pool/submission_li.html' with submission=sub is_current=1 %} - {% else %} - {% include 'partials/submissions/pool/submission_li.html' with submission=sub is_current=0 %} - {% endif %} - </li> - {% empty %} - <li> - <h3 class="text-center"><i class="fa fa-question fa-2x"></i><br>No Submissions found.</h3> - </li> - {% endfor %} - </ul> - </div><!-- End page content --> + <div class="col-md-5" id="details"> + {% if submission %} + {% 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> - <div class="col-md-5" id="details"> - {% if submission %} - {% 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 %} - </div> + {% endif %} </div> - {% endwith %} + </div> {% endblock %} 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 dacf0260181b637a1c60e0869e17d23277465e28..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,8 +386,12 @@ 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.GET.get('json'): + if context['submission'] and request.is_ajax(): template = 'partials/submissions/pool/submission_details.html' elif is_tester(request.user) and not request.GET.get('test'): template = 'submissions/pool/pool.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'