def do_upgrade(): """Implement your upgrades here.""" from invenio.modules.workflows.models import BibWorkflowObject from invenio.modules.deposit.models import Deposition q = BibWorkflowObject.query.filter(BibWorkflowObject.id_user != 0).all() for b in q: try: d = Deposition(b) except KeyError: logger.info("Fixing data in {}".format(b.id)) b.set_data( dict( type='upload', title='Untitled', files=[], drafts={}, sips=[], )) d = Deposition(b) d.save() s = _get_state(d) c = str(b.get_extra_data().get('_task_counter')) co = str(b.get_extra_data().get('task_counter')) if s == 'inprogress-new': if c == "[0, 0, 3, 1]": b.save(task_counter=[0, 3, 1]) elif c == "[0, 0, 3, 2]": b.save(task_counter=[0, 3, 2]) elif c == "None" and co == "[0, 0, 3, 1]": b.save(task_counter=[0, 3, 1]) elif s == 'inprogress-edit': if c == "[0, 0, 1, 0]": b.save(task_counter=[0, 1, 0]) elif c == "[0, 0, 1, 1]": b.save(task_counter=[0, 1, 1]) elif c == "[0, 4, 3, 0]": b.save(task_counter=[4, 3, 0]) elif c == "None" and co == "[0, 0, 1, 1]": b.save(task_counter=[0, 1, 1]) elif c == "None" and co == "[0, 0, 1, 0]": b.save(task_counter=[0, 1, 0]) elif b.id == 2076: b.save(task_counter=[4, 3, 0]) b.workflow.save(status=4) elif s == 'error': if c == "[0, 0, 1, 0]": b.save(task_counter=[0, 1, 0]) elif c == "[0, 0, 1, 1]": b.save(task_counter=[0, 1, 1]) elif c == "[0, 0, 3, 1]": b.save(task_counter=[0, 3, 1]) elif c == "[0, 0, 3, 2]": b.save(task_counter=[0, 3, 2]) elif c == "[0, 4, 3, 0]": b.save(task_counter=[4, 3, 0]) elif c == "[0, 4, 3, 1]": b.save(task_counter=[4, 3, 1])
def do_upgrade(): """Implement your upgrades here.""" from invenio.modules.workflows.models import BibWorkflowObject from invenio.modules.deposit.models import Deposition q = BibWorkflowObject.query.filter(BibWorkflowObject.id_user != 0).all() for b in q: try: d = Deposition(b) except KeyError: logger.info("Fixing data in {}".format(b.id)) b.set_data(dict( type='upload', title='Untitled', files=[], drafts={}, sips=[], )) d = Deposition(b) d.save() s = _get_state(d) c = str(b.get_extra_data().get('_task_counter')) co = str(b.get_extra_data().get('task_counter')) if s == 'inprogress-new': if c == "[0, 0, 3, 1]": b.save(task_counter=[0, 3, 1]) elif c == "[0, 0, 3, 2]": b.save(task_counter=[0, 3, 2]) elif c == "None" and co == "[0, 0, 3, 1]": b.save(task_counter=[0, 3, 1]) elif s == 'inprogress-edit': if c == "[0, 0, 1, 0]": b.save(task_counter=[0, 1, 0]) elif c == "[0, 0, 1, 1]": b.save(task_counter=[0, 1, 1]) elif c == "[0, 4, 3, 0]": b.save(task_counter=[4, 3, 0]) elif c == "None" and co == "[0, 0, 1, 1]": b.save(task_counter=[0, 1, 1]) elif c == "None" and co == "[0, 0, 1, 0]": b.save(task_counter=[0, 1, 0]) elif b.id == 2076: b.save(task_counter=[4, 3, 0]) b.workflow.save(status=4) elif s == 'error': if c == "[0, 0, 1, 0]": b.save(task_counter=[0, 1, 0]) elif c == "[0, 0, 1, 1]": b.save(task_counter=[0, 1, 1]) elif c == "[0, 0, 3, 1]": b.save(task_counter=[0, 3, 1]) elif c == "[0, 0, 3, 2]": b.save(task_counter=[0, 3, 2]) elif c == "[0, 4, 3, 0]": b.save(task_counter=[4, 3, 0]) elif c == "[0, 4, 3, 1]": b.save(task_counter=[4, 3, 1])
def add_submission_extra_data(obj, eng): """ Add extra data to workflow object. """ deposition = Deposition(obj) sip = deposition.get_latest_sip(sealed=False) metadata = sip.metadata submission_data = {} if "references" in metadata: submission_data["references"] = metadata["references"] del metadata["references"] if "extra_comments" in metadata: submission_data["extra_comments"] = metadata["extra_comments"] del metadata["extra_comments"] if "pdf" in metadata: submission_data["pdf"] = metadata["pdf"] del metadata["pdf"] obj.extra_data["submission_data"] = submission_data deposition.save()
def edit_record_urls(objectid): """Entrypoint for editing urls from detailed pages.""" editable_obj = BibWorkflowObject.query.get(objectid) new_urls = request.values.getlist('urls[]') or [] deposition = Deposition(editable_obj) sip = deposition.get_latest_sip() metadata = sip.metadata # Get the new urls and format them, the way the object does new_urls_array = [] for url in new_urls: new_urls_array.append({'url': url}) metadata[URL] = new_urls_array sip.package = make_record(sip.metadata).legacy_export_as_marc() deposition.save() return jsonify({ "category": "success", "message": "Edit on urls was successful." })
def edit_record_title(value, objectid): """Entrypoint for editing title from detailed pages.""" editable_obj = BibWorkflowObject.query.get(objectid) data = editable_obj.get_data() if type(data) is dict: deposition = Deposition(editable_obj) sip = deposition.get_latest_sip() metadata = sip.metadata metadata[TITLE][TITLE] = MathMLParser.html_to_text(value) sip.package = make_record(sip.metadata).legacy_export_as_marc() deposition.save() else: data[TITLE_FIELD] = MathMLParser.html_to_text(value) editable_obj.set_data(data) editable_obj.save() return jsonify({ "category": "success", "message": "Edit on title was successful." })