submissions.forms module

class submissions.forms.SubmissionSearchForm(*args, **kwargs)[source]

Bases: django.forms.forms.Form

search_results()[source]

Return all Submission objects fitting search criteria.

base_fields = {'author': <django.forms.fields.CharField object>, 'identifier': <django.forms.fields.CharField object>, 'proceedings': <django.forms.models.ModelChoiceField object>, 'submitted_to': <django.forms.models.ModelChoiceField object>, 'title': <django.forms.fields.CharField object>}
declared_fields = {'author': <django.forms.fields.CharField object>, 'identifier': <django.forms.fields.CharField object>, 'proceedings': <django.forms.models.ModelChoiceField object>, 'submitted_to': <django.forms.models.ModelChoiceField object>, 'title': <django.forms.fields.CharField object>}
property media
class submissions.forms.SubmissionPoolSearchForm(*args, **kwargs)[source]

Bases: django.forms.forms.Form

Filter a Submission queryset using basic search fields.

search_results(user)[source]

Return all Submission objects fitting search criteria.

base_fields = {'author': <django.forms.fields.CharField object>, 'editor_in_charge': <django.forms.models.ModelChoiceField object>, 'identifier': <django.forms.fields.CharField object>, 'proceedings': <django.forms.models.ModelChoiceField object>, 'search_set': <django.forms.fields.ChoiceField object>, 'specialties': <django.forms.models.ModelMultipleChoiceField object>, 'status': <django.forms.fields.ChoiceField object>, 'submitted_to': <django.forms.models.ModelChoiceField object>, 'title': <django.forms.fields.CharField object>}
declared_fields = {'author': <django.forms.fields.CharField object>, 'editor_in_charge': <django.forms.models.ModelChoiceField object>, 'identifier': <django.forms.fields.CharField object>, 'proceedings': <django.forms.models.ModelChoiceField object>, 'search_set': <django.forms.fields.ChoiceField object>, 'specialties': <django.forms.models.ModelMultipleChoiceField object>, 'status': <django.forms.fields.ChoiceField object>, 'submitted_to': <django.forms.models.ModelChoiceField object>, 'title': <django.forms.fields.CharField object>}
property media
class submissions.forms.ReportSearchForm(*args, **kwargs)[source]

Bases: django.forms.forms.Form

search_results()[source]
base_fields = {'submission_title': <django.forms.fields.CharField object>}
declared_fields = {'submission_title': <django.forms.fields.CharField object>}
property media
class submissions.forms.SubmissionOldSearchForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None)[source]

Bases: django.forms.forms.Form

Filter a Submission queryset using basic search fields.

search_results()[source]

Return all Submission objects according to search.

base_fields = {'abstract': <django.forms.fields.CharField object>, 'author': <django.forms.fields.CharField object>, 'title': <django.forms.fields.CharField object>}
declared_fields = {'abstract': <django.forms.fields.CharField object>, 'author': <django.forms.fields.CharField object>, 'title': <django.forms.fields.CharField object>}
property media
submissions.forms.check_resubmission_readiness(requested_by, submission)[source]

Check if submission can be resubmitted.

submissions.forms.check_identifier_is_unused(identifier)[source]
submissions.forms.check_arxiv_identifier_w_vn_nr(identifier)[source]
submissions.forms.check_chemrxiv_doi(doi)[source]

Call Crossref to get ChemRxiv preprint data.

submissions.forms.check_figshare_identifier_w_vn_nr(preprint_server, figshare_identifier_w_vn_nr)[source]

Call Figshare to retrieve submission prefill data and perform basic checks.

This method is defined outside of FigsharePrefillform in order to also be callable by SubmissionForm.

submissions.forms.check_chemrxiv_figshare_identifier_w_vn_nr(chemrxiv_identifier_w_vn_nr)[source]

Call check_figshare_identifier_w_vn_nr but correct identifier by substituting chemrxiv for figshare.

submissions.forms.check_techrxiv_identifier_w_vn_nr(techrxiv_identifier_w_vn_nr)[source]

