diff --git a/plugin_settings.py b/plugin_settings.py index 7935894..8e6c786 100644 --- a/plugin_settings.py +++ b/plugin_settings.py @@ -18,12 +18,13 @@ DATACITE_PASSWORD = '' DATACITE_PREFIX = '' DATACITE_API_URL = 'https://api.datacite.org/dois' +DATACITE_API_TEST_URL = 'https://api.test.datacite.org/dois' JOURNAL_PREFIX = True MINT_AUTOMATICALLY = False REDEPOSIT_BUTTON = False if settings.DEBUG: - DATACITE_API_URL = 'https://api.test.datacite.org/dois' # Use test in debug mode. + DATACITE_API_URL = DATACITE_API_TEST_URL # Use test in debug mode. class DatacitePlugin(plugins.Plugin): diff --git a/utils.py b/utils.py index 7a8bcea..a11307a 100644 --- a/utils.py +++ b/utils.py @@ -7,6 +7,7 @@ from plugins.datacite import plugin_settings from identifiers import models as ident_models from utils import setting_handler +from journal.models import Journal def prep_data(article, doi, event=None): @@ -130,7 +131,11 @@ def mint_datacite_doi(article, doi, event=None): if event == 'publish' and article.get_doi(): # The DOI will exists and we should use a PUT command - url = '{}/{}'.format(plugin_settings.DATACITE_API_URL, article.get_doi()) + api_url = plugin_settings.DATACITE_API_URL + if hasattr(article.journal, "status"): + if article.journal.status == Journal.PublishingStatus.TEST: + api_url = plugin_settings.DATACITE_API_TEST_URL + url = '{}/{}'.format(api_url, article.get_doi()) response = requests.put( url=url, json=prep_data(article, doi, event),