submissions.views module

class submissions.views.SubmissionAutocompleteView(**kwargs)[source]

Bases: dal_select2.views.Select2QuerySetView

View to feed the Select2 widget.

get_queryset()[source]

Filter the queryset with GET[‘q’].

get_result_label(item)[source]

Give same info as in Submission.__str__() but with carriage returns.

submissions.views.submit_manuscript(request)[source]

Initiate submission by choosing either resubmission or new submission process.

submissions.views.submit_choose_journal(request, acad_field=None)[source]

Choose a Journal. If thread_hash is given as GET parameter, this is a resubmission.

submissions.views.submit_choose_preprint_server(request, journal_doi_label)[source]

Choose a preprint server. If thread_hash is given as a GET parameter, this is a resubmission.

class submissions.views.RequestSubmissionView(**kwargs)[source]

Bases: django.contrib.auth.mixins.LoginRequiredMixin, django.contrib.auth.mixins.PermissionRequiredMixin, django.views.generic.edit.CreateView

Formview to submit a new manuscript (Submission).

permission_required = 'scipost.can_submit_manuscript'
success_url = '/personal_page/'
form_class

alias of submissions.forms.SubmissionForm

template_name = 'submissions/submission_form.html'
get(request, journal_doi_label)[source]

Redirect to submit_choose_preprint_server if preprint identifier is not known.

get_context_data(*args, **kwargs)[source]

Insert the form into the context dict.

get_form_kwargs()[source]

Form requires extra kwargs.

form_valid(form)[source]

Redirect and send out mails if all data is valid.

form_invalid(form)[source]

Add warnings as messages to make those more explicit.

class submissions.views.RequestSubmissionUsingSciPostView(**kwargs)[source]

Bases: submissions.views.RequestSubmissionView

Formview to submit a new Submission using SciPost’s preprint server.

get(request, journal_doi_label)[source]

Redirect to submit_choose_preprint_server if preprint identifier is not known.

class submissions.views.RequestSubmissionUsingArXivView(**kwargs)[source]

Bases: submissions.views.RequestSubmissionView

Formview to submit a new Submission using arXiv.

get(request, journal_doi_label)[source]

Redirect to submit_choose_preprint_server if arXiv identifier is not known.

class submissions.views.RequestSubmissionUsingChemRxivView(**kwargs)[source]

Bases: submissions.views.RequestSubmissionView

Formview to submit a new Submission using ChemRxiv.

get(request, journal_doi_label)[source]

Redirect to submit_choose_preprint_server if ChemRxiv identifier is not known.

class submissions.views.RequestSubmissionUsingFigshareView(**kwargs)[source]

Bases: submissions.views.RequestSubmissionView

Formview to submit a new Submission using Figshare-related servers.

get(request, journal_doi_label)[source]

Redirect to submit_choose_preprint_server if preprint identifier is not known.

class submissions.views.RequestSubmissionUsingOSFPreprintsView(**kwargs)[source]

Bases: submissions.views.RequestSubmissionView

Formview to submit a new Submission using OSFPreprints-related servers.

get(request, journal_doi_label)[source]

Redirect to submit_choose_preprint_server if preprint identifier is not known.

submissions.views.withdraw_manuscript(request, identifier_w_vn_nr)[source]

Withdrawal of the submission by one of the submitting authors.

This method performs the following actions:

  • makes the Submission and its previous versions publicly invisible

  • marks any Editorial Assignment as completed

  • deprecates any Editorial Recommendation

  • emailing authors, EIC (cc to EdAdmin)

  • deprecates all outstanding refereeing requests (emailing referees)

  • if an outstanding puboffer exists, mark it as turned down in EdDecision

  • deletes production stream (if started, in case puboffer made)

  • adds an event.

GET shows the info/confirm page POST performs the action and returns to the personal page.

class submissions.views.SubmissionListView(**kwargs)[source]

