Bug 21579: Make showdiffmarc.pl work for authorities and biblios

To test:
 1 - Have or make some authority records
 2 - Have or make an authority matching rule
 3 - Export your authrotities
 4 - Import them using the matching rule
 5 - On the 'Manage staged records' page view some diffs
 6 - The import record is correct, but the existing records pull form
 bibs
 7 - Apply patch
 8 - Repeat
 9 - Confirm you see the expected authority matches

Signed-off-by: Mark Tompsett <mtompset@hotmail.com>

Signed-off-by: Marjorie Vila <marjorie.barry-vila@collecto.ca>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
(cherry picked from commit 7f0207d2ad)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit ab630ab84f)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
Nick Clemens 2018-10-16 14:00:59 +00:00 committed by Fridolin Somers
parent ca2f8738ce
commit bc171c0649
3 changed files with 25 additions and 17 deletions

View File

@ -31,11 +31,11 @@
<h1>Original</h1>
[% IF ( ERROR_FORMATTED1 ) %]
<div class="dialog alert">
<p>The biblionumber <em>[% BIBLIONUMBER %]</em> doesn't match any existing record.</p>
<p>The record id <em>[% RECORDID | html %]</em> doesn't match any existing record.</p>
</div>
[% ELSE %]
<h2>[% BIBLIOTITLE %]</h2>
<pre>[% MARC_FORMATTED1 %]</pre>
<h2>[% RECORDTITLE | html %]</h2>
<pre>[% MARC_FORMATTED1 | html %]</pre>
[% END %]
</div>
<div id="col2" class="yui-u">

View File

@ -107,7 +107,7 @@ foreach my $record (@$records) {
|| q{},
score => $#$match > -1 ? $match->[0]->{'score'} : 0,
match_id => $match_id,
diff_url => $match_id ? "/cgi-bin/koha/tools/showdiffmarc.pl?batchid=$import_batch_id&importid=$record->{import_record_id}&id=$match_id" : undef
diff_url => $match_id ? "/cgi-bin/koha/tools/showdiffmarc.pl?batchid=$import_batch_id&importid=$record->{import_record_id}&id=$match_id&type=$record->{record_type}" : undef
};
}

View File

@ -29,23 +29,25 @@ use C4::Context;
use C4::Output;
use C4::Auth;
use C4::Biblio;
use C4::AuthoritiesMarc;
use C4::ImportBatch;
use Koha::Biblios;
# Input params
my $input = new CGI;
my $biblionumber = $input->param('id');
my $recordid = $input->param('id');
my $importid = $input->param('importid');
my $batchid = $input->param('batchid');
my $type = $input->param('type');
if ( not $biblionumber or not $importid ) {
if ( not $recordid or not $importid ) {
print $input->redirect("/cgi-bin/koha/errors/404.pl");
exit;
}
# Init vars
my ($recordBiblionumber, $recordImportid, $biblioTitle, $importTitle, $formatted1, $formatted2, $errorFormatted1, $errorFormatted2);
my ($record, $recordImportid, $recordTitle, $importTitle, $formatted1, $formatted2, $errorFormatted1, $errorFormatted2);
# Prepare template
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
@ -59,14 +61,20 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
}
);
$recordBiblionumber = GetMarcBiblio({
biblionumber => $biblionumber,
embed_items => 1,
});
if( $recordBiblionumber ) {
$formatted1 = $recordBiblionumber->as_formatted;
my $biblio = Koha::Biblios->find( $biblionumber );
$biblioTitle = $biblio->title;
if ( $type eq 'biblio' ) {
$record = GetMarcBiblio({
biblionumber => $recordid,
embed_items => 1,
});
my $biblio = Koha::Biblios->find( $recordid );
$recordTitle = $biblio->title;
}
elsif ( $type eq 'auth' ) {
$record = GetAuthority( $recordid );
$recordTitle = "Authority number " . $recordid; #FIXME we should get the main heading
}
if( $record ) {
$formatted1 = $record->as_formatted;
} else {
$errorFormatted1 = 1;
}
@ -82,9 +90,9 @@ if( $importid ) {
$template->param(
SCRIPT_NAME => '/cgi-bin/koha/tools/showdiffmarc.pl',
BIBLIONUMBER => $biblionumber,
RECORDID => $recordid,
IMPORTID => $importid,
BIBLIOTITLE => $biblioTitle,
RECORDTITLE => $recordTitle,
IMPORTTITLE => $importTitle,
MARC_FORMATTED1 => $formatted1,
MARC_FORMATTED2 => $formatted2,