diff --git a/scipost/management/commands/add_groups_and_permissions.py b/scipost/management/commands/add_groups_and_permissions.py index e3977e696ae23584a4b2f846d1e5a10834fe08c2..9d8d1f39b96bd9d0d7ecee776198c73c01a6fb58 100644 --- a/scipost/management/commands/add_groups_and_permissions.py +++ b/scipost/management/commands/add_groups_and_permissions.py @@ -132,6 +132,10 @@ class Command(BaseCommand): codename='can_referee', name='Can act as a referee and submit reports on Submissions', content_type=content_type) + can_oversee_refereeing, created = Permission.objects.get_or_create( + codename='can_oversee_refereeing', + name='Can oversee refereeing', + content_type=content_type) # Voting can_prepare_recommendations_for_voting, created = Permission.objects.get_or_create( @@ -178,6 +182,7 @@ class Command(BaseCommand): EditorialAdmin.permissions.add( can_view_pool, can_assign_submissions, + can_oversee_refereeing, can_prepare_recommendations_for_voting, can_fix_College_decision, can_publish_accepted_submission, diff --git a/scipost/templates/scipost/personal_page.html b/scipost/templates/scipost/personal_page.html index 8705a78593b3c7957978b87a47df21b763cf2e59..41a53da7087a1226f810800ce475a2d7140335ac 100644 --- a/scipost/templates/scipost/personal_page.html +++ b/scipost/templates/scipost/personal_page.html @@ -274,10 +274,16 @@ {% endif %} </ul> + {% if 'Editorial Administrators' in user_groups %} + <h3>Refereeing overview</h3> + <ul> + <li>View (and act on) outstanding refereeing invitations in the <a href="{% url 'submissions:refereeing_overview' %}">refereeing overview</a></li> + </ul> <h3>Voting</h3> <ul> <li>Prepare Editorial Recommendations for voting via the <a href="{% url 'submissions:pool' %}">Submissions Pool</a> ({{ nr_recommendations_to_prepare_for_voting }})</li> </ul> + {% endif %} </div> {% endif %} </div> diff --git a/submissions/templates/submissions/refereeing_overview.html b/submissions/templates/submissions/refereeing_overview.html new file mode 100644 index 0000000000000000000000000000000000000000..f2a4f9c34e79d81e9cd6d921f79d1da6b325f8a9 --- /dev/null +++ b/submissions/templates/submissions/refereeing_overview.html @@ -0,0 +1,47 @@ +{% extends 'submissions/_pool_base.html' %} + +{% block pagetitle %}: overview of refereeing{% endblock pagetitle %} + +{% load scipost_extras %} +{% load bootstrap %} + +{% block breadcrumb_items %} + {{block.super}} + <span class="breadcrumb-item">Refereeing overview</span> +{% endblock %} + +{% block content %} + +<div class="row"> + <div class="col-12"> + <div class="card card-grey"> + <div class="card-block"> + <h1>Refereeing overview</h1> + </div> + </div> + </div> +</div> + +{% for submission in submissions_under_refereeing %} + +<hr/> +<div class="row"> + <div class="col-12"> + <div class="card mx-1"> + <h3><a href="{% url 'submissions:submission' arxiv_identifier_w_vn_nr=submission.arxiv_identifier_w_vn_nr %}">{{ submission.title }}</a></h3> + <p>{{ submission.author_list }}</p> + <h4>Refereeing deadline: {{ submission.reporting_deadline }}</h4> + <h4>Refereeing status summary:</h4> + {% include 'submissions/_submission_refereeing_status.html' with submission=submission %} + <h3 class="mb-2">Detail of refereeing invitations:</h3> + {% include 'submissions/_submission_refereeing_invitations.html' with submission=submission invitations=ref_invitations %} + <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> + </div> + </div> +</div> + +{% endfor %} + + + +{% endblock content %} diff --git a/submissions/urls.py b/submissions/urls.py index 042f2f393d35300d05d06f8433619dfde5aae436..48e208052b98fc264fd01f9c991d80325bd5a886 100644 --- a/submissions/urls.py +++ b/submissions/urls.py @@ -63,6 +63,7 @@ urlpatterns = [ views.set_refereeing_deadline, name='set_refereeing_deadline'), url(r'^close_refereeing_round/(?P<arxiv_identifier_w_vn_nr>[0-9]{4,}.[0-9]{5,}v[0-9]{1,2})$', views.close_refereeing_round, name='close_refereeing_round'), + url(r'^refereeing_overview$', views.refereeing_overview, name='refereeing_overview'), url(r'^communication/(?P<arxiv_identifier_w_vn_nr>[0-9]{4,}.[0-9]{5,}v[0-9]{1,2})/(?P<comtype>[a-zA-Z]{4,})$', views.communication, name='communication'), url(r'^communication/(?P<arxiv_identifier_w_vn_nr>[0-9]{4,}.[0-9]{5,}v[0-9]{1,2})/(?P<comtype>[a-zA-Z]{4,})/(?P<referee_id>[0-9]+)$', diff --git a/submissions/views.py b/submissions/views.py index 99eb79e517db0ff148d5620b5000dd9b9abb1151..81375ff8b1198c191c9a0000b1e3d64687bcdc62 100644 --- a/submissions/views.py +++ b/submissions/views.py @@ -930,6 +930,14 @@ def close_refereeing_round(request, arxiv_identifier_w_vn_nr): kwargs={'arxiv_identifier_w_vn_nr': arxiv_identifier_w_vn_nr})) +@permission_required('scipost.can_oversee_refereeing', raise_exception=True) +def refereeing_overview(request): + submissions_under_refereeing = Submission.objects.filter( + status='EICassigned').order_by('submission_date') + context= {'submissions_under_refereeing': submissions_under_refereeing,} + return render(request, 'submissions/refereeing_overview.html', context) + + @login_required def communication(request, arxiv_identifier_w_vn_nr, comtype, referee_id=None): """