From 1a8e1165ca7abf9e2b7e5c7de0cdf26cbd4e30ac Mon Sep 17 00:00:00 2001 From: Ere Maijala Date: Mon, 17 Sep 2018 01:13:55 +0300 Subject: [PATCH] Bug 21365: Call BiblioAutoLink from AddBiblio and ModBiblio This makes e.g. the advanced MARC editor, and anything that uses AddBiblio or ModBiblio honor BiblioAddsAuthorities. To test: 1. Make sure BiblioAddsAuthorities and AutoCreateAuthorities preferences are enabled. 2. Add a new record using advanced editor (enable EnableAdvancedCatalogingEditor to use it), include a previously non-existing author. 3. Save the record and observe the author get an authority number. 4. Add another author, save the record and make sure it also gets an authority number. Signed-off-by: Michal Denar Signed-off-by: Chris Cormack Signed-off-by: Nick Clemens --- C4/Biblio.pm | 8 ++++++++ acqui/addorderiso2709.pl | 6 +----- acqui/neworderempty.pl | 3 --- cataloguing/addbiblio.pl | 3 --- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/C4/Biblio.pm b/C4/Biblio.pm index ccc3e3a2a8..50c7c4cc10 100644 --- a/C4/Biblio.pm +++ b/C4/Biblio.pm @@ -207,6 +207,10 @@ sub AddBiblio { $defer_marc_save = 1; } + if (C4::Context->preference('BiblioAddsAuthorities')) { + BiblioAutoLink( $record, $frameworkcode ); + } + my ( $biblionumber, $biblioitemnumber, $error ); my $dbh = C4::Context->dbh; @@ -268,6 +272,10 @@ sub ModBiblio { logaction( "CATALOGUING", "MODIFY", $biblionumber, "biblio BEFORE=>" . $newrecord->as_formatted ); } + if (C4::Context->preference('BiblioAddsAuthorities')) { + BiblioAutoLink( $record, $frameworkcode ); + } + # Cleaning up invalid fields must be done early or SetUTF8Flag is liable to # throw an exception which probably won't be handled. foreach my $field ($record->fields()) { diff --git a/acqui/addorderiso2709.pl b/acqui/addorderiso2709.pl index 91d8321f0c..1921a5af6e 100755 --- a/acqui/addorderiso2709.pl +++ b/acqui/addorderiso2709.pl @@ -163,7 +163,7 @@ if ($op eq ""){ my $c_sort1 = shift( @sort1 ) || $input->param('all_sort1') || ''; my $c_sort2 = shift( @sort2 ) || $input->param('all_sort2') || ''; - # 1st insert the biblio, or find it through matcher + # Insert the biblio, or find it through matcher unless ( $biblionumber ) { if ($matcher_id) { if ( $matcher_id eq '_TITLE_AUTHOR_' ) { @@ -194,10 +194,6 @@ if ($op eq ""){ } ( $biblionumber, $bibitemnum ) = AddBiblio( $marcrecord, $cgiparams->{'frameworkcode'} || '' ); SetImportRecordStatus( $biblio->{'import_record_id'}, 'imported' ); - # 2nd add authorities if applicable - if (C4::Context->preference("BiblioAddsAuthorities")){ - my $headings_linked =BiblioAutoLink($marcrecord, $cgiparams->{'frameworkcode'}); - } } else { SetImportRecordStatus( $biblio->{'import_record_id'}, 'imported' ); } diff --git a/acqui/neworderempty.pl b/acqui/neworderempty.pl index 0e6f2c14c2..968ceece65 100755 --- a/acqui/neworderempty.pl +++ b/acqui/neworderempty.pl @@ -164,9 +164,6 @@ if ( $ordernumber eq '' and defined $params->{'breedingid'}){ exit; } #from this point: add a new record - if (C4::Context->preference("BiblioAddsAuthorities")){ - my $headings_linked=BiblioAutoLink($marcrecord, $params->{'frameworkcode'}); - } my $bibitemnum; $params->{'frameworkcode'} or $params->{'frameworkcode'} = ""; ( $biblionumber, $bibitemnum ) = AddBiblio( $marcrecord, $params->{'frameworkcode'} ); diff --git a/cataloguing/addbiblio.pl b/cataloguing/addbiblio.pl index 11c6d38e41..901892936b 100755 --- a/cataloguing/addbiblio.pl +++ b/cataloguing/addbiblio.pl @@ -831,9 +831,6 @@ if ( $op eq "addbiblio" ) { # it is not a duplicate (determined either by Koha itself or by user checking it's not a duplicate) if ( !$duplicatebiblionumber or $confirm_not_duplicate ) { my $oldbibitemnum; - if (C4::Context->preference("BiblioAddsAuthorities")){ - BiblioAutoLink( $record, $frameworkcode ); - } if ( $is_a_modif ) { ModBiblio( $record, $biblionumber, $frameworkcode ); } -- 2.39.5