Bases: scipost.mixins.PaginationMixin, django.views.generic.list.ListView

List all publicly available Submissions.

model

alias of submissions.models.submission.Submission

form

alias of submissions.forms.SubmissionOldSearchForm

submission_search_list = []
paginate_by = 10
get_queryset()[source]

Return queryset, filtered with GET request data if given.

get_context_data(**kwargs)[source]

Save data related to GET request if found.

submissions.views.submission_detail_wo_vn_nr(request, identifier_wo_vn_nr)[source]

Redirect to the latest Submission’s detail page.

submissions.views.submission_detail(request, identifier_w_vn_nr)[source]

Public detail page of Submission.

submissions.views.report_attachment(request, identifier_w_vn_nr, report_nr)[source]

Download the attachment of a Report if available.

submissions.views.report_detail_pdf(request, identifier_w_vn_nr, report_nr)[source]

Download the PDF of a Report if available.

submissions.views.submission_refereeing_package_pdf(request, identifier_w_vn_nr)[source]

Down the refereeing package PDF.

This view let’s the user download all Report PDF’s in a single merged PDF. The merging takes places every time its downloaded to make sure all available report PDF’s are included and the EdColAdmin doesn’t have to compile the package every time again.

submissions.views.reports_accepted_list(request)[source]

List all accepted Reports.

This gives an overview of Report that need a PDF update/compilation.

submissions.views.report_pdf_compile(request, report_id)[source]

Form view to receive a auto-generated LaTeX code and submit a pdf version of the Report.

submissions.views.treated_submissions_list(request)[source]

List all treated Submissions.

This gives an overview of Submissions that need a PDF update/compilation of their Reports.

submissions.views.treated_submission_pdf_compile(request, identifier_w_vn_nr)[source]

Form view to receive a auto-generated LaTeX code and submit a pdf version of the Reports.

submissions.views.editorial_workflow(request)[source]

Information page for Editorial Fellows.

Summary page for Editorial Fellows, containing a digest of the actions to take to handle Submissions.

submissions.views.pool(request, identifier_w_vn_nr=None)[source]

Listing of Submissions for purposes of editorial handling.

submissions.views.pool_hx_submissions_list(request)[source]
submissions.views.pool_hx_submission_details(request, identifier_w_vn_nr)[source]
submissions.views.add_remark(request, identifier_w_vn_nr)[source]

Form view to add a Remark to a Submission.

With this method, an Editorial Fellow or Board Member is adding a remark on a Submission.

submissions.views.submission_add_topic(request, identifier_w_vn_nr)[source]

Add a predefined Topic to an existing Submission object. This also adds the Topic to all Submissions predating this one, and to any existing associated Publication object.

submissions.views.submission_remove_topic(request, identifier_w_vn_nr, slug)[source]

Remove the Topic from the Submission, from all associated Submissions and from any existing associated Publication object.

submissions.views.editorial_assignment(request, identifier_w_vn_nr, assignment_id=None)[source]

Editorial Assignment form view.

submissions.views.assignment_request(request, assignment_id)[source]

Redirect to Editorial Assignment form view.

Exists for historical reasons; email are sent with this url construction.

submissions.views.update_authors_screening(request, identifier_w_vn_nr, nrweeks)[source]

Send an email to the authors, informing them that screening is still ongoing after one week.

submissions.views.assignment_failed(request, identifier_w_vn_nr)[source]

Reject a Submission in screening.

No Editorial Fellow has accepted or volunteered to become Editor-in-charge., hence the Submission is rejected. An Editorial Administrator can access this view from the Pool.

submissions.views.assignments(request)[source]

List editorial tasks for a Fellow.

This page provides a Fellow with an explicit task list of editorial actions which should be undertaken.

submissions.views.editorial_page(request, identifier_w_vn_nr)[source]

Detail page of a Submission its editorial tasks.

The central page for the Editor-in-charge to manage all its Editorial duties. It’s accessible for both the Editor-in-charge of the Submission and the Editorial Administration.

submissions.views.cycle_form_submit(request, identifier_w_vn_nr)[source]

Form view to choose refereeing cycle.

If Submission is resubmission_incoming the EIC should first choose what refereeing cycle to choose.

Accessible for: Editor-in-charge and Editorial Administration

submissions.views.select_referee(request, identifier_w_vn_nr)[source]

Search for a referee in the set of Profiles, and if none is found, create a new Profile and return to this page for further processing.

submissions.views.add_referee_profile(request, identifier_w_vn_nr)[source]
submissions.views.invite_referee(request, identifier_w_vn_nr, profile_id, auto_reminders_allowed)[source]

Invite a referee linked to a Profile. If the Profile has a Contributor object, a simple invitation is sent. If there is no associated Contributor, a registration invitation is included.

submissions.views.set_refinv_auto_reminder(request, invitation_id, auto_reminders)[source]

Set the value of the Boolean for automatic refereeing reminders.

submissions.views.ref_invitation_reminder(request, identifier_w_vn_nr, invitation_id)[source]

Send reminder email to pending RefereeInvitations.

This method is used by the Editor-in-charge from the editorial_page when a referee has been invited but hasn’t answered yet. It can be used for registered as well as unregistered referees.

Accessible for: Editor-in-charge and Editorial Administration

submissions.views.accept_or_decline_ref_invitations(request, invitation_id=None)[source]

Decide on RefereeInvitation.

RefereeInvitations need to be either accepted or declined by the invited user using this view. The decision will be taken one invitation at a time.

submissions.views.decline_ref_invitation(request, invitation_key)[source]

Decline a RefereeInvitation.

submissions.views.cancel_ref_invitation(request, identifier_w_vn_nr, invitation_id)[source]

Cancel a RefereeInvitation.

This method is used by the Editor-in-charge from the editorial_page to remove a referee from the list of invited ones. It can be used for registered as well as unregistered referees.

Accessible for: Editor-in-charge and Editorial Administration.

submissions.views.extend_refereeing_deadline(request, identifier_w_vn_nr, days)[source]

Extend Refereeing deadline for Submission and open reporting and commenting.

Accessible for: Editor-in-charge and Editorial Administration

submissions.views.set_refereeing_deadline(request, identifier_w_vn_nr)[source]

Set Refereeing deadline for Submission and open reporting and commenting.

Accessible for: Editor-in-charge and Editorial Administration

submissions.views.close_refereeing_round(request, identifier_w_vn_nr)[source]

Close Submission for refereeing.

Called by the Editor-in-charge when a satisfactory number of reports have been gathered. Automatically emails the authors to ask them if they want to round off any replies to reports or comments before the editorial recommendation is formulated.

Accessible for: Editor-in-charge and Editorial Administration.

submissions.views.refereeing_overview(request)[source]

List all Submissions undergoing active Refereeing.

submissions.views.communication(request, identifier_w_vn_nr, comtype, referee_id=None)[source]

Send refereeing related communication.

Communication may be between two of: editor-in-charge, author and referee.

submissions.views.eic_recommendation(request, identifier_w_vn_nr)[source]

Write EIC Recommendation.

Accessible for: Editor-in-charge and Editorial Administration

submissions.views.reformulate_eic_recommendation(request, identifier_w_vn_nr)[source]

Reformulate EIC Recommendation form view.

Accessible for: Editor-in-charge and Editorial Administration.

submissions.views.submit_report(request, identifier_w_vn_nr)[source]

Submit Report on a Submission.

Important checks to be aware of include an author check for the submission, has the reporting deadline not been reached yet and does there exist any invitation for the current user on this submission.

submissions.views.vet_submitted_reports_list(request)[source]

List Reports with status unvetted.

submissions.views.vet_submitted_report(request, report_id)[source]

