From 3171e9145a56477c74a23127c6ee8561de963c52 Mon Sep 17 00:00:00 2001 From: "J.-S. Caux" <J.S.Caux@uva.nl> Date: Sun, 2 May 2021 10:33:15 +0200 Subject: [PATCH] Make handling of Figshare-based servers more generic --- .../submit_choose_preprint_server.html | 48 +++------ submissions/views.py | 98 +++++++++++-------- 2 files changed, 70 insertions(+), 76 deletions(-) diff --git a/submissions/templates/submissions/submit_choose_preprint_server.html b/submissions/templates/submissions/submit_choose_preprint_server.html index 1c8d6eb24..ae8e71962 100644 --- a/submissions/templates/submissions/submit_choose_preprint_server.html +++ b/submissions/templates/submissions/submit_choose_preprint_server.html @@ -43,71 +43,45 @@ <br> <div class="container"> <div class="row row-cols-1 row-cols-lg-2 row-cols-xl-3"> - {% for server in preprint_servers %} + {% for preprint_server in preprint_server_list %} <div class="col col-sm-12 col-lg-6 mb-2"> <div class="card mb-4"> <div class="card-header bg-dark text-white"> - <h3 class="p-2 m-0"><em>{% if thread_hash %}Resubmit{% else %}Submit{% endif %} via</em> <strong class="text-warning">{{ server }}</strong></h3> + <h3 class="p-2 m-0"><em>{% if thread_hash %}Resubmit{% else %}Submit{% endif %} via</em> <strong class="text-warning">{{ preprint_server.server }}</strong></h3> </div> <div class="card-body text-center"> - {% if server.name == 'SciPost' %} + {% if preprint_server.server.name == 'SciPost' %} <form action="{% url 'submissions:submit_manuscript_scipost' journal_doi_label=journal.doi_label %}" method="get"> - {{ scipost_prefill_form }} + {{ preprint_server.prefill_form }} {% if thread_hash %} <input type="hidden" name="thread_hash" value="{{ thread_hash }}"/> {% endif %} <input type="submit" class="btn btn-primary text-white" value="Go to the SciPost submission form"/> </form> - {% elif server.name == 'arXiv' %} + {% elif preprint_server.server.name == 'arXiv' %} <h3>Please provide the arXiv identifier for your Submission</h3> <p><em>without the website prefix but with version number, e.g. <br> ####.####(#)v#(#)</em></p> <form action="{% url 'submissions:submit_manuscript_arxiv' journal_doi_label=journal.doi_label %}" method="get"> - {{ arxiv_prefill_form }} + {{ preprint_server.prefill_form }} {% if thread_hash %} <input type="hidden" name="thread_hash" value="{{ thread_hash }}"/> {% endif %} {% include 'bi/arrow-right.html' %} <input type="submit" class="btn btn-primary text-white" value="Query arXiv"/> </form> - {% elif server.name == 'ChemRxiv' %} - <h3>Please provide the ChemRxiv identifier for your Submission</h3> + {% elif preprint_server.server.served_by and preprint_server.server.served_by.name == 'Figshare' %} + <h3>Please provide the {{ preprint_server.server.name }} identifier for your Submission</h3> <p><em>without the url prefix but with version number, e.g. <br> ########.v#</em></p> - <p><em>Hint: on the submission's ChemRxiv page, click on the "Cite" button to see the identifier.</em></p> + <p><em>Hint: on the submission's {{ preprint_server.server.name }} page, click on the "Cite" button to see the identifier.</em></p> <form action="{% url 'submissions:submit_manuscript_figshare' journal_doi_label=journal.doi_label %}" method="get"> - {{ chemrxiv_prefill_form }} + {{ preprint_server.prefill_form }} {% if thread_hash %} <input type="hidden" name="thread_hash" value="{{ thread_hash }}"/> {% endif %} {% include 'bi/arrow-right.html' %} - <input type="submit" class="btn btn-primary text-white" value="Query ChemRxiv"/> - </form> - {% elif server.name == 'TechRxiv' %} - <h3>Please provide the TechRxiv identifier for your Submission</h3> - <p><em>without the url prefix but with version number, e.g. - <br> ########.v#</em></p> - <p><em>Hint: on the submission's TechRxiv page, click on the "Cite" button to see the identifier.</em></p> - <form action="{% url 'submissions:submit_manuscript_figshare' journal_doi_label=journal.doi_label %}" method="get"> - {{ techrxiv_prefill_form }} - {% if thread_hash %} - <input type="hidden" name="thread_hash" value="{{ thread_hash }}"/> - {% endif %} - {% include 'bi/arrow-right.html' %} - <input type="submit" class="btn btn-primary text-white" value="Query TechRxiv"/> - </form> - {% elif server.name == 'Advance' %} - <h3>Please provide the Advance identifier for your Submission</h3> - <p><em>without the url prefix but with version number, e.g. - <br> ########.v#</em></p> - <p><em>Hint: on the submission's Advance page, click on the "Cite" button to see the identifier.</em></p> - <form action="{% url 'submissions:submit_manuscript_figshare' journal_doi_label=journal.doi_label %}" method="get"> - {{ advance_prefill_form }} - {% if thread_hash %} - <input type="hidden" name="thread_hash" value="{{ thread_hash }}"/> - {% endif %} - {% include 'bi/arrow-right.html' %} - <input type="submit" class="btn btn-primary text-white" value="Query Advance"/> + <input type="submit" class="btn btn-primary text-white" value="Query {{ preprint_server.server.name }}"/> </form> {% endif %} </div> diff --git a/submissions/views.py b/submissions/views.py index 7ff8c6d33..349e080fe 100644 --- a/submissions/views.py +++ b/submissions/views.py @@ -163,55 +163,75 @@ def submit_choose_preprint_server(request, journal_doi_label): journal = get_object_or_404(Journal, doi_label=journal_doi_label) preprint_servers = PreprintServer.objects.filter(acad_fields=journal.college.acad_field) thread_hash = request.GET.get('thread_hash') or None + # Each integrated preprint server has a prefill form: - scipost_prefill_form = SciPostPrefillForm( - requested_by=request.user, - journal_doi_label=journal_doi_label, - thread_hash=thread_hash) - context = { - 'journal': journal, - 'thread_hash': thread_hash, - 'preprint_servers': preprint_servers, - 'scipost_prefill_form': scipost_prefill_form, - } + preprint_server_list = [] if preprint_servers.filter(name='arXiv').exists(): - arxiv_prefill_form = ArXivPrefillForm( - requested_by=request.user, - journal_doi_label=journal_doi_label, - thread_hash=thread_hash) - context['arxiv_prefill_form'] = arxiv_prefill_form + preprint_server_list.append({ + 'server': preprint_servers.get(name='arXiv'), + 'prefill_form': ArXivPrefillForm( + requested_by=request.user, + journal_doi_label=journal_doi_label, + thread_hash=thread_hash) + }) - if preprint_servers.filter(name='ChemRxiv').exists(): - chemrxiv_prefill_form = FigsharePrefillForm( - initial={ - 'figshare_preprint_server': preprint_servers.get(name='ChemRxiv') - }, - requested_by=request.user, - journal_doi_label=journal_doi_label, - thread_hash=thread_hash) - context['chemrxiv_prefill_form'] = chemrxiv_prefill_form + for ps in preprint_servers.filter(served_by__name='Figshare'): + preprint_server_list.append({ + 'server': ps, + 'prefill_form': FigsharePrefillForm( + initial={ + 'figshare_preprint_server': ps + }, + requested_by=request.user, + journal_doi_label=journal_doi_label, + thread_hash=thread_hash) + }) - if preprint_servers.filter(name='TechRxiv').exists(): - techrxiv_prefill_form = FigsharePrefillForm( - initial={ - 'figshare_preprint_server': preprint_servers.get(name='TechRxiv') - }, + # We put the SciPost server last, since we prefer authors to use external servers + preprint_server_list.append({ + 'server': preprint_servers.get(name='SciPost'), + 'prefill_form': SciPostPrefillForm( requested_by=request.user, journal_doi_label=journal_doi_label, thread_hash=thread_hash) - context['techrxiv_prefill_form'] = techrxiv_prefill_form + }) - if preprint_servers.filter(name='Advance').exists(): - advance_prefill_form = FigsharePrefillForm( - initial={ - 'figshare_preprint_server': preprint_servers.get(name='Advance') - }, - requested_by=request.user, - journal_doi_label=journal_doi_label, - thread_hash=thread_hash) - context['advance_prefill_form'] = advance_prefill_form + # if preprint_servers.filter(name='ChemRxiv').exists(): + # chemrxiv_prefill_form = FigsharePrefillForm( + # initial={ + # 'figshare_preprint_server': preprint_servers.get(name='ChemRxiv') + # }, + # requested_by=request.user, + # journal_doi_label=journal_doi_label, + # thread_hash=thread_hash) + # context['chemrxiv_prefill_form'] = chemrxiv_prefill_form + + # if preprint_servers.filter(name='TechRxiv').exists(): + # techrxiv_prefill_form = FigsharePrefillForm( + # initial={ + # 'figshare_preprint_server': preprint_servers.get(name='TechRxiv') + # }, + # requested_by=request.user, + # journal_doi_label=journal_doi_label, + # thread_hash=thread_hash) + # context['techrxiv_prefill_form'] = techrxiv_prefill_form + + # if preprint_servers.filter(name='Advance').exists(): + # advance_prefill_form = FigsharePrefillForm( + # initial={ + # 'figshare_preprint_server': preprint_servers.get(name='Advance') + # }, + # requested_by=request.user, + # journal_doi_label=journal_doi_label, + # thread_hash=thread_hash) + # context['advance_prefill_form'] = advance_prefill_form + context = { + 'journal': journal, + 'thread_hash': thread_hash, + 'preprint_server_list': preprint_server_list, + } return render(request, 'submissions/submit_choose_preprint_server.html', context) -- GitLab