示例#1
0
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)
示例#2
0
文件: views.py 项目: SCOAP3/invenio
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)
示例#3
0
文件: utils.py 项目: mhellmic/b2share
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
示例#4
0
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