Bugzilla – Attachment 45767 Details for
Bug 15358
merge.pl does not populate values to merge
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 15358: Repopulate fields for authority merge
Bug-15358-Repopulate-fields-for-authority-merge.patch (text/plain), 10.51 KB, created by
Bernardo Gonzalez Kriegel
on 2015-12-17 11:34:47 UTC
(
hide
)
Description:
Bug 15358: Repopulate fields for authority merge
Filename:
MIME Type:
Creator:
Bernardo Gonzalez Kriegel
Created:
2015-12-17 11:34:47 UTC
Size:
10.51 KB
patch
obsolete
>From c8b5634589b3974093d01e66bc59413459532250 Mon Sep 17 00:00:00 2001 >From: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com> >Date: Tue, 15 Dec 2015 12:38:13 -0300 >Subject: [PATCH] Bug 15358: Repopulate fields for authority merge > >This patch implements a quick and dirty way >to revert changes introduced by Bug 8064 that >prevent populating fields in authority merge. > >To test: >1) Verify the problem, i.e. try to merge >any two authorities. Check that fields are empty >2) Apply the patch >3) Try again, verify fields are now populated > >Auth still don't merge, there is another problem >but don't know how to fix it, this is only a >partial solution. >--- > Koha/MetadataRecord.pm | 14 ++++ > Koha/Util/MARC.pm | 82 +++++++++++++++++++ > authorities/merge.pl | 4 +- > .../intranet-tmpl/prog/en/includes/merge-auth.inc | 91 ++++++++++++++++++++++ > .../prog/en/modules/authorities/merge.tt | 2 +- > 5 files changed, 190 insertions(+), 3 deletions(-) > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/merge-auth.inc > >diff --git a/Koha/MetadataRecord.pm b/Koha/MetadataRecord.pm >index 1577cd0..ddb8975 100644 >--- a/Koha/MetadataRecord.pm >+++ b/Koha/MetadataRecord.pm >@@ -117,6 +117,20 @@ sub createMergeHash { > } > } > >+=head2 createMergeHashAuth >+ >+Create a hash for use when merging authority records. At the moment the only >+metadata schema supported is MARC. >+ >+=cut >+ >+sub createMergeHashAuth { >+ my ($self, $tagslib) = @_; >+ if ($self->schema =~ m/marc/) { >+ return Koha::Util::MARC::createMergeHashAuth($self->record, $tagslib); >+ } >+} >+ > sub getKohaField { > my ($self, $kohafield) = @_; > >diff --git a/Koha/Util/MARC.pm b/Koha/Util/MARC.pm >index 22774b6..1a73145 100644 >--- a/Koha/Util/MARC.pm >+++ b/Koha/Util/MARC.pm >@@ -26,6 +26,88 @@ Koha::Util::MARC - utility class with routines for working with MARC records > > =head1 METHODS > >+=head2 createMergeHashAuth >+ >+Create a hash to use when merging authority records >+ >+=cut >+ >+sub createMergeHashAuth { >+ my ( $record, $tagslib ) = @_; >+ >+ return unless $record; >+ >+ my @array; >+ my @fields = $record->fields(); >+ >+ foreach my $field (@fields) { >+ my $fieldtag = $field->tag(); >+ if ( $fieldtag < 10 ) { >+ if ( !defined($tagslib) >+ || $tagslib->{$fieldtag}->{'@'}->{'tab'} >= 0 ) >+ { >+ push @array, >+ { >+ field => [ >+ { >+ tag => $fieldtag, >+ key => _createKey(), >+ value => $field->data(), >+ } >+ ] >+ }; >+ } >+ } >+ else { >+ my @subfields = $field->subfields(); >+ my @subfield_array; >+ foreach my $subfield (@subfields) { >+ if ( >+ !defined($tagslib) >+ || ( defined $tagslib->{$fieldtag} >+ && defined $tagslib->{$fieldtag}->{ @$subfield[0] } >+ && defined $tagslib->{$fieldtag}->{ @$subfield[0] }->{'tab'} >+ && $tagslib->{$fieldtag}->{ @$subfield[0] }->{'tab'} >= 0 ) >+ ) >+ { >+ push @subfield_array, >+ { >+ subtag => @$subfield[0], >+ subkey => _createKey(), >+ value => @$subfield[1], >+ }; >+ } >+ >+ } >+ >+ if ( >+ ( >+ !defined($tagslib) || ( defined $tagslib->{$fieldtag} >+ && defined $tagslib->{$fieldtag}->{'tab'} >+ && $tagslib->{$fieldtag}->{'tab'} >= 0 ) >+ ) >+ && @subfield_array >+ ) >+ { >+ push @array, >+ { >+ field => [ >+ { >+ tag => $fieldtag, >+ key => _createKey(), >+ indicator1 => $field->indicator(1), >+ indicator2 => $field->indicator(2), >+ subfield => [@subfield_array], >+ } >+ ] >+ }; >+ } >+ >+ } >+ } >+ return [@array]; >+} >+ > =head2 createMergeHash > > Create a hash to use when merging MARC records >diff --git a/authorities/merge.pl b/authorities/merge.pl >index 476b774..d78304f 100755 >--- a/authorities/merge.pl >+++ b/authorities/merge.pl >@@ -133,8 +133,8 @@ else { > > # Creating a loop for display > >- my @record1 = $recordObj1->createMergeHash($tagslib); >- my @record2 = $recordObj2->createMergeHash($tagslib); >+ my @record1 = $recordObj1->createMergeHashAuth($tagslib); >+ my @record2 = $recordObj2->createMergeHashAuth($tagslib); > > # Parameters > $template->param( >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/merge-auth.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/merge-auth.inc >new file mode 100644 >index 0000000..9229635 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/merge-auth.inc >@@ -0,0 +1,91 @@ >+[% BLOCK sourcetab %] >+ <div id="tabrecord[% recordnumber %]"> >+ [% IF ( records ) %] >+ >+ <div class="record"> >+ <ul id="ulrecord[% recordnumber %]"> >+ [% FOREACH record IN records %] >+ [% FOREACH field IN record.field %] >+ <li id="k[% field.key %]"> >+ [% IF (defaultrecord) %] >+ <input type="checkbox" checked="checked" class="fieldpick" id="rec_[% recordnumber %]_[% field.key %]" /> >+ [% ELSE %] >+ <input type="checkbox" class="fieldpick" id="rec_[% recordnumber %]_[% field.key %]" /> >+ [% END %] >+ <span class="field">[% field.tag %]</span> >+ >+ <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 %]" /> >+ [% IF ( field.value ) %] / [% field.value %] >+ <input type="hidden" name="tag_[% field.tag %]_code_00_[% field.key %]" value="00" /> >+ <input type="hidden" name="tag_[% field.tag %]_subfield_00_[% field.key %]" value="[% field.value %]" /> >+ [% END %] >+ >+ [% IF ( field.subfield ) %] >+ <ul> >+ [% FOREACH subfiel IN field.subfield %] >+ <li id="k[% subfiel.subkey %]"> >+ [% IF (defaultrecord) %] >+ <input type="checkbox" checked="checked" class="subfieldpick" id="rec_[% recordnumber %]_[% subfiel.subkey %]" /> >+ [% ELSE %] >+ <input type="checkbox" class="subfieldpick" id="rec_[% recordnumber %]_[% subfiel.subkey %]" /> >+ [% END %] >+ <span class="subfield">[% subfiel.subtag %]</span> / [% subfiel.value %] >+ <input type="hidden" name="tag_[% subfiel.tag %]_code_[% subfiel.subtag %]_[% subfiel.key %]_[% subfiel.subkey %]" value="[% subfiel.subtag %]" /> >+ <input type="hidden" name="tag_[% subfiel.tag %]_subfield_[% subfiel.subtag %]_[% subfiel.key %]_[% subfiel.subkey %]" value="[% subfiel.value |html%]" /> >+ </li> >+ [% END %] >+ </ul> >+ [% END %] >+ [% END %] >+ </li> >+ [% END %] >+ </ul> >+ </div><!-- /div.record --> >+ [% END %] >+ </div><!-- /div#tabrecord[% recordnumber %] --> >+[% END %] >+[% BLOCK mergesource %] >+<div id="tabs" class="toptabs"> >+<h2>Source records</h2> >+ <ul> >+ <li><a href="#tabrecord1">[% recordid1 %]</a></li> >+ <li><a href="#tabrecord2">[% recordid2 %]</a></li> >+ </ul> >+ [% PROCESS sourcetab records=record1 recordnumber=1 defaultrecord=1 %] >+ [% PROCESS sourcetab records=record2 recordnumber=2 defaultrecord=0 %] >+</div> <!-- // #tabs --> >+[% END %] >+[% BLOCK mergetarget %] >+<div id="result"> >+ <h2>Destination record</h2> >+ <div style="border:1px solid #E8E8E8;padding:1em;margin-top:2em;"> >+ <ul id="resultul"> >+ [% FOREACH record IN record1 %] >+ [% FOREACH field IN record.field %]<li id="k[% field.key %]"> >+ <span class="field">[% field.tag %]</span> >+ <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 %]" /> >+ [% IF ( field.value ) %] / >+ [% field.value %] >+ <input type="hidden" name="tag_[% field.tag %]_code_00_[% field.key %]" value="00" /> >+ <input type="hidden" name="tag_[% field.tag %]_subfield_00_[% field.key %]" value="[% field.value |html%]" /> >+ [% END %] >+ >+ [% IF ( field.subfield ) %] >+ <ul> >+ [% FOREACH subfiel IN field.subfield %] >+ <li id="k[% subfiel.subkey %]"> >+ <span class="subfield">[% subfiel.subtag %]</span> / [% subfiel.value %] >+ <input type="hidden" name="tag_[% subfiel.tag %]_code_[% subfiel.subtag %]_[% subfiel.key %]_[% subfiel.subkey %]" value="[% subfiel.subtag %]" /> >+ <input type="hidden" name="tag_[% subfiel.tag %]_subfield_[% subfiel.subtag %]_[% subfiel.key %]_[% subfiel.subkey %]" value="[% subfiel.value |html%]" /> >+ </li> >+ [% END %] >+ </ul> >+ [% END %] >+ </li>[% END %] >+ [% END %] >+ </ul> >+ </div> >+</div> <!-- // #result --> >+[% END %] >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 520b9cd..c085b4b 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt >@@ -1,4 +1,4 @@ >-[% PROCESS 'merge-record.inc' %] >+[% PROCESS 'merge-auth.inc' %] > [% INCLUDE 'doc-head-open.inc' %] > <title>Koha › Cataloging › Merging records</title> > [% INCLUDE 'greybox.inc' %] >-- >1.9.1
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 15358
:
45666
|
45767
|
46343
|
46393
|
46531
|
46651
|
46652
|
46653
|
47508
|
47509
|
47510
|
47537
|
47538
|
47539
|
47543
|
47640
|
47641
|
48155