From e9cbd0f04550d3ace2c2a5ab94a3ac016cadc46b 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. --- 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 0c5a917..3f5531a 100644 --- a/C4/Biblio.pm +++ b/C4/Biblio.pm @@ -234,6 +234,10 @@ sub AddBiblio { $defer_marc_save = 1; } + if (C4::Context->preference('BiblioAddsAuthorities')) { + BiblioAutoLink( $record, $frameworkcode ); + } + my ( $biblionumber, $biblioitemnumber, $error ); my $dbh = C4::Context->dbh; @@ -295,6 +299,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 91d8321..1921a5a 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 0e6f2c1..968ceec 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 11c6d38..9018929 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.7.4