Call check_figshare_identifier_w_vn_nr but correct identifier by substituting techrxiv for figshare.

submissions.forms.check_advance_identifier_w_vn_nr(advance_identifier_w_vn_nr)[source]

Call check_figshare_identifier_w_vn_nr but correct identifier by substituting advance for figshare.

submissions.forms.check_osfpreprints_identifier(preprint_server, osfpreprints_identifier)[source]

Call OSFPreprints to retrieve submission prefill data and perform basic checks.

This method is defined outside of FigsharePrefillform in order to also be callable by SubmissionForm.

submissions.forms.check_socarxiv_identifier(socarxiv_identifier)[source]

Call check_osfpreprints_identifier_w_vn_nr but correct identifier by substituting socarxiv for osfpreprints.

class submissions.forms.SubmissionPrefillForm(*args, **kwargs)[source]

Bases: django.forms.forms.Form

Base class for all SubmissionPrefillForms (one per integrated preprint server).

Based on kwargs requested_by, journal_doi_label and thread_hash, this prepares initial data for SubmissionForm.

is_resubmission()[source]
run_checks()[source]

Consistency checks on the prefill data.

get_prefill_data()[source]
base_fields = {}
declared_fields = {}
property media
class submissions.forms.SciPostPrefillForm(*args, **kwargs)[source]

Bases: submissions.forms.SubmissionPrefillForm

Provide initial data for SubmissionForm (SciPost preprint server route).

is_valid()[source]

Accept an empty form as valid. Override Django BaseForm.is_valid

Django BaseForm method requires is_bound == True and not self.errors. is_bound requires data is not None. We thus override is_valid by cutting the is_bound == True out.

get_prefill_data()[source]

Return initial form data originating from earlier Submission.

base_fields = {}
declared_fields = {}
property media
class submissions.forms.ArXivPrefillForm(*args, **kwargs)[source]

Bases: submissions.forms.SubmissionPrefillForm

Provide initial data for SubmissionForm (arXiv preprint server route).

This adds the arxiv_identifier_w_vn_nr field to those from SubmissionPrefillForm base class.

clean_arxiv_identifier_w_vn_nr()[source]

Do basic prechecks based on the arXiv ID only.

get_prefill_data()[source]

Return dictionary to prefill SubmissionForm.

base_fields = {'arxiv_identifier_w_vn_nr': <django.forms.fields.RegexField object>}
declared_fields = {'arxiv_identifier_w_vn_nr': <django.forms.fields.RegexField object>}
property media
class submissions.forms.ChemRxivPrefillForm(*args, **kwargs)[source]

Bases: submissions.forms.SubmissionPrefillForm

Provide initial data for SubmissionForm from ChemRxiv (metadata actually collected from Crossref API, not ChemRxiv).

This form is used by the ChemRxiv route (post-2021-07 style).

clean_chemrxiv_doi()[source]
get_prefill_data()[source]

Return dictionary to prefill SubmissionForm.

base_fields = {'chemrxiv_doi': <django.forms.fields.RegexField object>}
declared_fields = {'chemrxiv_doi': <django.forms.fields.RegexField object>}
property media
class submissions.forms.FigsharePrefillForm(*args, **kwargs)[source]

Bases: submissions.forms.SubmissionPrefillForm

Provide initial data for SubmissionForm from Figshare.

This form is used by the ChemRxiv (pre-2021-07), TechRxiv and Advance routes.

clean_figshare_identifier_w_vn_nr()[source]

Do basic prechecks based on the Figshare identifier.

get_prefill_data()[source]

Return dictionary to prefill SubmissionForm.

base_fields = {'figshare_identifier_w_vn_nr': <django.forms.fields.RegexField object>, 'figshare_preprint_server': <django.forms.models.ModelChoiceField object>}
declared_fields = {'figshare_identifier_w_vn_nr': <django.forms.fields.RegexField object>, 'figshare_preprint_server': <django.forms.models.ModelChoiceField object>}
property media
class submissions.forms.OSFPreprintsPrefillForm(*args, **kwargs)[source]

