def bst_openaire_new_upload(recid=None):
    """Tasklet to run after a new record has been uploaded."""
    if recid is None:
        return

    # Ship of tasks to Celery for background processing
    datacite_register.delay(recid)
def bst_openaire_new_upload(recid=None):
    """Tasklet to run after a new record has been uploaded."""
    if recid is None:
        return

    # Ship of tasks to Celery for background processing
    datacite_register.delay(recid)
Exemple #3
0
def bst_openaire_new_upload(recid=None):
    """Tasklet to run after a new record has been uploaded."""
    if recid is None:
        return

    # Ship of tasks to Celery for background processing
    datacite_register.delay(recid)
    openaire_create_icon.delay(recid=recid)
    openaire_altmetric_update.delay([recid])
    openaire_upload_notification.delay(recid=recid)
    calculate_preservation_score.delay(recid=recid)
def bst_openaire_new_upload(recid=None):
    """Tasklet to run after a new record has been uploaded."""
    if recid is None:
        return

    # Ship of tasks to Celery for background processing
    datacite_register.delay(recid)
    openaire_create_icon.delay(recid=recid)
    openaire_altmetric_update.delay([recid])
    openaire_upload_notification.delay(recid=recid)
    calculate_preservation_score.delay(recid=recid)
Exemple #5
0
def doi_consistency_check():
    """Check if all DOIs in records have been registered."""
    from invenio.base.globals import cfg
    from invenio.modules.records.api import get_record
    from invenio.legacy.search_engine import perform_request_search
    from invenio.modules.pidstore.models import PersistentIdentifier
    from invenio.modules.pidstore.tasks import datacite_register

    result = perform_request_search(p="")
    for r in result:
        doi = get_record(r).get('doi')
        if doi and doi.startswith(cfg['CFG_DATACITE_DOI_PREFIX']):
            pid = PersistentIdentifier.get("doi", doi)
            if pid and pid.is_new():
                if pid.has_object("rec", r):
                    datacite_register.delay(r)
Exemple #6
0
def doi_action(record):
    if record.get('doi', None) is not None:
        return json_error(400, 'Record already has a DOI.')

    recid = record['recid']
    doi = build_doi(recid)
    current_app.logger.info("Registering pid %s" % doi)
    pid = PersistentIdentifier.create(DOI_PID_TYPE, doi)
    if pid is None:
        pid = PersistentIdentifier.get(DOI_PID_TYPE, doi)
    try:
        pid.assign('rec', recid)
        datacite_register.delay(recid)
    except Exception, e:
        register_exception(alert_admin=True)
        return json_error(400, '%s' % e)