From f7ca901a093cae93797a39694a00b846a65c09ca Mon Sep 17 00:00:00 2001 From: Jorran de Wit <jorrandewit@outlook.com> Date: Mon, 24 Sep 2018 07:51:13 +0200 Subject: [PATCH] Something --- journals/behaviors.py | 2 +- journals/models.py | 2 +- journals/views.py | 5 ++--- proceedings/models.py | 6 +++--- scipost/urls.py | 4 ++-- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/journals/behaviors.py b/journals/behaviors.py index dd9e5f253..b3c87c62e 100644 --- a/journals/behaviors.py +++ b/journals/behaviors.py @@ -11,7 +11,7 @@ doi_journal_validator = RegexValidator(r'^[a-zA-Z]+$', 'Only valid DOI expressions are allowed ([a-zA-Z]+).') doi_volume_validator = RegexValidator(r'^[a-zA-Z]+.[0-9]+$', 'Only valid DOI expressions are allowed ([a-zA-Z]+.[0-9]+).') -doi_issue_validator = RegexValidator(r'^[a-zA-Z]+.[0-9]+.[0-9]+$', +doi_issue_validator = RegexValidator(r'^[a-zA-Z]+(.[0-9]+)?.[0-9]+$', ('Only valid DOI expressions are allowed ' '([a-zA-Z]+.[0-9]+.[0-9]+).')) doi_publication_validator = RegexValidator( diff --git a/journals/models.py b/journals/models.py index 6f2cd352e..c3bc89055 100644 --- a/journals/models.py +++ b/journals/models.py @@ -310,7 +310,7 @@ class Issue(models.Model): def issue_number(self): if self.in_volume: return '%s issue %s' % (self.in_volume, self.number) - return self.short_str + return '%s issue %s' % (self.in_journal, self.number) @property def short_str(self): diff --git a/journals/views.py b/journals/views.py index d4a59d242..7be959ac2 100644 --- a/journals/views.py +++ b/journals/views.py @@ -24,7 +24,6 @@ from django.db.models import Q from django.http import Http404, HttpResponse from django.utils import timezone from django.utils.decorators import method_decorator -from django.views.generic.base import TemplateView from django.views.generic.detail import DetailView from django.views.generic.edit import UpdateView from django.views.generic.list import ListView @@ -1231,8 +1230,8 @@ def publication_detail(request, doi_label): The actual Publication detail page. This is visible for everyone if published or visible for Production Supervisors and Administrators if in draft. """ - publication = get_object_or_404(Publication, doi_label=doi_label) - if not publication.is_published and not publication.status == PUBLICATION_PREPUBLISHED: + publication = Publication.objects.get(doi_label=doi_label) + if not publication.is_published and not publication.status == PUBLICATION_PREPUBLISHED: if not request.user.has_perm('scipost.can_draft_publication'): raise Http404('Publication is not publicly visible') diff --git a/proceedings/models.py b/proceedings/models.py index c2809ff46..47c99fdd5 100644 --- a/proceedings/models.py +++ b/proceedings/models.py @@ -18,9 +18,9 @@ class Proceedings(TimeStampedModel): A Proceeding is a special kind of Journal Issue. """ # Link to the actual Journal platform - issue = models.OneToOneField('journals.Issue', related_name='proceedings', - limit_choices_to={ - 'in_volume__in_journal__name': 'SciPostPhysProc'}) + issue = models.OneToOneField( + 'journals.Issue', related_name='proceedings', + limit_choices_to=models.Q(in_volume__in_journal__name='SciPostPhysProc') | models.Q(in_journal__name='SciPostPhysProc')) # Event the Proceedings is for event_name = models.CharField(max_length=256, blank=True) diff --git a/scipost/urls.py b/scipost/urls.py index e6e4183ba..99c22a916 100644 --- a/scipost/urls.py +++ b/scipost/urls.py @@ -207,9 +207,9 @@ urlpatterns = [ name='publication_pdf'), # Journal issue - url(r'^10.21468/(?P<doi_label>[a-zA-Z]+.[0-9]+.[0-9])$', + url(r'^10.21468/(?P<doi_label>[a-zA-Z]+(.[0-9]+)?.[0-9])$', journals_views.issue_detail, name='issue_detail'), - url(r'^(?P<doi_label>[a-zA-Z]+.[0-9]+.[0-9])$', + url(r'^(?P<doi_label>[a-zA-Z]+(.[0-9]+)?.[0-9])$', journals_views.issue_detail, name='issue_detail'), # Journal landing page -- GitLab