diff --git a/journals/constants.py b/journals/constants.py index 6bd5de5cf9a4285d253a22a9bbb638efde5396f0..7db8b8c2a556c43aaddb121825a6ec209746412e 100644 --- a/journals/constants.py +++ b/journals/constants.py @@ -56,3 +56,12 @@ ISSUE_STATUSES = ( (STATUS_DRAFT, 'Draft'), (STATUS_PUBLISHED, 'Published'), ) + +CCBY4 = 'CC BY 4.0' +CCBYSA4 = 'CC BY-SA 4.0' +CCBYNC4 = 'CC BY-NC 4.0' +CC_LICENSES = ( + (CCBY4, 'CC BY (4.0)'), + (CCBYSA4, 'CC BY-SA (4.0)'), + (CCBYNC4, 'CC BY-NC (4.0)'), +) diff --git a/journals/migrations/0034_publication_cc_license.py b/journals/migrations/0034_publication_cc_license.py new file mode 100644 index 0000000000000000000000000000000000000000..b23b2c997bd72c6252c82999dd57c112826b2a28 --- /dev/null +++ b/journals/migrations/0034_publication_cc_license.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.3 on 2017-07-12 06:10 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('journals', '0033_auto_20170711_2041'), + ] + + operations = [ + migrations.AddField( + model_name='publication', + name='cc_license', + field=models.CharField(choices=[('CC BY 4.0', 'CC BY (4.0)'), ('CC BY-SA 4.0', 'CC BY-SA (4.0)'), ('CC BY-NC 4.0', 'CC BY-NC (4.0)')], default='CC BY 4.0', max_length=32), + ), + ] diff --git a/journals/models.py b/journals/models.py index b714473022b3d50575bfd385cde5acf02a3536d0..fe5dee82967a4c6e4b8d7d14bffccc6c3245d4f8 100644 --- a/journals/models.py +++ b/journals/models.py @@ -7,7 +7,8 @@ from django.urls import reverse from .behaviors import doi_journal_validator, doi_volume_validator,\ doi_issue_validator, doi_publication_validator from .constants import SCIPOST_JOURNALS, SCIPOST_JOURNALS_DOMAINS,\ - STATUS_DRAFT, STATUS_PUBLISHED, ISSUE_STATUSES + STATUS_DRAFT, STATUS_PUBLISHED, ISSUE_STATUSES,\ + CCBY4, CC_LICENSES from .helpers import paper_nr_string, journal_name_abbrev_citation from .managers import IssueManager, PublicationManager @@ -140,6 +141,7 @@ class Publication(models.Model): related_name='authors_pub_false_claims') abstract = models.TextField() pdf_file = models.FileField(upload_to='UPLOADS/PUBLICATIONS/%Y/%m/', max_length=200) + cc_license = models.CharField(max_length=32, choices=CC_LICENSES, default=CCBY4) metadata = JSONField(default={}, blank=True, null=True) metadata_xml = models.TextField(blank=True, null=True) # for Crossref deposit latest_metadata_update = models.DateTimeField(blank=True, null=True) diff --git a/journals/utils.py b/journals/utils.py index a9544e651486b048e89ce9bb1151043ed6b772c5..3fa91ffc97d53fba192f4a2097ffb07ca3d22e61 100644 --- a/journals/utils.py +++ b/journals/utils.py @@ -49,29 +49,39 @@ class JournalUtils(object): 'abstract': cls.publication.abstract, 'year': cls.publication.publication_date.strftime('%Y'), 'month': cls.publication.publication_date.strftime('%m'), + 'start_page': cls.publication.get_paper_nr(), + 'identifier': [ + { + 'type': 'doi', + 'id': cls.publication.doi_string() + } + ], 'link': [ { 'url': cls.request.build_absolute_uri(cls.publication.get_absolute_url()), 'type': 'fulltext', - 'content_type': 'application/pdf' } ], - 'identifier': [ {'type': 'eissn', - 'id': str(cls.publication.in_issue.in_volume.in_journal.issn)}], 'journal': { 'publisher': 'SciPost', + 'volume': str(cls.publication.in_issue.in_volume.number), + 'number': str(cls.publication.in_issue.number), + 'identifier': [ + { 'type': 'eissn', + 'id': str(cls.publication.in_issue.in_volume.in_journal.issn) + } + ], 'license': [ { 'url': cls.request.build_absolute_uri( cls.publication.in_issue.in_volume.in_journal.get_absolute_url()), 'open_access': 'true', - 'type': 'CC BY', - 'title': 'CC BY' + 'type': cls.publication.get_cc_license_display(), + 'title': cls.publication.get_cc_license_display(), } ], 'language': [ 'EN'], 'title': cls.publication.in_issue.in_volume.in_journal.get_name_display(), - 'volume': str(cls.publication.in_issue.in_volume.number), } } } diff --git a/journals/views.py b/journals/views.py index 6fbfa22fedd3e7822c26ce6db17081699fd3415b..a2295b8b9619e56be007a5b485f85a5a262e1b2a 100644 --- a/journals/views.py +++ b/journals/views.py @@ -275,7 +275,7 @@ 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') + publications = Publication.objects.order_by('-publication_date', '-paper_nr') context = { 'publications': publications }