Bases: submissions.forms.SubmissionPrefillForm

Provide initial data for SubmissionForm from OSFPreprints.

This form is used by the SocArXiv (and others) routes.

clean_osfpreprints_identifier()[source]

Do basic prechecks based on the OSFPreprints identifier.

get_prefill_data()[source]

Return dictionary to prefill SubmissionForm.

base_fields = {'osfpreprints_identifier': <django.forms.fields.RegexField object>, 'osfpreprints_preprint_server': <django.forms.models.ModelChoiceField object>}
declared_fields = {'osfpreprints_identifier': <django.forms.fields.RegexField object>, 'osfpreprints_preprint_server': <django.forms.models.ModelChoiceField object>}
property media
class submissions.forms.SubmissionForm(*args, **kwargs)[source]

Bases: django.forms.models.ModelForm

Form to submit a new (re)Submission.

class Meta[source]

Bases: object

model

alias of submissions.models.submission.Submission

fields = ['is_resubmission_of', 'thread_hash', 'submitted_to', 'proceedings', 'acad_field', 'specialties', 'approaches', 'title', 'author_list', 'abstract', 'code_repository_url', 'data_repository_url', 'author_comments', 'list_of_changes', 'remarks_for_editors', 'referees_suggested', 'referees_flagged']
widgets = {'acad_field': <django.forms.widgets.HiddenInput object>, 'author_comments': <django.forms.widgets.Textarea object>, 'code_repository_url': <django.forms.widgets.TextInput object>, 'data_repository_url': <django.forms.widgets.TextInput object>, 'is_resubmission_of': <django.forms.widgets.HiddenInput object>, 'list_of_changes': <django.forms.widgets.Textarea object>, 'referees_flagged': <django.forms.widgets.Textarea object>, 'referees_suggested': <django.forms.widgets.Textarea object>, 'remarks_for_editors': <django.forms.widgets.Textarea object>, 'submitted_to': <django.forms.widgets.HiddenInput object>, 'thread_hash': <django.forms.widgets.HiddenInput object>}
is_resubmission()[source]
clean(*args, **kwargs)[source]

Do all general checks for Submission.

clean_author_list()[source]

Check if author list matches the Contributor submitting.

clean_code_repository_url()[source]

Prevent having well-known servers in list.

clean_data_repository_url()[source]

Prevent having well-known servers in list.

clean_identifier_w_vn_nr()[source]
save()[source]

Create the new Submission and Preprint instances.

process_resubmission(submission)[source]

Update all fields for new and old Submission and EditorialAssignments.

– submission: the new version of the Submission series.

set_fellowship(submission)[source]

Set the default set of (guest) Fellows for this Submission.

base_fields = {'abstract': <django.forms.fields.CharField object>, 'acad_field': <django.forms.models.ModelChoiceField object>, 'approaches': <django.forms.fields.MultipleChoiceField object>, 'author_comments': <django.forms.fields.CharField object>, 'author_list': <django.forms.fields.CharField object>, 'code_repository_url': <django.forms.fields.URLField object>, 'data_repository_url': <django.forms.fields.URLField object>, 'identifier_w_vn_nr': <django.forms.fields.CharField object>, 'is_resubmission_of': <django.forms.models.ModelChoiceField object>, 'list_of_changes': <django.forms.fields.CharField object>, 'preprint_file': <django.forms.fields.FileField object>, 'preprint_link': <django.forms.fields.URLField object>, 'preprint_server': <django.forms.models.ModelChoiceField object>, 'proceedings': <django.forms.models.ModelChoiceField object>, 'referees_flagged': <django.forms.fields.CharField object>, 'referees_suggested': <django.forms.fields.CharField object>, 'remarks_for_editors': <django.forms.fields.CharField object>, 'specialties': <django.forms.models.ModelMultipleChoiceField object>, 'submitted_to': <django.forms.models.ModelChoiceField object>, 'thread_hash': <django.forms.fields.UUIDField object>, 'title': <django.forms.fields.CharField object>}
declared_fields = {'identifier_w_vn_nr': <django.forms.fields.CharField object>, 'preprint_file': <django.forms.fields.FileField object>, 'preprint_link': <django.forms.fields.URLField object>, 'preprint_server': <django.forms.models.ModelChoiceField object>, 'specialties': <django.forms.models.ModelMultipleChoiceField object>}
property media
class submissions.forms.SubmissionReportsForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[source]