List Reports with status unvetted for vetting purposes.

A user may only vet reports of submissions they are EIC of or if they are SciPost Administratoror Vetting Editor.

After vetting an email is sent to the report author, bcc EIC. If report has not been refused, the submission author is also mailed.

submissions.views.prepare_for_voting(request, rec_id)[source]

Form view to prepare a EICRecommendation for voting.

submissions.views.claim_voting_right(request, rec_id)[source]

Claim voting right on EICRecommendation.

submissions.views.vote_on_rec(request, rec_id)[source]

Form view for Fellows to cast their vote on EICRecommendation.

submissions.views.remind_Fellows_to_vote(request, rec_id)[source]

Send an email to Fellows with a pending voting duty. It must be called by an Editorial Administrator.

If rec_id is given, then only email Fellows voting on this particular rec.

submissions.views.editor_invitations(request, identifier_w_vn_nr)[source]

Update/show invitations of editors for incoming Submission.

submissions.views.send_editorial_assignment_invitation(request, identifier_w_vn_nr, assignment_id)[source]

Force-send invitation for EditorialAssignment.

class submissions.views.SubmissionReassignmentView(**kwargs)[source]

Bases: django.contrib.messages.views.SuccessMessageMixin, submissions.mixins.SubmissionAdminViewMixin, django.views.generic.edit.UpdateView

Assign new EIC to Submission.

permission_required = 'scipost.can_reassign_submissions'
template_name = 'submissions/admin/submission_reassign.html'
form_class

alias of submissions.forms.SubmissionReassignmentForm

editorial_page = True
success_url = '/submissions/pool'
success_message = 'Editor successfully replaced.'
class submissions.views.PreScreeningView(**kwargs)[source]

Bases: submissions.mixins.SubmissionAdminViewMixin, django.views.generic.edit.UpdateView

Do pre-screening of new incoming Submissions.

permission_required = 'scipost.can_run_pre_screening'
template_name = 'submissions/admin/submission_prescreening.html'
form_class

alias of submissions.forms.SubmissionPrescreeningForm

editorial_page = True
success_url = '/submissions/pool'
get_form_kwargs()[source]

Ideally all ModelForms on Submission-related objects have a required argument submission.

class submissions.views.SubmissionConflictsView(**kwargs)[source]

Bases: submissions.mixins.SubmissionAdminViewMixin, django.views.generic.detail.DetailView

List all conflicts for a certain Submission.

permission_required = 'scipost.can_run_pre_screening'
template_name = 'submissions/admin/submission_conflicts.html'
editorial_page = True
success_url = '/submissions/pool'
class submissions.views.EICRecommendationDetailView(**kwargs)[source]

Bases: submissions.mixins.SubmissionMixin, django.contrib.auth.mixins.LoginRequiredMixin, django.contrib.auth.mixins.UserPassesTestMixin, django.views.generic.detail.DetailView

EICRecommendation detail, visible to EdAdmin.

model

alias of submissions.models.recommendation.EICRecommendation

template_name = 'submissions/pool/recommendation.html'
context_object_name = 'recommendation'
test_func()[source]

Grants access to EdAdmin.

get_object()[source]

Return the latest version of the EICRecommendation associated to this Submission.

class submissions.views.EditorialDecisionCreateView(**kwargs)[source]

Bases: submissions.mixins.SubmissionMixin, scipost.mixins.PermissionsMixin, django.views.generic.edit.CreateView

For EdAdmin to create the editorial decision on a Submission, after voting is completed.

The complete workflow involves drafting the decision with this view, possibly updating it with EditorialDecisionUpdateView, and (when all details are correct) finally posting to the fix_editorial_decision view.

permission_required = 'scipost.can_fix_College_decision'
model

alias of submissions.models.decision.EditorialDecision

form_class

alias of submissions.forms.EditorialDecisionForm

template_name = 'submissions/admin/editorial_decision_form.html'
get_initial(*args, **kwargs)[source]

