Skip to content

Commit

Permalink
openlibhums#2817: Adds support for issue-level DOI
Browse files Browse the repository at this point in the history
  • Loading branch information
mauromsl committed Sep 8, 2022
1 parent 56742cc commit 9749a76
Show file tree
Hide file tree
Showing 6 changed files with 106 additions and 6 deletions.
25 changes: 25 additions & 0 deletions src/identifiers/logic.py
Original file line number Diff line number Diff line change
Expand Up @@ -625,3 +625,28 @@ def register_preprint_doi(request, crossref_enabled, identifier):
util_models.LogEntry.add_entry('Submission', "Deposited {0}. Status: {1}".format(token, status), 'Info',
target=identifier.article)
logger.info("Status of {} in {}: {}".format(token, identifier.identifier, status))


def generate_issue_doi_from_logic(issue):
doi_prefix = setting_handler.get_setting(
'Identifiers', 'crossref_prefix', issue.journal).value
doi_suffix = render_template.get_requestless_content(
{'issue': issue},
issue.journal,
'issue_doi_pattern',
group_name='Identifiers')
return '{0}/{1}'.format(doi_prefix, doi_suffix)


def auto_assign_issue_doi(issue):
auto_assign_enabled = setting_handler.get_setting(
'Identifiers', 'use_crossref', issue.journal,
default=True,
).processed_value
if auto_assign_enabled and not issue.doi:
issue.doi = generate_issue_doi_from_logic(issue)
issue.save()


def on_article_assign_to_issue(article, issue, user):
auto_assign_issue_doi(issue)
2 changes: 1 addition & 1 deletion src/journal/issue_forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class Meta:
fields = (
'issue_title', 'volume', 'issue', 'date', 'issue_description',
'short_description', 'cover_image', 'large_image', 'issue_type',
'code',
'code', 'doi',
)


Expand Down
13 changes: 10 additions & 3 deletions src/journal/logic.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,12 +204,19 @@ def handle_new_issue(request):

def handle_assign_issue(request, article, issues):
try:
issue_to_assign = journal_models.Issue.objects.get(pk=request.POST.get('assign_issue', None))

issue_to_assign = journal_models.Issue.objects.get(
pk=request.POST.get('assign_issue', None))
if issue_to_assign in issues:
issue_to_assign.articles.add(article)
issue_to_assign.save()
messages.add_message(request, messages.SUCCESS, 'Article assigned to issue.')
messages.add_message(
request, messages.SUCCESS, 'Article assigned to issue.')
event_logic.Events.raise_event(
event_logic.Events.ON_ARTICLE_ASSIGNED_TO_ISSUE,
article=article,
issue=issue_to_assign,
user=request.user,
)
else:

messages.add_message(request, messages.WARNING, 'Issue not in this journals issue list.')
Expand Down
4 changes: 3 additions & 1 deletion src/templates/admin/elements/issue/issue_modal.html
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,11 @@ <h4>{% if issue %}Edit Issue{% else %}Create Issue{% endif %}</h4>
<div class="large-12 columns">
{{ form.issue_description|foundation }}
</div>
<div class="large-12 columns">
<div class="large-6 columns">
{{ form.issue_type|foundation }}
</div>
<div class="large-6 columns">
{{ form.doi|foundation }}
<div class="large-12 columns">
<button name="save_issue" type="submit" class="button success">{% if issue %}Edit{% else %}Add{% endif %} Issue</button>
</div>
Expand Down
6 changes: 6 additions & 0 deletions src/templates/common/identifiers/crossref_journal_issue.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@
<volume>{{ crossref_issue.issue.volume }}</volume>
</journal_volume>
<issue>{{ crossref_issue.issue.issue }}</issue>
{% if crossref_issue.issue.doi %}
<doi_data>
<doi>{{ crossref_issue.issue.doi }}</doi>
<resource>{{ crossref_issue.issue.url }}</resource>
</doi_data>
{%endif%}
</journal_issue>
{% endif %}

Expand Down
62 changes: 61 additions & 1 deletion src/utils/install/journal_defaults.json
Original file line number Diff line number Diff line change
Expand Up @@ -3239,7 +3239,67 @@
"default": ""
}
},
{
{
"group": {
"name": "Identifiers"
},
"setting": {
"description": "The suffix pattern from which Issue DOIs are auto-generated. eg: 10.0001/myjournal.issue.1",
"is_translatable": false,
"name": "issue_doi_pattern",
"pretty_name": "Issue DOI Pattern",
"type": "char"
},
"value": {
"default": "{{ issue.journal.code }}.{{ issue.issue_type.code }}.{{ issue.id }}"
}
},
{
"group": {
"name": "Identifiers"
},
"setting": {
"description": "Automatically register issue DOIs on article publication, based on the issue DOI pattern",
"is_translatable": false,
"name": "register_issue_dois",
"pretty_name": "Auto-register issue-level DOIs",
"type": "boolean"
},
"value": {
"default": ""
}
},
{
"group": {
"name": "general"
},
"setting": {
"description": "Languages available for this journal.",
"is_translatable": false,
"name": "journal_languages",
"pretty_name": "Journal Languages",
"type": "json"
},
"value": {
"default": "[]"
}
},
{
"group": {
"name": "general"
},
"setting": {
"description": "The default language for the journal.",
"is_translatable": false,
"name": "default_journal_language",
"pretty_name": "Default Journal Language",
"type": "text"
},
"value": {
"default": "en"
}
},
{
"group": {
"name": "general"
},
Expand Down

0 comments on commit 9749a76

Please # to comment.