Bases: django.forms.models.ModelForm

Update refereeing pdf for Submission.

class Meta[source]

Bases: object

model

alias of submissions.models.submission.Submission

fields = ['pdf_refereeing_pack']
base_fields = {'pdf_refereeing_pack': <django.forms.fields.FileField object>}
declared_fields = {}
property media
class submissions.forms.PreassignEditorsForm(*args, **kwargs)[source]

Bases: django.forms.models.ModelForm

Preassign editors for incoming Submission.

class Meta[source]

Bases: object

model

alias of submissions.models.assignment.EditorialAssignment

fields = ('to',)
save(commit=True)[source]

Create/get unordered EditorialAssignments or delete existing if needed.

get_fellow()[source]

Get fellow either via initial data or instance.

base_fields = {'assign': <django.forms.fields.BooleanField object>, 'to': <django.forms.models.ModelChoiceField object>}
declared_fields = {'assign': <django.forms.fields.BooleanField object>, 'to': <django.forms.models.ModelChoiceField object>}
property media
class submissions.forms.BasePreassignEditorsFormSet(*args, **kwargs)[source]

Bases: django.forms.models.BaseModelFormSet

Preassign editors for incoming Submission.

add_fields(form, index)[source]

Force hidden input for ORDER field.

get_form_kwargs(index)[source]

Add submission to form arguments.

save(commit=True)[source]

Save each form and order EditorialAssignments.

class submissions.forms.SubmissionReassignmentForm(*args, **kwargs)[source]

Bases: django.forms.models.ModelForm

Process reassignment of EIC for Submission.

class Meta[source]

Bases: object

model

alias of submissions.models.submission.Submission

fields = ()
save()[source]

Update old/create new Assignment and send mails.

base_fields = {'new_editor': <django.forms.models.ModelChoiceField object>}
declared_fields = {'new_editor': <django.forms.models.ModelChoiceField object>}
property media
class submissions.forms.SubmissionTargetJournalForm(*args, **kwargs)[source]

Bases: django.forms.models.ModelForm

Change the target journal for the Submission.

class Meta[source]

Bases: object

model

alias of submissions.models.submission.Submission

fields = ['submitted_to']
base_fields = {'submitted_to': <django.forms.models.ModelChoiceField object>}
declared_fields = {}
property media
class submissions.forms.SubmissionTargetProceedingsForm(*args, **kwargs)[source]

Bases: django.forms.models.ModelForm

Change the target Proceedings for the Submission.

class Meta[source]

Bases: object

model

alias of submissions.models.submission.Submission

fields = ['proceedings']
base_fields = {'proceedings': <django.forms.models.ModelChoiceField object>}
declared_fields = {}
property media
class submissions.forms.SubmissionPreprintFileForm(*args, **kwargs)[source]

Bases: django.forms.models.ModelForm

Change the submitted pdf for the Submission.

class Meta[source]

Bases: object

model

alias of preprints.models.Preprint

fields = ['_file']
base_fields = {'_file': <django.forms.fields.FileField object>}
declared_fields = {}
property media
class submissions.forms.SubmissionPrescreeningForm(*args, **kwargs)[source]

Bases: django.forms.models.ModelForm

Processing decision for pre-screening of Submission.

PASS = 'pass'
FAIL = 'fail'
CHOICES = (('pass', 'Pass pre-screening. Proceed to the Pool.'), ('fail', 'Fail pre-screening.'))
class Meta[source]

Bases: object

model

alias of submissions.models.submission.Submission

fields = ()
clean()[source]

Check if Submission has right status.

save()[source]

Update Submission status.

