From 27efcea280db1ef354e110fa29fb86ee33b4d532 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 --- 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 0c5a917c6b..3f5531a680 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 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.19.1