def edit_submission(deposition, metadata, sip, new_subjects_list, subject_dict):
    """Subject editing for submissions."""
    old_subjects_list = []
    for subj in subject_dict:
        old_subjects_list.append(subj[TERM])

    metadata[SUBJECT_TERM] = revised_subjects_list(old_subjects_list,
                                                   new_subjects_list,
                                                   subject_dict)

    # hacky thing to update package as well, needed to show changes
    sip.package = make_record(sip.metadata).legacy_export_as_marc()
    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."
    })