base_fields = {'decision': <django.forms.fields.ChoiceField object>, 'message_for_authors': <django.forms.fields.CharField object>, 'remark_for_pool': <django.forms.fields.CharField object>}
declared_fields = {'decision': <django.forms.fields.ChoiceField object>, 'message_for_authors': <django.forms.fields.CharField object>, 'remark_for_pool': <django.forms.fields.CharField object>}
property media
class submissions.forms.WithdrawSubmissionForm(*args, **kwargs)[source]

Bases: django.forms.forms.Form

A submitting author has the right to withdraw the manuscript.

is_confirmed()[source]
save()[source]
base_fields = {'confirm': <django.forms.fields.ChoiceField object>}
declared_fields = {'confirm': <django.forms.fields.ChoiceField object>}
property media
class submissions.forms.EditorialAssignmentForm(*args, **kwargs)[source]

Bases: django.forms.models.ModelForm

Create and/or process new EditorialAssignment for Submission.

DECISION_CHOICES = (('accept', 'Accept'), ('decline', 'Decline'))
CYCLE_CHOICES = (('default', 'Normal refereeing cycle'), ('direct_rec', 'Directly formulate Editorial Recommendation for rejection'))
class Meta[source]

Bases: object

model

alias of submissions.models.assignment.EditorialAssignment

fields = ()
has_accepted_invite()[source]

Check if invite is accepted or if voluntered to become EIC.

is_normal_cycle()[source]

Check if normal refereeing cycle is chosen.

save(commit=True)[source]

Save Submission to EditorialAssignment.

base_fields = {'decision': <django.forms.fields.ChoiceField object>, 'refereeing_cycle': <django.forms.fields.ChoiceField object>, 'refusal_reason': <django.forms.fields.ChoiceField object>}
declared_fields = {'decision': <django.forms.fields.ChoiceField object>, 'refereeing_cycle': <django.forms.fields.ChoiceField object>, 'refusal_reason': <django.forms.fields.ChoiceField object>}
property media
class submissions.forms.ConsiderAssignmentForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None)[source]

Bases: django.forms.forms.Form

Process open EditorialAssignment.

base_fields = {'accept': <django.forms.fields.ChoiceField object>, 'refusal_reason': <django.forms.fields.ChoiceField object>}
declared_fields = {'accept': <django.forms.fields.ChoiceField object>, 'refusal_reason': <django.forms.fields.ChoiceField object>}
property media
class submissions.forms.RefereeSearchForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None)[source]

Bases: django.forms.forms.Form

search()[source]
base_fields = {'last_name': <django.forms.fields.CharField object>}
declared_fields = {'last_name': <django.forms.fields.CharField object>}
property media
class submissions.forms.ConsiderRefereeInvitationForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None)[source]

Bases: django.forms.forms.Form

base_fields = {'accept': <django.forms.fields.ChoiceField object>, 'refusal_reason': <django.forms.fields.ChoiceField object>}
declared_fields = {'accept': <django.forms.fields.ChoiceField object>, 'refusal_reason': <django.forms.fields.ChoiceField object>}
property media
class submissions.forms.SetRefereeingDeadlineForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None)[source]

Bases: django.forms.forms.Form

clean_deadline()[source]
base_fields = {'deadline': <django.forms.fields.DateField object>}
declared_fields = {'deadline': <django.forms.fields.DateField object>}
property media
class submissions.forms.VotingEligibilityForm(*args, **kwargs)[source]

Bases: django.forms.models.ModelForm

Assign Fellows to vote for EICRecommendation and open its status for voting.

class Meta[source]

Bases: object

model

alias of submissions.models.recommendation.EICRecommendation

fields = ()
save(commit=True)[source]

Update EICRecommendation status and save its voters.

get_eligible_fellows()[source]
base_fields = {'eligible_fellows': <django.forms.models.ModelMultipleChoiceField object>}
declared_fields = {'eligible_fellows': <django.forms.models.ModelMultipleChoiceField object>}
property media
class submissions.forms.ReportPDFForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[source]

Bases: django.forms.models.ModelForm

class Meta[source]

