SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 5ee96fe4 authored by Jean-Sébastien Caux's avatar Jean-Sébastien Caux
Browse files

Merge branch 'dev_JSC_20170727_metadata'

parents bed9e983 5e55f6ef
No related branches found
No related tags found
No related merge requests found
import re
from .exceptions import JournalNameError, PaperNumberError
def issue_doi_label_from_doi_label(doi_label):
"""
Strip the last digits block from the label.
"""
m = re.match(r'[a-zA-Z]+.[0-9]+.[0-9]+', doi_label)
s = m.start()
e = m.end()
return doi_label[s:e]
def journal_name_abbrev_citation(journal_name):
if journal_name == 'SciPostPhys':
return 'SciPost Phys.'
......
......@@ -23,7 +23,18 @@ event: "focusin"
<div class="row">
<div class="col-12">
<h1 class="highlight">Manage Publications Metadata</h1>
<h1 class="highlight">Manage Publications Metadata{% if issue_doi_label %} for issue {{ issue_doi_label }}{% endif %}</h1>
{% if issue_doi_label %}
<h3>Return to the <a href="{% url 'journals:manage_metadata' %}">Main manage metadata page</a></h3>
{% endif %}
<h3>Manage metadata per issue:</h3>
<ul>
{% for issue in issues %}
<li>
<a href="{% url 'journals:manage_metadata' issue_doi_label=issue.doi_label %}">{{ issue }}</a>
</li>
{% endfor %}
</ul>
</div>
</div>
......
......@@ -41,6 +41,12 @@ urlpatterns = [
url(r'^add_new_unreg_author/(?P<publication_id>[0-9]+)$',
journals_views.add_new_unreg_author,
name='add_new_unreg_author'),
url(r'^manage_metadata/(?P<doi_label>[a-zA-Z]+.[0-9]+.[0-9]+.[0-9]{3,})$',
journals_views.manage_metadata,
name='manage_metadata'),
url(r'^manage_metadata/(?P<issue_doi_label>[a-zA-Z]+.[0-9]+.[0-9]+)$',
journals_views.manage_metadata,
name='manage_metadata'),
url(r'^manage_metadata/$',
journals_views.manage_metadata,
name='manage_metadata'),
......
......@@ -16,7 +16,7 @@ from django.db import transaction
from django.http import HttpResponse
from .exceptions import PaperNumberingError
from .helpers import paper_nr_string
from .helpers import paper_nr_string, issue_doi_label_from_doi_label
from .models import Journal, Issue, Publication, UnregisteredAuthor, Deposit, DOAJDeposit
from .forms import FundingInfoForm, InitiatePublicationForm, ValidatePublicationForm,\
UnregisteredAuthorForm, CreateMetadataXMLForm, CitationListBibitemsForm
......@@ -271,11 +271,19 @@ def validate_publication(request):
@permission_required('scipost.can_publish_accepted_submission', return_403=True)
def manage_metadata(request):
publications = Publication.objects.order_by('-publication_date', '-paper_nr')
def manage_metadata(request, issue_doi_label=None, doi_label=None):
issues = Issue.objects.all().order_by('-until_date')
publications = Publication.objects.all()
if doi_label:
issue_doi_label = issue_doi_label_from_doi_label(doi_label)
if issue_doi_label:
publications = publications.filter(in_issue__doi_label=issue_doi_label)
publications.order_by('-publication_date', '-paper_nr')
associate_grant_form = GrantSelectForm()
associate_generic_funder_form = FunderSelectForm()
context = {
'issues': issues,
'issue_doi_label': issue_doi_label,
'publications': publications,
'associate_grant_form': associate_grant_form,
'associate_generic_funder_form': associate_generic_funder_form,
......@@ -437,7 +445,8 @@ def add_associated_grant(request, doi_label):
publication.grants.add(grant_select_form.cleaned_data['grant'])
publication.save()
messages.success(request, 'Grant added to publication %s' % str(publication))
return redirect(reverse('journals:manage_metadata'))
return redirect(reverse('journals:manage_metadata',
kwargs={'doi_label': publication.doi_label}))
@permission_required('scipost.can_publish_accepted_submission', return_403=True)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment