From 2896077b193de63c5ddb0e2a9334939677b3fe34 Mon Sep 17 00:00:00 2001 From: Aleisha Amohia Date: Mon, 27 Feb 2023 00:26:09 +0000 Subject: [PATCH] Bug 3150: (follow-up) Make subs to get host/related parts for notices Signed-off-by: Katrin Fischer Signed-off-by: Kyle M Hall Signed-off-by: Tomas Cohen Arazi --- Koha/Biblio.pm | 32 +++++++++++++++++++ .../bug_3150_-_add_LIST_and_CART_notices.pl | 4 +-- .../mysql/en/mandatory/sample_notices.yml | 4 +-- t/db_dependent/Koha/Biblio/host_record.t | 8 ++++- 4 files changed, 43 insertions(+), 5 deletions(-) diff --git a/Koha/Biblio.pm b/Koha/Biblio.pm index d94bde986c..67ec343cc4 100644 --- a/Koha/Biblio.pm +++ b/Koha/Biblio.pm @@ -1322,6 +1322,38 @@ sub get_marc_host { } } +=head3 get_marc_host_only + + my $host = $biblio->get_marc_host_only; + +Return host only + +=cut + +sub get_marc_host_only { + my ($self) = @_; + + my ( $host, $relatedparts ) = $self->get_marc_host; + + return $host; +} + +=head3 get_marc_relatedparts_only + + my $relatedparts = $biblio->get_marc_relatedparts_only; + +Return related parts only + +=cut + +sub get_marc_relatedparts_only { + my ($self) = @_; + + my ( $host, $relatedparts ) = $self->get_marc_host; + + return $relatedparts; +} + =head3 recalls my $recalls = $biblio->recalls; diff --git a/installer/data/mysql/atomicupdate/bug_3150_-_add_LIST_and_CART_notices.pl b/installer/data/mysql/atomicupdate/bug_3150_-_add_LIST_and_CART_notices.pl index d06071af8f..c6525f7f10 100755 --- a/installer/data/mysql/atomicupdate/bug_3150_-_add_LIST_and_CART_notices.pl +++ b/installer/data/mysql/atomicupdate/bug_3150_-_add_LIST_and_CART_notices.pl @@ -28,7 +28,7 @@ Please note that the attached file is a MARC bibliographic records file which ca [% IF ( biblio.unititle ) %]Unified title: [% biblio.unititle | html %]
[% END %] [% IF ( biblio.serial ) %]Serial: [% biblio.serial | html %]
[% END %] [% IF ( biblioitem.lccn ) %]LCCN: [% biblioitem.lccn | html %]
[% END %] -[% IF ( biblio.get_marc_host ) %]In: [% FOREACH entry IN biblio.get_marc_host %][% entry.title | html %][% IF ( entry.subtitle ) %][% FOREACH subtitle IN entry.subtitle.split(' | ') %][% subtitle | html %][% END %][% END %][% entry.part_number | html %] [% entry.part_name | html %]
[% END %][% END %] +[% IF ( biblio.get_marc_host_only ) %]In: [% FOREACH entry IN biblio.get_marc_host_only %][% entry.title | html %][% IF ( entry.subtitle ) %][% FOREACH subtitle IN entry.subtitle.split(' | ') %][% subtitle | html %][% END %][% END %][% entry.part_number | html %] [% entry.part_name | html %]
[% END %] [% biblio.get_marc_relatedparts_only %][% END %] [% IF ( biblioitem.url ) %]URL: [% biblioitem.url | html %]
[% END %] View in online catalog [% IF ( biblio.items.count > 0 ) %]
Items:
    [% FOREACH item IN biblio.items %]
  • [% Branches.GetName( item.holdingbranch ) | html %] @@ -56,7 +56,7 @@ Please note that the attached file is a MARC bibliographic records file which ca [% IF ( biblio.unititle ) %]Unified title: [% biblio.unititle | html %]
    [% END %] [% IF ( biblio.serial ) %]Serial: [% biblio.serial | html %]
    [% END %] [% IF ( biblioitem.lccn ) %]LCCN: [% biblioitem.lccn | html %]
    [% END %] -[% IF ( biblio.get_marc_host ) %]In: [% FOREACH entry IN biblio.get_marc_host %][% entry.title | html %][% IF ( entry.subtitle ) %][% FOREACH subtitle IN entry.subtitle.split(' | ') %][% subtitle | html %][% END %][% END %][% entry.part_number | html %] [% entry.part_name | html %]
    [% END %][% END %] +[% IF ( biblio.get_marc_host_only ) %]In: [% FOREACH entry IN biblio.get_marc_host_only %][% entry.title | html %][% IF ( entry.subtitle ) %][% FOREACH subtitle IN entry.subtitle.split(' | ') %][% subtitle | html %][% END %][% END %][% entry.part_number | html %] [% entry.part_name | html %]
    [% END %] [% biblio.get_marc_relatedparts_only %][% END %] [% IF ( biblioitem.url ) %]URL: [% biblioitem.url | html %]
    [% END %] View in online catalog [% IF ( biblio.items.count > 0 ) %]
    Items:
      [% FOREACH item IN biblio.items %]
    • [% Branches.GetName( item.holdingbranch ) | html %] diff --git a/installer/data/mysql/en/mandatory/sample_notices.yml b/installer/data/mysql/en/mandatory/sample_notices.yml index e77f25fc6e..cfe4f8c0f9 100644 --- a/installer/data/mysql/en/mandatory/sample_notices.yml +++ b/installer/data/mysql/en/mandatory/sample_notices.yml @@ -2318,7 +2318,7 @@ tables: - "[% IF ( biblio.unititle ) %]Unified title: [% biblio.unititle | html %]
      [% END %]" - "[% IF ( biblio.serial ) %]Serial: [% biblio.serial | html %]
      [% END %]" - "[% IF ( biblioitem.lccn ) %]LCCN: [% biblioitem.lccn | html %]
      [% END %]" - - "[% IF ( biblio.get_marc_host ) %]In: [% FOREACH entry IN biblio.get_marc_host %][% entry.title | html %][% IF ( entry.subtitle ) %][% FOREACH subtitle IN entry.subtitle.split(' | ') %][% subtitle | html %][% END %][% END %][% entry.part_number | html %] [% entry.part_name | html %]
      [% END %][% END %]" + - "[% IF ( biblio.get_marc_host_only ) %]In: [% FOREACH entry IN biblio.get_marc_host_only %][% entry.title | html %][% IF ( entry.subtitle ) %][% FOREACH subtitle IN entry.subtitle.split(' | ') %][% subtitle | html %][% END %][% END %][% entry.part_number | html %] [% entry.part_name | html %]
      [% END %] [% biblio.get_marc_relatedparts_only %][% END %]" - "[% IF ( biblioitem.url ) %]URL: [% biblioitem.url | html %]
      [% END %]" - "[View in online catalog" - "[% IF ( biblio.items.count > 0 ) %]
      Items:
        [% FOREACH item IN biblio.items %]
      • [% Branches.GetName( item.holdingbranch ) | html %]" @@ -2353,7 +2353,7 @@ tables: - "[% IF ( biblio.unititle ) %]Unified title: [% biblio.unititle | html %]
        [% END %]" - "[% IF ( biblio.serial ) %]Serial: [% biblio.serial | html %]
        [% END %]" - "[% IF ( biblioitem.lccn ) %]LCCN: [% biblioitem.lccn | html %]
        [% END %]" - - "[% IF ( biblio.get_marc_host ) %]In: [% FOREACH entry IN biblio.get_marc_host %][% entry.title | html %][% IF ( entry.subtitle ) %][% FOREACH subtitle IN entry.subtitle.split(' | ') %][% subtitle | html %][% END %][% END %][% entry.part_number | html %] [% entry.part_name | html %]
        [% END %][% END %]" + - "[% IF ( biblio.get_marc_host_only ) %]In: [% FOREACH entry IN biblio.get_marc_host_only %][% entry.title | html %][% IF ( entry.subtitle ) %][% FOREACH subtitle IN entry.subtitle.split(' | ') %][% subtitle | html %][% END %][% END %][% entry.part_number | html %] [% entry.part_name | html %]
        [% END %] [% biblio.get_marc_relatedparts_only %][% END %]" - "[% IF ( biblioitem.url ) %]URL: [% biblioitem.url | html %]
        [% END %]" - "View in online catalog" - "[% IF ( biblio.items.count > 0 ) %]
        Items:
          [% FOREACH item IN biblio.items %]
        • [% Branches.GetName( item.holdingbranch ) | html %]" diff --git a/t/db_dependent/Koha/Biblio/host_record.t b/t/db_dependent/Koha/Biblio/host_record.t index 4094a102cb..aab1c36d02 100755 --- a/t/db_dependent/Koha/Biblio/host_record.t +++ b/t/db_dependent/Koha/Biblio/host_record.t @@ -36,7 +36,7 @@ $schema->storage->txn_begin; our $builder = t::lib::TestBuilder->new; subtest 'get_marc_host' => sub { - plan tests => 15; + plan tests => 17; t::lib::Mocks::mock_preference( 'marcflavour', 'MARC21' ); t::lib::Mocks::mock_preference( 'MARCOrgCode', 'xyz' ); @@ -92,6 +92,12 @@ subtest 'get_marc_host' => sub { ( $host, $relatedparts, $info ) = $bib1->get_marc_host; is( $host, undef, 'No Koha Biblio object returned with no $w' ); is( $info, "title, relpart", '773$atg returned when no $w' ); + + my $host_only = $bib1->get_marc_host_only; + is_deeply( $host_only, $host, "Host only retrieved successfully" ); + my $relatedparts_only = $bib1->get_marc_relatedparts_only; + is_deeply( $relatedparts_only, $relatedparts, "Related parts only retrieved successfully" ); + $marc->field('773')->delete_subfield( code => 't' ); # restore # Add second 773 -- 2.39.5