Bases: object

model

alias of submissions.models.report.Report

fields = ['pdf_report']
base_fields = {'pdf_report': <django.forms.fields.FileField object>}
declared_fields = {}
property media
class submissions.forms.ReportForm(*args, **kwargs)[source]

Bases: django.forms.models.ModelForm

Write Report form.

class Meta[source]

Bases: object

model

alias of submissions.models.report.Report

fields = ['qualification', 'strengths', 'weaknesses', 'report', 'requested_changes', 'validity', 'significance', 'originality', 'clarity', 'formatting', 'grammar', 'recommendation', 'remarks_for_editors', 'file_attachment', 'anonymous']
report_type = 'report_normal'
save()[source]

Update meta data if ModelForm is submitted (non-draft). Possibly overwrite the default status if user asks for saving as draft.

base_fields = {'anonymous': <django.forms.fields.BooleanField object>, 'clarity': <django.forms.fields.TypedChoiceField object>, 'file_attachment': <django.forms.fields.FileField object>, 'formatting': <django.forms.fields.TypedChoiceField object>, 'grammar': <django.forms.fields.TypedChoiceField object>, 'originality': <django.forms.fields.TypedChoiceField object>, 'qualification': <django.forms.fields.TypedChoiceField object>, 'recommendation': <django.forms.fields.TypedChoiceField object>, 'remarks_for_editors': <django.forms.fields.CharField object>, 'report': <django.forms.fields.CharField object>, 'requested_changes': <django.forms.fields.CharField object>, 'significance': <django.forms.fields.TypedChoiceField object>, 'strengths': <django.forms.fields.CharField object>, 'validity': <django.forms.fields.TypedChoiceField object>, 'weaknesses': <django.forms.fields.CharField object>}
declared_fields = {}
property media
class submissions.forms.VetReportForm(*args, **kwargs)[source]

Bases: django.forms.forms.Form

clean_refusal_reason()[source]

Require a refusal reason if report is rejected.

process_vetting(current_contributor)[source]

Set the right report status and update submission fields if needed.

base_fields = {'action_option': <django.forms.fields.ChoiceField object>, 'email_response_field': <django.forms.fields.CharField object>, 'refusal_reason': <django.forms.fields.ChoiceField object>}
declared_fields = {'action_option': <django.forms.fields.ChoiceField object>, 'email_response_field': <django.forms.fields.CharField object>, 'refusal_reason': <django.forms.fields.ChoiceField object>}
property media
class submissions.forms.EditorialCommunicationForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[source]

Bases: django.forms.models.ModelForm

class Meta[source]

Bases: object

model

alias of submissions.models.communication.EditorialCommunication

fields = ('text',)
widgets = {'text': <django.forms.widgets.Textarea object>}
base_fields = {'text': <django.forms.fields.CharField object>}
declared_fields = {}
property media
class submissions.forms.EICRecommendationForm(*args, **kwargs)[source]

Bases: django.forms.models.ModelForm

Formulate an EICRecommendation.

DAYS_TO_VOTE = 7
assignment = None
earlier_recommendations = []
class Meta[source]

Bases: object

model

alias of submissions.models.recommendation.EICRecommendation

fields = ['for_journal', 'recommendation', 'tier', 'remarks_for_authors', 'requested_changes', 'remarks_for_editorial_college']
widgets = {'remarks_for_authors': <django.forms.widgets.Textarea object>, 'remarks_for_editorial_college': <django.forms.widgets.Textarea object>, 'requested_changes': <django.forms.widgets.Textarea object>}
clean()[source]

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

save()[source]

Save this form’s self.instance object if commit=True. Otherwise, add a save_m2m() method to the form which can be called after the instance is saved manually at a later time. Return the model instance.

revision_requested()[source]
has_assignment()[source]
load_assignment()[source]
load_earlier_recommendations()[source]

Load and save EICRecommendations related to Submission of the instance.

