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 <black23@gmail.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
This commit is contained in:
Ere Maijala 2018-09-17 01:13:55 +03:00 committed by Nick Clemens
parent 1fddd295b8
commit 1a8e1165ca
4 changed files with 9 additions and 11 deletions

View File

@ -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()) {

View File

@ -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' );
}

View File

@ -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'} );

View File

@ -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 );
}