Return the initial data to use for forms on this view.

class submissions.views.EditorialDecisionDetailView(**kwargs)[source]

Bases: submissions.mixins.SubmissionMixin, scipost.mixins.PermissionsMixin, django.views.generic.detail.DetailView

permission_required = 'scipost.can_fix_College_decision'
model

alias of submissions.models.decision.EditorialDecision

context_object_name = 'decision'
template_name = 'submissions/admin/editorial_decision_detail.html'
get_object()[source]

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

class submissions.views.EditorialDecisionUpdateView(**kwargs)[source]

Bases: submissions.mixins.SubmissionMixin, scipost.mixins.PermissionsMixin, django.views.generic.edit.UpdateView

permission_required = 'scipost.can_fix_College_decision'
model

alias of submissions.models.decision.EditorialDecision

context_object_name = 'decision'
form_class

alias of submissions.forms.EditorialDecisionForm

template_name = 'submissions/admin/editorial_decision_form.html'
get_object()[source]

Return the object the view is displaying.

Require self.queryset and a pk or slug argument in the URLconf. Subclasses can override this to return any object.

submissions.views.fix_editorial_decision(request, identifier_w_vn_nr)[source]

Fix the editorial decision, which is then final. Email authors.

This is the method completing the editorial decision process. It follows the creation/updating of the decision using EditorialDecisionCreateView and EditorialDecisionUpdateView.

submissions.views.restart_refereeing(request, identifier_w_vn_nr)[source]

Restart the latest refereeing round.

To be invoked by EdAdmin to restart the latest refereeing round on a Submission. Typical circumstances where this might be invoked:

  • College vote did not converge

  • authors have appealed a decision to publish as Core (if they had submitted to flagship)

submissions.views.accept_puboffer(request, identifier_w_vn_nr)[source]

Method for authors to accept an outstanding publication offer.

A publication offer occurs when the relevant College agrees on a Publish recommendation for a journal which is subsidiary to the one originally submitted to by the authors.

This method handles acceptance of this offer by updating the status of the Submission and of the EditorialDecision. It then redirects to the personal page.

class submissions.views.PlagiarismView(**kwargs)[source]

Bases: submissions.mixins.SubmissionAdminViewMixin, django.views.generic.edit.UpdateView

Administration detail page of Plagiarism report.

permission_required = 'scipost.can_do_plagiarism_checks'
template_name = 'submissions/admin/plagiarism_report.html'
editorial_page = True
form_class

alias of submissions.forms.iThenticateReportForm

get_object()[source]

Get the plagiarism_report as a linked object from the Submission.

class submissions.views.PlagiarismReportPDFView(**kwargs)[source]

Bases: submissions.mixins.SubmissionAdminViewMixin, django.views.generic.detail.SingleObjectMixin, django.views.generic.base.RedirectView

Redirect to Plagiarism report PDF at iThenticate.

permission_required = 'scipost.can_do_plagiarism_checks'
editorial_page = True
get_redirect_url(*args, **kwargs)[source]

Get the temporary url provided by the iThenticate API.

class submissions.views.PlagiarismInternalView(**kwargs)[source]

Bases: submissions.mixins.SubmissionAdminViewMixin, django.views.generic.detail.DetailView

Check for matching title, author, abstract in Submissions and Publications.

permission_required = 'scipost.can_run_pre_screening'
template_name = 'submissions/admin/plagiarism_internal_check.html'
editorial_page = True
get_context_data(*args, **kwargs)[source]

If the main object in a DetailView is not a Submission instance, it will be lost. Here, explicitly save the Submission instance to the context data.

submissions.views.submissions_processing_timescales(submissions, phase)[source]

Generate a tuple containing information about timescales on submissions.

Parameters

phase – one of screening, acceptance

submissions.views.monitor(request)[source]

Dashboard providing an overview of the status of submission workflows.