base_fields = {'for_journal': <django.forms.models.ModelChoiceField object>, 'recommendation': <django.forms.fields.TypedChoiceField object>, 'remarks_for_authors': <django.forms.fields.CharField object>, 'remarks_for_editorial_college': <django.forms.fields.CharField object>, 'requested_changes': <django.forms.fields.CharField object>, 'tier': <django.forms.fields.ChoiceField object>}
declared_fields = {'tier': <django.forms.fields.ChoiceField object>}
property media
class submissions.forms.RecommendationVoteForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None)[source]

Bases: django.forms.forms.Form

Cast vote on EICRecommendation form.

clean()[source]

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

base_fields = {'alternative_for_journal': <django.forms.models.ModelChoiceField object>, 'alternative_recommendation': <django.forms.fields.ChoiceField object>, 'remark': <django.forms.fields.CharField object>, 'tier': <django.forms.fields.ChoiceField object>, 'vote': <django.forms.fields.ChoiceField object>}
declared_fields = {'alternative_for_journal': <django.forms.models.ModelChoiceField object>, 'alternative_recommendation': <django.forms.fields.ChoiceField object>, 'remark': <django.forms.fields.CharField object>, 'tier': <django.forms.fields.ChoiceField object>, 'vote': <django.forms.fields.ChoiceField object>}
property media
class submissions.forms.EditorialDecisionForm(*args, **kwargs)[source]

Bases: django.forms.models.ModelForm

For EdAdmin to fix the outcome on a Submission, after voting is completed.

class Meta[source]

Bases: object

model

alias of submissions.models.decision.EditorialDecision

fields = ['submission', 'for_journal', 'decision', 'taken_on', 'remarks_for_authors', 'remarks_for_editorial_college', 'status']
clean()[source]

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

save()[source]

Save this form’s self.instance object if commit=True. Otherwise, add a save_m2m() method to the form which can be called after the instance is saved manually at a later time. Return the model instance.

base_fields = {'decision': <django.forms.fields.TypedChoiceField object>, 'for_journal': <django.forms.models.ModelChoiceField object>, 'remarks_for_authors': <django.forms.fields.CharField object>, 'remarks_for_editorial_college': <django.forms.fields.CharField object>, 'status': <django.forms.fields.TypedChoiceField object>, 'submission': <django.forms.models.ModelChoiceField object>, 'taken_on': <django.forms.fields.DateTimeField object>}
declared_fields = {}
property media
class submissions.forms.RestartRefereeingForm(*args, **kwargs)[source]

Bases: django.forms.forms.Form

For EdAdmin to restart the latest refereeing round.

is_confirmed()[source]
save()[source]
base_fields = {'confirm': <django.forms.fields.ChoiceField object>}
declared_fields = {'confirm': <django.forms.fields.ChoiceField object>}
property media
class submissions.forms.SubmissionCycleChoiceForm(*args, **kwargs)[source]

Bases: django.forms.models.ModelForm

For the EIC to take a decision on the Submission’s cycle. Used for resubmissions only.

class Meta[source]

Bases: object

model

alias of submissions.models.submission.Submission

fields = ('refereeing_cycle',)
widgets = {'refereeing_cycle': <class 'django.forms.widgets.RadioSelect'>}
save()[source]

If the cycle is for a normal or short refereeing round, open the sub for reporting.

base_fields = {'refereeing_cycle': <django.forms.fields.TypedChoiceField object>, 'referees_reinvite': <django.forms.models.ModelMultipleChoiceField object>}
declared_fields = {'referees_reinvite': <django.forms.models.ModelMultipleChoiceField object>}
property media
class submissions.forms.iThenticateReportForm(submission, *args, **kwargs)[source]

Bases: django.forms.models.ModelForm

class Meta[source]

Bases: object

model

alias of submissions.models.plagiarism.iThenticateReport

fields = []
clean()[source]

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

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

Save this form’s self.instance object if commit=True. Otherwise, add a save_m2m() method to the form which can be called after the instance is saved manually at a later time. Return the model instance.

call_ithenticate()[source]
base_fields = {}
declared_fields = {}
get_client()[source]
property media
update_status()[source]
upload_document()[source]