Bugzilla – Attachment 25743 Details for
Bug 11876
Add a diff view to staged MARC records
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Add a diff view for staged MARC records.
0001-Add-a-diff-view-for-staged-MARC-records.patch (text/plain), 8.12 KB, created by
Frédérick Capovilla
on 2014-02-28 19:18:06 UTC
(
hide
)
Description:
Add a diff view for staged MARC records.
Filename:
MIME Type:
Creator:
Frédérick Capovilla
Created:
2014-02-28 19:18:06 UTC
Size:
8.12 KB
patch
obsolete
>From 246d8a6a3d27f8d33739054674bee3f51d139c5d Mon Sep 17 00:00:00 2001 >From: =?UTF-8?q?Fr=C3=A9d=C3=A9rick?= <frederick.capovilla@libeo.com> >Date: Fri, 28 Feb 2014 13:57:17 -0500 >Subject: [PATCH] Add a diff view for staged MARC records. > >--- > C4/ImportBatch.pm | 20 ++++ > catalogue/showdiffmarc.pl | 99 ++++++++++++++++++++ > .../prog/en/modules/catalogue/showdiffmarc.tt | 50 ++++++++++ > .../prog/en/modules/tools/manage-marc-import.tt | 12 ++- > 4 files changed, 179 insertions(+), 2 deletions(-) > create mode 100755 catalogue/showdiffmarc.pl > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/showdiffmarc.tt > >diff --git a/C4/ImportBatch.pm b/C4/ImportBatch.pm >index c045878..c9b78b2 100644 >--- a/C4/ImportBatch.pm >+++ b/C4/ImportBatch.pm >@@ -58,6 +58,7 @@ BEGIN { > GetStagedWebserviceBatches > GetImportBatchRangeDesc > GetNumberOfNonZ3950ImportBatches >+ GetImportBiblios > GetImportRecordsRange > GetItemNumbersFromImportBatch > >@@ -1017,6 +1018,25 @@ sub GetNumberOfNonZ3950ImportBatches { > return $count; > } > >+=head2 GetImportBiblios >+ >+ my $results = GetImportBiblios($importid); >+ >+=cut >+ >+sub GetImportBiblios { >+ my ($import_record_id) = @_; >+ >+ my $dbh = C4::Context->dbh; >+ my $query = "SELECT * FROM import_biblios WHERE import_record_id = ?"; >+ my $sth = $dbh->prepare_cached($query); >+ $sth->execute($import_record_id); >+ my $results = $sth->fetchall_arrayref({}); >+ $sth->finish(); >+ return $results; >+ >+} >+ > =head2 GetImportRecordsRange > > my $results = GetImportRecordsRange($batch_id, $offset, $results_per_group); >diff --git a/catalogue/showdiffmarc.pl b/catalogue/showdiffmarc.pl >new file mode 100755 >index 0000000..3486c8f >--- /dev/null >+++ b/catalogue/showdiffmarc.pl >@@ -0,0 +1,99 @@ >+#!/usr/bin/perl >+ >+# Koha library project www.koha-community.org >+ >+# Copyright 2011 Libéo >+# >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it under the >+# terms of the GNU General Public License as published by the Free Software >+# Foundation; either version 2 of the License, or (at your option) any later >+# version. >+# >+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY >+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR >+# A PARTICULAR PURPOSE. See the GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License along >+# with Koha; if not, write to the Free Software Foundation, Inc., >+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. >+ >+use strict; >+use warnings; >+ >+# standard or CPAN modules used >+use CGI qw(:standard); >+use DBI; >+ >+# Koha modules used >+use C4::Context; >+use C4::Output; >+use C4::Auth; >+use C4::Biblio; >+use C4::ImportBatch; >+use XML::LibXSLT; >+use XML::LibXML; >+ >+ >+# Input params >+my $input = new CGI; >+my $biblionumber = $input->param('id'); >+my $importid = $input->param('importid'); >+ >+ >+if ( $biblionumber and $importid ) { >+ >+ # Init vars >+ my ($recordBiblionumber, $recordImportid, $biblioTitle, $importTitle, $formatted1, $formatted2, >+ $errorFormatted1, $errorFormatted2); >+ >+ >+ # Prepare template >+ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( >+ { >+ template_name => "catalogue/showdiffmarc.tt", >+ query => $input, >+ type => "intranet", >+ authnotrequired => 0, >+ flagsrequired => { catalogue => 1 }, >+ debug => 1, >+ } >+ ); >+ >+ >+ $recordBiblionumber =GetMarcBiblio($biblionumber); >+ if( $recordBiblionumber ) { >+ $formatted1 = $recordBiblionumber->as_formatted; >+ my $data = GetBiblioData($biblionumber); >+ $biblioTitle = $data->{title}; >+ } else { >+ $errorFormatted1 = 1; >+ } >+ >+ my ($marc,$encoding) = GetImportRecordMarc($importid); >+ if( $marc ) { >+ $recordImportid = MARC::Record->new_from_usmarc($marc) ; >+ $formatted2 = $recordImportid->as_formatted; >+ my $biblio = GetImportBiblios($importid); >+ $importTitle = $biblio->[0]->{'title'}; >+ } else { >+ $errorFormatted2 = 1; >+ } >+ >+ >+ $template->param( SCRIPT_NAME => $ENV{'SCRIPT_NAME'}, >+ BIBLIONUMBER => $biblionumber, >+ IMPORTID => $importid, >+ BIBLIOTITLE => $biblioTitle, >+ IMPORTTITLE => $importTitle, >+ MARC_FORMATTED1 => $formatted1, >+ MARC_FORMATTED2 => $formatted2, >+ ERROR_FORMATTED1 => $errorFormatted1, >+ ERROR_FORMATTED2 => $errorFormatted2 >+ ); >+ >+ output_html_with_http_headers $input, $cookie, $template->output; >+} else { >+ exit; >+} >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/showdiffmarc.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/showdiffmarc.tt >new file mode 100644 >index 0000000..9aad4c1 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/showdiffmarc.tt >@@ -0,0 +1,50 @@ >+[% INCLUDE 'doc-head-open.inc' %] >+<title>Koha -- Cataloging: MARC Import</title> >+ >+<style> >+div#main { >+ width: 100%; >+ margin: 10px auto; >+} >+ >+div.col1, >+div.col2 { >+ float: left; >+ width: 46%; >+ margin-left: 3%; >+ >+} >+ >+pre { >+ padding: 10px; >+ overflow: scroll; >+} >+</style> >+ >+[% INCLUDE 'doc-head-close.inc' %] >+ >+</head> >+<body> >+ >+<div id="main"> >+ <div class="col1"> >+ <h2>Original</h2> >+ [% IF ( ERROR_FORMATTED1 ) %] >+ <p>The biblionumber <em>[% BIBLIONUMBER %]</em> doesn't match to any record.</p> >+ [% ELSE %] >+ <h1>[% BIBLIOTITLE %]</h1> >+ <pre>[% MARC_FORMATTED1 %]</pre> >+ [% END %] >+ </div> >+ <div class="col2"> >+ <h2>Imported</h2> >+ [% IF ( ERROR_FORMATTED2 ) %] >+ <p>The importid <em>[% IMPORTID %]</em> doesn't match to any record.</p> >+ [% ELSE %] >+ <h1>[% IMPORTTITLE %]</h1> >+ <pre>[% MARC_FORMATTED2 %] </pre> >+ [% END %] >+ </div> >+</div> >+ >+[% INCLUDE 'intranet-bottom.inc' %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt >index e8384c1..3b4e07f 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt >@@ -10,9 +10,9 @@ > <tr> > <td /> > [% IF ( record.record_type == 'biblio' ) %] >- <td class="highlight" colspan="4">Matches biblio [% record_lis.match_id %] (score = [% record_lis.match_score %]): <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% record_lis.match_id %]">[% record_lis.match_citation %]</a></td> >+ <td class="highlight" colspan="5">Matches biblio [% record_lis.match_id %] (score = [% record_lis.match_score %]): <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% record_lis.match_id %]">[% record_lis.match_citation %]</a></td> > [% ELSIF ( record.record_type == 'auth' ) %] >- <td class="highlight" colspan="4">Matches authority [% record_lis.match_id %] (score = [% record_lis.match_score %]): <a href="/cgi-bin/koha/authorities/detail.pl?authid=[% record_lis.match_id %]">[% record_lis.match_citation %]</a> | >+ <td class="highlight" colspan="5">Matches authority [% record_lis.match_id %] (score = [% record_lis.match_score %]): <a href="/cgi-bin/koha/authorities/detail.pl?authid=[% record_lis.match_id %]">[% record_lis.match_citation %]</a> | > <a href="/cgi-bin/koha/authorities/merge.pl?mergereference=breeding&authid=[% record_lis.match_id %]&authid=[% record_lis.import_record_id %]">Merge</a> > </td> > [% END %] >@@ -395,6 +395,7 @@ Page > <th>Status</th> > <th>Match?</th> > <th>Record</th> >+ <th><abbr title="Differences between the original biblio and the imported" lang="en">Diff</abbr></th> > > </tr> > [% FOREACH record_lis IN record_list %] >@@ -431,6 +432,13 @@ Page > [% PROCESS final_match_link record=record_lis %] > [% END %] > </td> >+ [% IF ( record_lis.match_id ) %] >+ <td> >+ <a rel="gb_page_center[960,600]" href="/cgi-bin/koha/catalogue/showdiffmarc.pl?importid=[% record_lis.import_record_id %]&id=[% record_lis.match_id %]">View</a> >+ </td> >+ [% ELSE %] >+ <td> </td> >+ [% END %] > </tr> > [% PROCESS match_link record=record_lis %] > [% END %] >-- >1.7.2.5 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 11876
:
25743
|
30590
|
30591
|
30787
|
30797
|
30798
|
30799
|
30800
|
31835
|
31847
|
31871
|
31872
|
31873
|
31874
|
32987
|
32995
|
33052
|
33053
|
33054
|
33055
|
33056