From b19a06c2d5fb86b28a59f04eff44c0f864701b68 Mon Sep 17 00:00:00 2001 From: Julian Maurice <julian.maurice@biblibre.com> Date: Wed, 6 Jan 2016 19:11:27 +0100 Subject: [PATCH] Bug 15358: Attempt to fix authorities merge This is a quick fix, and I'm quite sure there are other bugs hiding... but I managed to display both authority in tabs and merge them. The result preview requires at least one click on checkboxes to show up, I haven't looked at this issue yet. Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> --- C4/AuthoritiesMarc.pm | 6 ++++-- authorities/merge.pl | 22 ++++++++++++++++------ cataloguing/merge.pl | 2 +- .../prog/en/includes/merge-record.inc | 20 ++++++++++---------- .../prog/en/modules/authorities/merge.tt | 2 +- 5 files changed, 32 insertions(+), 20 deletions(-) diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm index 866350e..a88d4fa 100644 --- a/C4/AuthoritiesMarc.pm +++ b/C4/AuthoritiesMarc.pm @@ -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; diff --git a/authorities/merge.pl b/authorities/merge.pl index cfc1ca5..16efdd5 100755 --- a/authorities/merge.pl +++ b/authorities/merge.pl @@ -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, ); } } diff --git a/cataloguing/merge.pl b/cataloguing/merge.pl index a882daa..fc96d3c 100755 --- a/cataloguing/merge.pl +++ b/cataloguing/merge.pl @@ -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), diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/merge-record.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/merge-record.inc index f74e8ce..2d77a2f 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/merge-record.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/merge-record.inc @@ -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> diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt index 78ad394..8e46552 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt @@ -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 %] -- 2.1.0