def compare_revisions(rev1, rev2, recid): """Compare two revisions of a record.""" from invenio.legacy.bibedit.engine import (get_marcxml_of_revision_id, re_revdate_split) from invenio.legacy.bibrecord.xmlmarc2textmarc import create_marc_record from invenio.legacy.bibrecord import create_record from invenio.legacy.bibedit.utils import record_revision_exists from invenio.utils.text import show_diff person1 = "" person2 = "" if (not record_revision_exists(recid, rev1)) or \ (not record_revision_exists(recid, rev2)): return render_template("editor/revision_comparison_error.html") else: xml1 = get_marcxml_of_revision_id(recid, rev1) xml2 = get_marcxml_of_revision_id(recid, rev2) # Create MARC representations of the records marc1 = create_marc_record( create_record(xml1)[0], '', { "text-marc": 1, "aleph-marc": 0 }) marc2 = create_marc_record( create_record(xml2)[0], '', { "text-marc": 1, "aleph-marc": 0 }) comparison = show_diff( marc1, marc2, prefix="<pre>", suffix="</pre>", prefix_removed='<strong class="diff_field_deleted">', suffix_removed='</strong>', prefix_added='<strong class="diff_field_added">', suffix_added='</strong>') job_date1 = "%s-%s-%s %s:%s:%s" % re_revdate_split.search( rev1).groups() job_date2 = "%s-%s-%s %s:%s:%s" % re_revdate_split.search( rev2).groups() # Getting the author of each revision info1 = get_info_of_record_revision(recid, job_date1) info2 = get_info_of_record_revision(recid, job_date2) if info1: person1 = info1[0][1] if info2: person2 = info2[0][1] ctx = { "job_date1": job_date1, "job_date2": job_date2, "person1": person1, "person2": person2, "comparison": comparison } return render_template("editor/revision_comparison.html", **ctx)
def compare_revisions(rev1, rev2, recid): """Compare two revisions of a record.""" from invenio.legacy.bibedit.engine import (get_marcxml_of_revision_id, re_revdate_split) from invenio.legacy.bibrecord.xmlmarc2textmarc import create_marc_record from invenio.legacy.bibrecord import create_record from invenio.legacy.bibedit.utils import record_revision_exists from invenio.utils.text import show_diff person1 = "" person2 = "" if (not record_revision_exists(recid, rev1)) or \ (not record_revision_exists(recid, rev2)): return render_template("editor/revision_comparison_error.html") else: xml1 = get_marcxml_of_revision_id(recid, rev1) xml2 = get_marcxml_of_revision_id(recid, rev2) # Create MARC representations of the records marc1 = create_marc_record( create_record(xml1)[0], '', {"text-marc": 1, "aleph-marc": 0}) marc2 = create_marc_record( create_record(xml2)[0], '', {"text-marc": 1, "aleph-marc": 0}) comparison = show_diff( marc1, marc2, prefix="<pre>", suffix="</pre>", prefix_removed='<strong class="diff_field_deleted">', suffix_removed='</strong>', prefix_added='<strong class="diff_field_added">', suffix_added='</strong>') job_date1 = "%s-%s-%s %s:%s:%s" % re_revdate_split.search(rev1 ).groups() job_date2 = "%s-%s-%s %s:%s:%s" % re_revdate_split.search(rev2 ).groups() # Getting the author of each revision info1 = get_info_of_record_revision(recid, job_date1) info2 = get_info_of_record_revision(recid, job_date2) if info1: person1 = info1[0][1] if info2: person2 = info2[0][1] ctx = { "job_date1": job_date1, "job_date2": job_date2, "person1": person1, "person2": person2, "comparison": comparison } return render_template("editor/revision_comparison.html", **ctx)
def get_info_of_revision_id(revid): """Return info string regarding revision. Return empty string if revision does not exist. REVID should be a string. """ recid, job_date = split_revid(revid, 'datetext') res = '' tmp_res = get_info_of_record_revision(recid, job_date) if tmp_res: task_id = str(tmp_res[0][0]) author = tmp_res[0][1] if not author: author = 'N/A' res += '%s %s %s' % (revid.ljust(22), task_id.ljust(15), author.ljust(15)) job_details = tmp_res[0][2].split() upload_mode = job_details[0] + job_details[1][:-1] upload_file = job_details[2] + job_details[3][:-1] res += '%s %s' % (upload_mode, upload_file) return res
def get_info_of_revision_id(revid): """Return info string regarding revision. Return empty string if revision does not exist. REVID should be a string. """ recid, job_date = split_revid(revid, 'datetext') res = '' tmp_res = get_info_of_record_revision(recid, job_date) if tmp_res: task_id = str(tmp_res[0][0]) author = tmp_res[0][1] if not author: author = 'N/A' res += '%s %s %s' % (revid.ljust(22), task_id.ljust(15), author.ljust(15)) job_details = tmp_res[0][2].split() if job_details: upload_mode = job_details[0] + job_details[1][:-1] upload_file = job_details[2] + job_details[3][:-1] res += '%s %s' % (upload_mode, upload_file) return res