SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 58356a07 authored by Jean-Sébastien Caux's avatar Jean-Sébastien Caux
Browse files

Rework pool so that edadmin actions occur there

parent 73be7a47
No related branches found
No related tags found
No related merge requests found
Showing
with 154 additions and 15 deletions
<h1>Editorial administration</h1>
{% if submission.in_stage_incoming %}
{% include "edadmin/_submission_incoming.html" with submission=submission %}
{% endif %}
......@@ -25,6 +25,11 @@ urlpatterns = [
base._hx_submission_details_contents,
name="_hx_submission_details_contents",
),
path(
"tab/edadmin",
base._hx_submission_tab_contents_edadmin,
name="_hx_submission_tab_contents_edadmin",
),
]),
),
]
......@@ -58,3 +58,13 @@ def _hx_submission_details_contents(request, identifier_w_vn_nr):
)
context = {"submission": submission,}
return render(request, "edadmin/_hx_submission_details_contents.html", context)
@login_required
@user_passes_test(is_edadmin)
def _hx_submission_tab_contents_edadmin(request, identifier_w_vn_nr):
submission = get_object_or_404(
Submission, preprint__identifier_w_vn_nr=identifier_w_vn_nr
)
context = {"submission": submission,}
return render(request, "edadmin/_hx_submission_tab_contents_edadmin.html", context)
......@@ -56,7 +56,7 @@ def _hx_submission_admissibility(request, identifier_w_vn_nr):
submission.refresh_from_db()
# trigger re-rendering of the details-contents div
response = HttpResponse()
response["HX-Trigger"] = f"submission-{submission.pk}-details-updated"
response["HX-Trigger"] = f"submission-{submission.pk}-tab-edadmin-updated"
return response
context = {"submission": submission, "form": form,}
return render(request, "edadmin/_hx_submission_admissibility_form.html", context)
......@@ -123,7 +123,7 @@ def _hx_plagiarism_internal_assess(request, identifier_w_vn_nr):
if form.is_valid(): # trigger re-rendering of details-contents div
assessment = form.save()
response = HttpResponse()
response["HX-Trigger"] = f"submission-{submission.pk}-details-updated"
response["HX-Trigger"] = f"submission-{submission.pk}-tab-edadmin-updated"
return response
context = {
"submission": submission,
......@@ -173,7 +173,7 @@ def _hx_plagiarism_iThenticate_assess(request, identifier_w_vn_nr):
if form.is_valid(): # trigger re-rendering of details-contents div
assessment = form.save()
response = HttpResponse()
response["HX-Trigger"] = f"submission-{submission.pk}-details-updated"
response["HX-Trigger"] = f"submission-{submission.pk}-tab-edadmin-updated"
return response
context = {
"submission": submission,
......@@ -218,7 +218,7 @@ def _hx_submission_admission(request, identifier_w_vn_nr):
submission.refresh_from_db()
# redirect to the edadmin page so that all is refreshed
response = HttpResponse()
response["HX-Redirect"] = reverse("edadmin:edadmin")
response["HX-Redirect"] = reverse("submissions:pool:pool")
return response
context = {"submission": submission, "form": form,}
return render(request, "edadmin/_hx_submission_admission_form.html", context)
......@@ -8,14 +8,14 @@
</summary>
<div id="details_{{ submission.id }}"
class="mt-2"
hx-get="{% url 'submissions:pool:_hx_submission_details_contents' submission.preprint.identifier_w_vn_nr %}"
<div id="tabs-{{ submission.id }}"
class="m-2 p-2"
hx-get="{% url 'submissions:pool:_hx_submission_tab' identifier_w_vn_nr=submission.preprint.identifier_w_vn_nr tab='info' %}"
hx-trigger="toggle once from:#submission-{{ submission.pk }}-details"
hx-indicator="#indicator-details-{{ submission.id }}"
hx-indicator="#indicator-tabs-{{ submission.id }}"
>
</div>
<span id="indicator-details-{{ submission.id }}" class="htmx-indicator p-1">
<span id="indicator-tabs-{{ submission.id }}" class="htmx-indicator p-1">
<button class="btn btn-sm btn-warning p-2" type="button" disabled>
<small><strong>Loading...</strong></small>
<div class="spinner-grow spinner-grow-sm ms-2" role="status" aria-hidden="true"></div>
......
......@@ -5,7 +5,7 @@
<strong>No Submission could be found</strong>
{% endfor %}
{% if page_obj.has_next %}
<div hx-post="{% url 'submissions:pool:_hx_submissions_list' %}?page={{ page_obj.next_page_number }}"
<div hx-post="{% url 'submissions:pool:_hx_submission_list' %}?page={{ page_obj.next_page_number }}"
hx-include="#search-form"
hx-trigger="revealed"
hx-swap="afterend"
......@@ -19,3 +19,13 @@
</div>
</div>
{% endif %}
{% block footer_script %}
<script type="module" nonce="{{ request.csp_nonce }}">
import mermaid from 'https://unpkg.com/mermaid@9/dist/mermaid.esm.min.mjs';
mermaid.initialize({ startOnLoad: false });
document.body.addEventListener("htmx:afterSettle", function(evt) {
mermaid.init(".workflowDiagram");
});
</script>
{% endblock footer_script %}
<ul class="nav nav-pills justify-content-center">
<li class="nav-item">
<a class="nav-link{% if tab == "info" %} active{% endif %}"
hx-get="{% url "submissions:pool:_hx_submission_tab" identifier_w_vn_nr=submission.preprint.identifier_w_vn_nr tab='info' %}"
hx-target="#tabs-{{ submission.id }}"
>Submission<br>information</a>
</li>
<li class="nav-item">
<a class="nav-link{% if tab == "refereeing" %} active{% endif %}"
hx-get="{% url "submissions:pool:_hx_submission_tab" identifier_w_vn_nr=submission.preprint.identifier_w_vn_nr tab='refereeing' %}"
hx-target="#tabs-{{ submission.id }}"
>Refereeing<br>history</a>
</li>
<li class="nav-item">
<a class="nav-link{% if tab == "remarks" %} active{% endif %}"
hx-get="{% url "submissions:pool:_hx_submission_tab" identifier_w_vn_nr=submission.preprint.identifier_w_vn_nr tab='remarks' %}"
hx-target="#tabs-{{ submission.id }}"
>Remarks</a>
</li>
<li class="nav-item">
<a class="nav-link{% if tab == "graph" %} active{% endif %}"
hx-get="{% url "submissions:pool:_hx_submission_tab" identifier_w_vn_nr=submission.preprint.identifier_w_vn_nr tab='graph' %}"
hx-target="#tabs-{{ submission.id }}"
>Graph</a>
</li>
<li class="nav-item">
<a class="nav-link{% if tab == "events" %} active{% endif %}"
hx-get="{% url "submissions:pool:_hx_submission_tab" identifier_w_vn_nr=submission.preprint.identifier_w_vn_nr tab='events' %}"
hx-target="#tabs-{{ submission.id }}"
>Events</a>
</li>
{% if request.user.contributor.is_ed_admin %}
<li class="nav-item">
<a class="nav-link{% if tab == "edadmin" %} active{% endif %}"
hx-get="{% url "submissions:pool:_hx_submission_tab" identifier_w_vn_nr=submission.preprint.identifier_w_vn_nr tab='edadmin' %}"
hx-target="#tabs-{{ submission.id }}"
>EdAdmin</a>
</li>
{% endif %}
<li class="nav-item">
<a class="nav-link{% if tab == "old" %} active{% endif %}"
hx-get="{% url "submissions:pool:_hx_submission_tab" identifier_w_vn_nr=submission.preprint.identifier_w_vn_nr tab='old' %}"
hx-target="#tabs-{{ submission.id }}"
>Old version</a>
</li>
</ul>
<hr>
<div class="tab-content">
{% if tab == "info" %}
{% include 'submissions/_submission_summary.html' with submission=submission hide_title=1 show_abstract=1 %}
{% elif tab == "remarks" %}
{% if remark_form %}
{% include 'submissions/pool/_remark_form.html' with submission=submission form=remark_form auto_show=1 %}
{% endif %}
<p class="mb-1">Current remarks:</p>
<ul>
{% for rem in submission.remarks.all %}
{% include 'scipost/_remark_li.html' with remark=rem %}
{% empty %}
<li>No Remarks found.</li>
{% endfor %}
</ul>
{% elif tab == "graph" %}
{% include "submissions/_hx_submission_workflow_diagram.html" with submission=submission %}
{% elif tab == "events" %}
<div id="eventslist">
{% if request.user.contributor.is_ed_admin %}
{% include 'submissions/_submission_events.html' with events=submission.events.for_edadmin %}
{% elif request.user.contributor == submission.editor_in_charge %}
{% include 'submissions/_submission_events.html' with events=submission.events.for_eic %}
{% else %}
{% include 'submissions/_submission_events.html' with events=submission.events.for_author %}
{% endif %}
</div>
{% elif tab == 'edadmin' and request.user.contributor.is_ed_admin %}
<div id="submission-{{ submission.pk }}-tab-contents-edadmin"
hx-get="{% url 'edadmin:_hx_submission_tab_contents_edadmin' identifier_w_vn_nr=submission.preprint.identifier_w_vn_nr %}"
hx-trigger="load, submission-{{ submission.pk }}-tab-edadmin-updated"
>
</div>
{% elif tab == "old" %}
{% include "submissions/pool/_hx_submission_details_contents.html" with submission=submission %}
{% else %}
Unknown tab
{% endif %}
</div>
......@@ -81,7 +81,7 @@
</div>
<div class="card-body">
<form
hx-post="{% url 'submissions:pool:_hx_submissions_list' %}"
hx-post="{% url 'submissions:pool:_hx_submission_list' %}"
hx-trigger="load, keyup delay:500ms, change"
hx-target="#search-results"
hx-indicator="#indicator-search"
......
......@@ -24,6 +24,11 @@ urlpatterns = [ # building on /submissions/pool/
views_pool.pool,
name="pool",
),
path(
"tab/<slug:tab>",
views_pool._hx_submission_tab,
name="_hx_submission_tab",
),
path(
"add_remark",
views_pool.add_remark,
......@@ -51,8 +56,8 @@ urlpatterns = [ # building on /submissions/pool/
include([
path(
"",
views_pool.pool_hx_submissions_list,
name="_hx_submissions_list",
views_pool.pool_hx_submission_list,
name="_hx_submission_list",
),
path(
"<identifier:identifier_w_vn_nr>",
......
......@@ -58,7 +58,7 @@ def pool(request, identifier_w_vn_nr=None):
@login_required
@fellowship_or_admin_required()
def pool_hx_submissions_list(request):
def pool_hx_submission_list(request):
form = SubmissionPoolSearchForm(request.POST or None, request=request)
if form.is_valid():
submissions = form.search_results(request.user)
......@@ -70,7 +70,7 @@ def pool_hx_submissions_list(request):
count = paginator.count
start_index = page_obj.start_index
context = {"count": count, "page_obj": page_obj, "start_index": start_index,}
return render(request, "submissions/pool/_hx_submissions_list.html", context)
return render(request, "submissions/pool/_hx_submission_list.html", context)
@login_required
......@@ -84,6 +84,19 @@ def pool_hx_submission_details_contents(request, identifier_w_vn_nr):
return render(request, "submissions/pool/_hx_submission_details_contents.html", context)
@login_required
@fellowship_or_admin_required()
def _hx_submission_tab(request, identifier_w_vn_nr, tab):
submission = get_object_or_404(
Submission.objects.in_pool(request.user, historical=True),
preprint__identifier_w_vn_nr=identifier_w_vn_nr,
)
context = {"submission": submission, "tab": tab,}
if tab == "remarks":
context["remark_form"] = RemarkForm()
return render(request, "submissions/pool/_hx_submission_tab.html", context)
@login_required
@fellowship_or_admin_required()
def add_remark(request, identifier_w_vn_nr):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment