Bug 15358: Fix authorities merge

Bug 8064 (Merge several biblio records) change some code used in both
biblios and authorities merge tool without updating the authorities
merge tool.
This patch fixes that.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

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

Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
This commit is contained in:
Julian Maurice 2016-01-06 19:11:27 +01:00 committed by Brendan Gallagher
parent 6d24219976
commit 5ef5fb5617
5 changed files with 35 additions and 23 deletions

View File

@ -1403,8 +1403,10 @@ sub merge {
my ($mergefrom,$MARCfrom,$mergeto,$MARCto) = @_;
my ($counteditedbiblio,$countunmodifiedbiblio,$counterrors)=(0,0,0);
my $dbh=C4::Context->dbh;
my $authtypefrom = Koha::Authority::Types->find($mergefrom);
my $authtypeto = Koha::Authority::Types->find($mergeto);
my $authfrom = Koha::Authorities->find($mergefrom);
my $authto = Koha::Authorities->find($mergeto);
my $authtypefrom = Koha::Authority::Types->find($authfrom->authtypecode);
my $authtypeto = Koha::Authority::Types->find($authto->authtypecode);
return "error MARCFROM not a marcrecord ".Data::Dumper::Dumper($MARCfrom) if scalar($MARCfrom->fields()) == 0;
return "error MARCTO not a marcrecord".Data::Dumper::Dumper($MARCto) if scalar($MARCto->fields()) == 0;

View File

@ -133,15 +133,27 @@ else {
# Creating a loop for display
my @record1 = $recordObj1->createMergeHash($tagslib);
my @record2 = $recordObj2->createMergeHash($tagslib);
my @records = (
{
recordid => $mergereference,
record => $recordObj1->record,
frameworkcode => $recordObj1->authtypecode,
display => $recordObj1->createMergeHash($tagslib),
reference => 1,
},
{
recordid => $notreference,
record => $recordObj2->record,
frameworkcode => $recordObj2->authtypecode,
display => $recordObj2->createMergeHash($tagslib),
},
);
# Parameters
$template->param(
recordid1 => $mergereference,
recordid2 => $notreference,
record1 => @record1,
record2 => @record2,
records => \@records,
framework => $framework,
);
}
@ -169,8 +181,6 @@ else {
frameworkselect => \@frameworkselect,
frameworkcode1 => $recordObj1->authtypecode,
frameworkcode2 => $recordObj2->authtypecode,
frameworklabel1 => $recordObj1->authtypetext,
frameworklabel2 => $recordObj2->authtypetext,
);
}
}

View File

@ -203,7 +203,7 @@ if ($merge) {
my $frameworkcode = GetFrameworkCode($biblionumber);
my $recordObj = new Koha::MetadataRecord({'record' => $marcrecord, schema => $marcflavour});
my $record = {
biblionumber => $biblionumber,
recordid => $biblionumber,
record => $marcrecord,
frameworkcode => $frameworkcode,
display => $recordObj->createMergeHash($tagslib),

View File

@ -1,16 +1,16 @@
[% BLOCK sourcetab %]
<div id="tabrecord[% record.biblionumber %]">
<div id="tabrecord[% record.recordid %]">
<div class="record">
<ul id="ulrecord[% record.biblionumber %]">
<ul id="ulrecord[% record.recordid %]">
[% FOREACH field IN record.display %]
[% IF field.tag != biblionumbertag %]
<li id="k[% field.key %]">
[% IF (tabrecord.reference) %]
<input type="checkbox" checked="checked" class="fieldpick" id="rec_[% record.biblionumber %]_[% field.key %]" />
<input type="checkbox" checked="checked" class="fieldpick" id="rec_[% record.recordid %]_[% field.key %]" />
[% ELSE %]
<input type="checkbox" class="fieldpick" id="rec_[% record.biblionumber %]_[% field.key %]" />
<input type="checkbox" class="fieldpick" id="rec_[% record.recordid %]_[% field.key %]" />
[% END %]
<label for="rec_[% record.biblionumber %]_[% field.key %]"><span class="field">[% field.tag %]</span></label>
<label for="rec_[% record.recordid %]_[% field.key %]"><span class="field">[% field.tag %]</span></label>
<input type="hidden" name="tag_[% field.tag %]_indicator1_[% field.key %]" value="[% field.indicator1 %]" />
<input type="hidden" name="tag_[% field.tag %]_indicator2_[% field.key %]" value="[% field.indicator2 %]" />
@ -25,11 +25,11 @@
[% FOREACH subfield IN field.subfield %]
<li id="k[% subfield.subkey %]">
[% IF (tabrecord.reference) %]
<input type="checkbox" checked="checked" class="subfieldpick" id="rec_[% record.biblionumber %]_[% subfield.subkey %]" />
<input type="checkbox" checked="checked" class="subfieldpick" id="rec_[% record.recordid %]_[% subfield.subkey %]" />
[% ELSE %]
<input type="checkbox" class="subfieldpick" id="rec_[% record.biblionumber %]_[% subfield.subkey %]" />
<input type="checkbox" class="subfieldpick" id="rec_[% record.recordid %]_[% subfield.subkey %]" />
[% END %]
<label for="rec_[% record.biblionumber %]_[% subfield.subkey %]"><span class="subfield">[% subfield.subtag %]</span> / [% subfield.value %]</label>
<label for="rec_[% record.recordid %]_[% subfield.subkey %]"><span class="subfield">[% subfield.subtag %]</span> / [% subfield.value %]</label>
<input type="hidden" name="tag_[% field.tag %]_code_[% subfield.subtag %]_[% field.key %]_[% subfield.subkey %]" value="[% subfield.subtag %]" />
<input type="hidden" name="tag_[% field.tag %]_subfield_[% subfield.subtag %]_[% subfield.key %]_[% subfield.subkey %]" value="[% subfield.value %]" />
</li>
@ -50,8 +50,8 @@
<ul>
[% FOREACH record IN sourcerecords %]
<li>
<a href="#tabrecord[% record.biblionumber %]">
[% record.biblionumber %]
<a href="#tabrecord[% record.recordid %]">
[% record.recordid %]
[% IF record.reference %](ref)[% END %]
</a>
</li>

View File

@ -15,15 +15,15 @@ div#result { margin-top: 1em; }
// When submiting the form
function mergeformsubmit() {
$("ul#ulrecord1").remove();
$("ul#ulrecord2").remove();
}
$('#tabs').remove();
}
$(document).ready(function(){
// Getting marc structure via ajax
tagslib = [];
$.getJSON("/cgi-bin/koha/authorities/merge_ajax.pl", {frameworkcode : "[% framework %]" }, function(json) {
tagslib = json;
rebuild_target($("#tabs"), $("#resultul"));
});
$('.preview-merge-reference').click(function (ev) {
@ -129,7 +129,7 @@ function changeFramework(fw) {
<div class="yui-g">
<div class="yui-u first">
[% PROCESS mergesource %]
[% PROCESS mergesource sourcerecords=records %]
</div>
<div class="yui-u">
[% PROCESS mergetarget %]