From 44732b18d1bec919af29a054f319d36894f6ad02 Mon Sep 17 00:00:00 2001 From: Jorran de Wit <jorrandewit@outlook.com> Date: Tue, 19 Jun 2018 22:02:25 +0200 Subject: [PATCH] Preprint finishing some day... --- preprints/helpers.py | 2 +- preprints/models.py | 3 ++- preprints/urls.py | 4 +++- submissions/constants.py | 15 ++++++++----- submissions/forms.py | 6 ++--- submissions/models.py | 1 + .../pool/submission_info_table.html | 21 +++++++++++++----- .../submissions/submission_summary.html | 22 +++++++++++++------ 8 files changed, 49 insertions(+), 25 deletions(-) diff --git a/preprints/helpers.py b/preprints/helpers.py index 3ec5dcb31..d5437b287 100644 --- a/preprints/helpers.py +++ b/preprints/helpers.py @@ -20,7 +20,7 @@ def generate_new_scipost_identifier(): existing_identifier = str(existing_identifier + 1) return '{year}{month}_{identifier}'.format( year=now.year, month=str(now.month).rjust(2, '0'), - identifier=existing_identifier.rjust(5, '0')) + identifier=existing_identifier.rjust(5, '0')), int(existing_identifier) def format_scipost_identifier(identifier, version=1): diff --git a/preprints/models.py b/preprints/models.py index ed13fd0a6..a6dca72d1 100644 --- a/preprints/models.py +++ b/preprints/models.py @@ -36,8 +36,9 @@ class Preprint(models.Model): return 'Preprint {}'.format(self.identifier_w_vn_nr) def get_absolute_url(self): + """Return either saved url or url to open the pdf.""" if self.url: return self.url if self._file: - return reverse('preprints:pdf', self.identifier_w_vn_nr) + return reverse('preprints:pdf', args=(self.identifier_w_vn_nr,)) raise Http404 diff --git a/preprints/urls.py b/preprints/urls.py index 6f5dc5eec..bb01e05f5 100644 --- a/preprints/urls.py +++ b/preprints/urls.py @@ -6,7 +6,9 @@ from django.conf.urls import url from . import views +from submissions.constants import SCIPOST_PREPRINT_W_VN_REGEX + urlpatterns = [ - url(r'^$', views.preprint_pdf, name='pdf'), + url(r'^{regex}/$'.format(regex=SCIPOST_PREPRINT_W_VN_REGEX), views.preprint_pdf, name='pdf'), ] diff --git a/submissions/constants.py b/submissions/constants.py index e7540234b..adbd4d36b 100644 --- a/submissions/constants.py +++ b/submissions/constants.py @@ -186,11 +186,14 @@ EIC_REC_STATUSES = ( (DEPRECATED, 'Editorial Recommendation deprecated'), ) -# Use `.format()` https://docs.python.org/3.5/library/string.html#format-string-syntax -# In your regex multiple brackets may occur; -# Please make sure to double them in that case as per instructions in the reference! -SUBMISSIONS_NO_VN_REGEX = '(?P<identifier_wo_vn_nr>[0-9]{4,}.[0-9]{4,})' -SUBMISSIONS_COMPLETE_REGEX = '(?P<identifier_w_vn_nr>[0-9]{4,}.[0-9]{4,}v[0-9]{1,2})' +# Define regexes +arxiv_regex_wo_vn = '[0-9]{4,}.[0-9]{4,}' +arxiv_regex_w_vn = '[0-9]{4,}.[0-9]{4,}v[0-9]{1,2}' +scipost_regex_wo_vn = 'scipost_[0-9]{4,}.[0-9]{4,}' +scipost_regex_w_vn = 'scipost_[0-9]{4,}.[0-9]{4,}v[0-9]{1,2}' +SUBMISSIONS_NO_VN_REGEX = '(?P<identifier_wo_vn_nr>(%s|%s))' % (arxiv_regex_wo_vn, scipost_regex_wo_vn) +SUBMISSIONS_COMPLETE_REGEX = '(?P<identifier_w_vn_nr>(%s|%s))' % (arxiv_regex_w_vn, scipost_regex_w_vn) +SCIPOST_PREPRINT_W_VN_REGEX = '(?P<identifier_w_vn_nr>%s)' % scipost_regex_w_vn # `EXPLICIT_REGEX_MANUSCRIPT_CONSTRAINTS` tracks the regex rules for the manuscripts @@ -198,6 +201,6 @@ SUBMISSIONS_COMPLETE_REGEX = '(?P<identifier_w_vn_nr>[0-9]{4,}.[0-9]{4,}v[0-9]{1 # # CAUTION: *triple* check whether the `default` regex also meets any other explicit journal regex! EXPLICIT_REGEX_MANUSCRIPT_CONSTRAINTS = { - SCIPOST_JOURNAL_PHYSICS: '(?P<identifier_w_vn_nr>[0-9]{4,}.[0-9]{4,}v[0-9]{1,2})', + # SCIPOST_JOURNAL_PHYSICS: '(?P<identifier_w_vn_nr>[0-9]{4,}.[0-9]{4,}v[0-9]{1,2})', 'default': SUBMISSIONS_COMPLETE_REGEX } diff --git a/submissions/forms.py b/submissions/forms.py index a607e7b79..638ec4221 100644 --- a/submissions/forms.py +++ b/submissions/forms.py @@ -341,8 +341,8 @@ class RequestSubmissionForm(SubmissionChecks, forms.ModelForm): """Do all prechecks which are also done in the prefiller.""" cleaned_data = super().clean(*args, **kwargs) if 'identifier_w_vn_nr' not in cleaned_data: - self.scipost_identifier = generate_new_scipost_identifier() - cleaned_data['identifier_w_vn_nr'] = format_scipost_identifier(self.scipost_identifier) + identifier_str, self.scipost_identifier = generate_new_scipost_identifier() + cleaned_data['identifier_w_vn_nr'] = format_scipost_identifier(identifier_str) self.do_pre_checks(cleaned_data['identifier_w_vn_nr']) self.identifier_meets_regex( @@ -446,7 +446,7 @@ class RequestSubmissionForm(SubmissionChecks, forms.ModelForm): _file=self.cleaned_data.get('preprint_file', None), ) # Save metadata directly from ArXiv call without possible user interception - submission.metadata = self.metadata + submission.metadata = self.metadata if hasattr(self, 'metadata') else {} submission.preprint = preprint if self.submission_is_resubmission(): diff --git a/submissions/models.py b/submissions/models.py index f7d34928e..690980565 100644 --- a/submissions/models.py +++ b/submissions/models.py @@ -131,6 +131,7 @@ class Submission(models.Model): # Temporary needs_conflicts_update = models.BooleanField(default=False) + invitation_order = models.IntegerField(default=0) class Meta: app_label = 'submissions' diff --git a/submissions/templates/partials/submissions/pool/submission_info_table.html b/submissions/templates/partials/submissions/pool/submission_info_table.html index b9fa74f83..e157ee74d 100644 --- a/submissions/templates/partials/submissions/pool/submission_info_table.html +++ b/submissions/templates/partials/submissions/pool/submission_info_table.html @@ -3,12 +3,21 @@ <td style="min-width: 40%;">Version</td> <td>{{submission.arxiv_vn_nr}} ({% if submission.is_current %}current version{% else %}deprecated version {{submission.arxiv_vn_nr}}{% endif %})</td> </tr> - <tr> - <td>Arxiv Link:</td> - <td> - <a href="{{ submission.preprint.url }}" target="_blank">{{ submission.preprint.url }}</a> - </td> - </tr> + {% if submission.preprint.url %} + <tr> + <td>Arxiv Link:</td> + <td> + <a href="{{ submission.preprint.url }}" target="_blank">{{ submission.preprint.url }}</a> + </td> + </tr> + {% elif submission.preprint.get_absolute_url %} + <tr> + <td>Preprint link:</td> + <td> + <a href="{{ submission.preprint.get_absolute_url }}" target="_blank">{{ submission.preprint.identifier_w_vn_nr }}</a> + </td> + </tr> + {% endif %} <tr> <td>Submitted</td> <td>{{submission.submission_date}} to {{submission.get_submitted_to_journal_display}}</td> diff --git a/submissions/templates/partials/submissions/submission_summary.html b/submissions/templates/partials/submissions/submission_summary.html index a7acdbc3b..99e0db023 100644 --- a/submissions/templates/partials/submissions/submission_summary.html +++ b/submissions/templates/partials/submissions/submission_summary.html @@ -19,13 +19,21 @@ {% endfor %} </td> </tr> - - <tr> - <td>Arxiv Link:</td> - <td> - <a href="{{submission.preprint.url}}" target="_blank">{{submission.preprint.url}}</a> - </td> - </tr> + {% if submission.preprint.url %} + <tr> + <td>Arxiv Link:</td> + <td> + <a href="{{submission.preprint.url}}" target="_blank">{{submission.preprint.url}}</a> + </td> + </tr> + {% elif submission.preprint.get_absolute_url %} + <tr> + <td>Preprint link:</td> + <td> + <a href="{{ submission.preprint.get_absolute_url }}" target="_blank">{{ submission.preprint.identifier_w_vn_nr }}</a> + </td> + </tr> + {% endif %} {% if submission.acceptance_date %} <tr> <td>Date accepted:</td> -- GitLab