From 2c52b27d8c3ee116208a0ec6e6a5aacad18e873b Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Tue, 18 Oct 2022 16:46:08 +0100 Subject: [PATCH] Bug 31224: Update instances of metadata->record We can now call metadata_record directly on the Koha::Biblio object. This aptch updates all modules and controllers to use Koha::Biblio->metadata_record directly where appropriate. The exceptions are where we don't require any filtering or the filtering makes sense to do after the initial fetch. Signed-off-by: Martin Renvoize Signed-off-by: Jonathan Druart Signed-off-by: Katrin Fischer --- C4/ILSDI/Services.pm | 2 +- Koha/BiblioUtils.pm | 5 ++--- Koha/OAI/Server/Repository.pm | 9 ++++++++- Koha/SearchEngine/Elasticsearch/Indexer.pm | 2 +- basket/downloadcart.pl | 2 +- basket/sendbasket.pl | 2 +- catalogue/ISBDdetail.pl | 13 ++----------- catalogue/MARCdetail.pl | 5 ++--- catalogue/export.pl | 2 +- misc/batchRebuildItemsTables.pl | 2 +- misc/migration_tools/rebuild_zebra.pl | 2 +- opac/opac-downloadcart.pl | 4 ++-- opac/opac-downloadshelf.pl | 4 ++-- opac/opac-export.pl | 4 ++-- opac/opac-sendbasket.pl | 2 +- opac/opac-sendshelf.pl | 2 +- opac/opac-tags.pl | 4 ++-- opac/opac-user.pl | 8 +++++++- svc/bib | 9 ++++----- svc/new_bib | 4 ++-- tools/showdiffmarc.pl | 2 +- virtualshelves/downloadshelf.pl | 2 +- virtualshelves/sendshelf.pl | 2 +- 23 files changed, 47 insertions(+), 46 deletions(-) diff --git a/C4/ILSDI/Services.pm b/C4/ILSDI/Services.pm index 891d193c68..afe9f28f0c 100644 --- a/C4/ILSDI/Services.pm +++ b/C4/ILSDI/Services.pm @@ -218,7 +218,7 @@ sub GetRecords { my $biblioitem = $biblio->biblioitem->unblessed; - my $record = $biblio->metadata->record({ embed_items => 1, opac => 1, }); + my $record = $biblio->metadata_record( { embed_items => 1 } ); if ($record) { $biblioitem->{marcxml} = $record->as_xml_record( C4::Context->preference('marcflavour') ); } diff --git a/Koha/BiblioUtils.pm b/Koha/BiblioUtils.pm index 5f438253f7..c7e00c4089 100644 --- a/Koha/BiblioUtils.pm +++ b/Koha/BiblioUtils.pm @@ -151,7 +151,7 @@ sub get_all_biblios_iterator { my $row = $rs->next(); return if !$row; my $next = eval { - my $marc = $row->metadata->record({ embed_items => 1 }); + my $marc = $row->metadata_record( { embed_items => 1 } ); $class->new($marc, $row->biblionumber); }; if ($@) { @@ -187,8 +187,7 @@ If set to true, item data is embedded in the record. Default is to not do this. sub get_marc_biblio { my ($class, $bibnum, %options) = @_; - my $record = Koha::Biblios->find($bibnum) - ->metadata->record( { $options{item_data} ? ( embed_items => 1 ) : () } ); + my $record = Koha::Biblios->find($bibnum)->metadata_record( { $options{item_data} ? ( embed_items => 1 ) : () } ); return $record; } diff --git a/Koha/OAI/Server/Repository.pm b/Koha/OAI/Server/Repository.pm index cef649169f..84115a4c65 100644 --- a/Koha/OAI/Server/Repository.pm +++ b/Koha/OAI/Server/Repository.pm @@ -185,7 +185,14 @@ sub get_biblio_marcxml { # Koha::Biblio::Metadata->record throws an exception on bad encoding, # we don't want OAI harvests to die, so we catch and warn, and try to clean the record - eval { $record = $biblio->metadata->record( { embed_items => $with_items, opac => 1 } ); }; + eval { + $record = $biblio->metadata_record( + { + embed_items => $with_items, + interface => 'opac' + } + ); + }; my $decoding_error; if ($@) { my $exception = $@; diff --git a/Koha/SearchEngine/Elasticsearch/Indexer.pm b/Koha/SearchEngine/Elasticsearch/Indexer.pm index 1f914b8a65..8a8c73f795 100644 --- a/Koha/SearchEngine/Elasticsearch/Indexer.pm +++ b/Koha/SearchEngine/Elasticsearch/Indexer.pm @@ -349,7 +349,7 @@ sub _get_record { if ( $self->index eq $Koha::SearchEngine::BIBLIOS_INDEX ) { my $biblio = Koha::Biblios->find($record_id); - $record = $biblio->metadata->record( { embed_items => 1 } ) + $record = $biblio->metadata_record( { embed_items => 1 } ) if $biblio; } else { $record = C4::AuthoritiesMarc::GetAuthority($record_id); diff --git a/basket/downloadcart.pl b/basket/downloadcart.pl index 806ad4959f..484b6741e7 100755 --- a/basket/downloadcart.pl +++ b/basket/downloadcart.pl @@ -64,7 +64,7 @@ if ($bib_list && $format) { foreach my $biblionumber (@bibs) { my $biblio = Koha::Biblios->find($biblionumber); - my $record = $biblio->metadata->record({ embed_items => 1 }); + my $record = $biblio->metadata_record( { embed_items => 1 } ); next unless $record; if ($format eq 'iso2709') { diff --git a/basket/sendbasket.pl b/basket/sendbasket.pl index 298188f834..d0c06c342f 100755 --- a/basket/sendbasket.pl +++ b/basket/sendbasket.pl @@ -60,7 +60,7 @@ if ( $op eq "cud-send" && $email_add ) { foreach my $bib (@bibs) { my $biblio = Koha::Biblios->find($bib) or next; - $iso2709 .= $biblio->metadata->record->as_usmarc(); + $iso2709 .= $biblio->metadata_record()->as_usmarc(); } if ( !defined $iso2709 ) { diff --git a/catalogue/ISBDdetail.pl b/catalogue/ISBDdetail.pl index d7431e8bc8..90bbb51f84 100755 --- a/catalogue/ISBDdetail.pl +++ b/catalogue/ISBDdetail.pl @@ -76,8 +76,8 @@ unless ( $biblionumber && $biblio ) { exit; } -my $record = $biblio->metadata->record({ embed_items => 1 }); - +my $record = + $biblio->metadata_record( { embed_items => 1, interface => 'intranet' } ); if ( not defined $record ) { # biblionumber invalid -> report and exit $template->param( unknownbiblionumber => 1, @@ -88,15 +88,6 @@ if ( not defined $record ) { } my $framework = $biblio->frameworkcode; -my $record_processor = Koha::RecordProcessor->new({ - filters => 'ViewPolicy', - options => { - interface => 'intranet', - frameworkcode => $framework - }, -}); -$record_processor->process($record); - my $res = GetISBDView({ 'record' => $record, 'template' => 'intranet', diff --git a/catalogue/MARCdetail.pl b/catalogue/MARCdetail.pl index 0b7f470b22..bcb6f5e972 100755 --- a/catalogue/MARCdetail.pl +++ b/catalogue/MARCdetail.pl @@ -90,10 +90,9 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( ); my $biblio_object = Koha::Biblios->find( $biblionumber ); # FIXME Should replace $biblio -my $record; -$record = $biblio_object->metadata->record({ embed_items => 1 }) if $biblio_object; +my $record = $biblio_object ? $biblio_object->metadata_record( { embed_items => 1 } ) : undef; -if ( not defined $record ) { +if ( !$record ) { # biblionumber invalid -> report and exit $template->param( unknownbiblionumber => 1, biblionumber => $biblionumber diff --git a/catalogue/export.pl b/catalogue/export.pl index eb54b3683b..b9fea04dfc 100755 --- a/catalogue/export.pl +++ b/catalogue/export.pl @@ -27,7 +27,7 @@ if ($op eq "export") { my $file_pre = "bib-"; my $biblio = Koha::Biblios->find($biblionumber); - my $marc = $biblio->metadata->record({ embed_items => 1 }); + my $marc = $biblio->metadata_record( { embed_items => 1 } ); my $metadata_extractor = $biblio->metadata_extractor; diff --git a/misc/batchRebuildItemsTables.pl b/misc/batchRebuildItemsTables.pl index 220876a8b8..7c369c1764 100755 --- a/misc/batchRebuildItemsTables.pl +++ b/misc/batchRebuildItemsTables.pl @@ -74,7 +74,7 @@ while ( my ( $biblionumber, $biblioitemnumber, $frameworkcode ) = $sth->fetchrow $count++; warn $count unless $count % 1000; my $biblio = Koha::Biblios->find($biblionumber); - my $record = $biblio->metadata->record({ embed_items => 1 }); + my $record = $biblio->metadata_record( { embed_items => 1 } ); unless ($record) { push @errors, "bad record biblionumber $biblionumber"; next; } diff --git a/misc/migration_tools/rebuild_zebra.pl b/misc/migration_tools/rebuild_zebra.pl index eccb9349a4..2598f5d7f4 100755 --- a/misc/migration_tools/rebuild_zebra.pl +++ b/misc/migration_tools/rebuild_zebra.pl @@ -697,7 +697,7 @@ sub get_raw_marc_record { if ($record_type eq 'biblio') { eval { my $biblio = Koha::Biblios->find($record_number); - $marc = $biblio->metadata->record({ embed_items => 1 }); + $marc = $biblio->metadata_record( { embed_items => 1 } ); }; if ($@ || !$marc) { # here we do warn since catching an exception diff --git a/opac/opac-downloadcart.pl b/opac/opac-downloadcart.pl index 1f4b20d1fb..db103bacba 100755 --- a/opac/opac-downloadcart.pl +++ b/opac/opac-downloadcart.pl @@ -77,10 +77,10 @@ if ($bib_list && $format) { foreach my $biblionumber (@bibs) { my $biblio = Koha::Biblios->find($biblionumber); - my $record = $biblio->metadata->record( + my $record = $biblio->metadata_record( { embed_items => 1, - opac => 1, + interface => 'opac', patron => $patron, } ); diff --git a/opac/opac-downloadshelf.pl b/opac/opac-downloadshelf.pl index ea81c1e7ce..0d6f9e88a0 100755 --- a/opac/opac-downloadshelf.pl +++ b/opac/opac-downloadshelf.pl @@ -90,10 +90,10 @@ if ( $shelf and $shelf->can_be_viewed( $borrowernumber ) ) { my $biblionumber = $content->biblionumber; my $biblio = Koha::Biblios->find($biblionumber); - my $record = $biblio->metadata->record( + my $record = $biblio->metadata_record( { embed_items => 1, - opac => 1, + interface => 'opac', patron => $patron, } ); diff --git a/opac/opac-export.pl b/opac/opac-export.pl index f5c363fc20..7eb2f3ae85 100755 --- a/opac/opac-export.pl +++ b/opac/opac-export.pl @@ -70,10 +70,10 @@ if ($userenv) { my $include_items = ($format =~ /bibtex/) ? 0 : 1; my $biblio = Koha::Biblios->find($biblionumber); my $marc = $biblio - ? $biblio->metadata->record( + ? $biblio->metadata_record( { embed_items => 1, - opac => 1, + interface => 'opac', patron => $patron, } ) diff --git a/opac/opac-sendbasket.pl b/opac/opac-sendbasket.pl index e7bd2e42fa..0dad061093 100755 --- a/opac/opac-sendbasket.pl +++ b/opac/opac-sendbasket.pl @@ -54,7 +54,7 @@ if ( $op eq "cud-send" && $email_add && $user_email ) { foreach my $bib (@bibs) { $bib = int($bib); my $biblio = Koha::Biblios->find($bib) or next; - $iso2709 .= $biblio->metadata->record->as_usmarc(); + $iso2709 .= $biblio->metadata_record( { interface => 'opac' } )->as_usmarc(); } if ( !defined $iso2709 ) { diff --git a/opac/opac-sendshelf.pl b/opac/opac-sendshelf.pl index 6df65b7e92..0a03d23f41 100755 --- a/opac/opac-sendshelf.pl +++ b/opac/opac-sendshelf.pl @@ -71,7 +71,7 @@ if ( $shelf and $shelf->can_be_viewed($borrowernumber) ) { while ( my $content = $contents->next ) { push @biblionumbers, $content->biblionumber; my $biblio = Koha::Biblios->find( $content->biblionumber ); - $iso2709 .= $biblio->metadata->record->as_usmarc(); + $iso2709 .= $biblio->metadata_record( { interface => 'opac' } )->as_usmarc(); } if ( !defined $iso2709 ) { diff --git a/opac/opac-tags.pl b/opac/opac-tags.pl index fb10be5029..e9333dee16 100755 --- a/opac/opac-tags.pl +++ b/opac/opac-tags.pl @@ -254,10 +254,10 @@ if ($loggedinuser) { foreach my $tag (@$my_tags) { $tag->{visible} = 0; my $biblio = Koha::Biblios->find( $tag->{biblionumber} ); - my $record = $biblio->metadata->record( + my $record = $biblio->metadata_record( { embed_items => 1, - opac => 1, + interface => 'opac', patron => $patron, } ); diff --git a/opac/opac-user.pl b/opac/opac-user.pl index cc5844c67b..34e9334e54 100755 --- a/opac/opac-user.pl +++ b/opac/opac-user.pl @@ -293,7 +293,13 @@ if ( $pending_checkouts->count ) { # Useless test || C4::Context->preference('SyndeticsEnabled') || C4::Context->preference('SyndeticsCoverImages') ) { - my $marcrecord = $biblio_object->metadata->record( { embed_items => 1, opac => 1, patron => $patron, } ); + my $marcrecord = $biblio_object->metadata_record( + { + embed_items => 1, + interface => 'opac', + patron => $patron + } + ); $issue->{normalized_upc} = GetNormalizedUPC( $marcrecord, C4::Context->preference('marcflavour') ); $issue->{normalized_oclc} = GetNormalizedOCLCNumber( $marcrecord, C4::Context->preference('marcflavour') ); } diff --git a/svc/bib b/svc/bib index da96e01f9a..2353f01927 100755 --- a/svc/bib +++ b/svc/bib @@ -64,14 +64,13 @@ if ($query->request_method eq "GET") { exit 0; sub fetch_bib { - my $query = shift; - my $biblionumber = shift; - my $biblio = Koha::Biblios->find( $biblionumber ); + my ( $query, $biblionumber ) = @_; + my $biblio = Koha::Biblios->find($biblionumber); my $record; my $exception; my $invalid_metadata = 0; if ( defined $biblio ) { - eval { $record = $biblio->metadata->record( { embed_items => scalar $query->param('items') } ) }; + eval { $record = $biblio->metadata_record( { embed_items => scalar $query->param('items') } ) }; if ($@) { $exception = $@; $exception->rethrow unless ( $exception->isa('Koha::Exceptions::Metadata::Invalid') ); @@ -126,7 +125,7 @@ sub update_bib { C4::Biblio::ModBiblio( $record, $biblionumber, $frameworkcode ); my $biblio = Koha::Biblios->find( $biblionumber ); - my $new_record = $biblio->metadata->record({ embed_items => scalar $query->url_param('items') }); + my $new_record = $biblio->metadata_record( { embed_items => scalar $query->url_param('items') } ); $result->{'status'} = "ok"; $result->{'biblionumber'} = $biblionumber; diff --git a/svc/new_bib b/svc/new_bib index 3ce32f6b7c..18837ac853 100755 --- a/svc/new_bib +++ b/svc/new_bib @@ -87,8 +87,8 @@ sub add_bib { } } - $biblio = Koha::Biblios->find( $biblionumber ); - $new_record = $biblio->metadata->record({ embed_items => scalar $query->url_param('items') }); + $biblio = Koha::Biblios->find($biblionumber); + $new_record = $biblio->metadata_record( { embed_items => scalar $query->url_param('items') } ); $result->{'status'} = "ok"; $result->{'biblionumber'} = $biblionumber; my $xml = $new_record->as_xml_record(); diff --git a/tools/showdiffmarc.pl b/tools/showdiffmarc.pl index f981342a83..d925975e4d 100755 --- a/tools/showdiffmarc.pl +++ b/tools/showdiffmarc.pl @@ -62,7 +62,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( if ( $type eq 'biblio' ) { my $biblio = Koha::Biblios->find( $recordid ); - $record = $biblio->metadata->record({ embed_items => 1 }); + $record = $biblio->metadata_record( { embed_items => 1 } ); $recordTitle = $biblio->title; } elsif ( $type eq 'auth' ) { diff --git a/virtualshelves/downloadshelf.pl b/virtualshelves/downloadshelf.pl index 1138b530ce..a81338ac66 100755 --- a/virtualshelves/downloadshelf.pl +++ b/virtualshelves/downloadshelf.pl @@ -69,7 +69,7 @@ if ($shelfid && $format) { while ( my $content = $contents->next ) { my $biblionumber = $content->biblionumber; my $biblio = Koha::Biblios->find($biblionumber); - my $record = $biblio->metadata->record({ embed_items => 1 }); + my $record = $biblio->metadata_record( { embed_items => 1 } ); if ($format eq 'iso2709') { $output .= $record->as_usmarc(); } diff --git a/virtualshelves/sendshelf.pl b/virtualshelves/sendshelf.pl index 9397c52a1d..84e7ca401e 100755 --- a/virtualshelves/sendshelf.pl +++ b/virtualshelves/sendshelf.pl @@ -70,7 +70,7 @@ if ( $to_address && $op eq 'cud-send' ) { while ( my $content = $contents->next ) { push @biblionumbers, $content->biblionumber; my $biblio = Koha::Biblios->find( $content->biblionumber ); - $iso2709 .= $biblio->metadata->record->as_usmarc(); + $iso2709 .= $biblio->metadata_record()->as_usmarc(); } if ( !defined $iso2709 ) { -- 2.39.5