From c4a3f2f218c36ac812da410157991793a24140a6 Mon Sep 17 00:00:00 2001 From: Katrin Fischer Date: Tue, 7 Mar 2023 17:51:09 +0000 Subject: [PATCH] Bug 3150: (follow-up) Make sure host information displays for unlinked records When the 773 entry is not linked to a record using $w or Easyanalytics we still want to display the information about the source/host item in the emails. To test: 1. Activate the UseControlNumber system preference 2. Search for a record and make sure it has 001 set to some value. 3. Use Edit > Add child record to create an analytical record from this record. 4. Make sure 773$w was filled in and finish by adding any mandatory fields, save. 5. Add this record to your cart. Also add a 773$g with the pages or similar. 6. Create another record with 773$t and $g, but without $w. 7. Also add this record to your cart. 8. Add a few other records to the cart. 9. Host item information (In: ) should display for all entries with 773 in the record. This also makes use of the biblio-title include to display the different parts of the title (245$abnp), if the record is linked. Signed-off-by: Katrin Fischer Signed-off-by: Aleisha Amohia Signed-off-by: Kyle M Hall --- Koha/Biblio.pm | 16 ++++++++++++++++ .../bug_3150_-_add_LIST_and_CART_notices.pl | 6 ++++-- .../data/mysql/en/mandatory/sample_notices.yml | 6 ++++-- t/db_dependent/Koha/Biblio/host_record.t | 4 +++- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/Koha/Biblio.pm b/Koha/Biblio.pm index 67ec343cc4..f73fd7271c 100644 --- a/Koha/Biblio.pm +++ b/Koha/Biblio.pm @@ -1354,6 +1354,22 @@ sub get_marc_relatedparts_only { return $relatedparts; } +=head3 get_marc_hostinfo_only + + my $hostinfo = $biblio->get_marc_hostinfo_only; + +Return host info only + +=cut + +sub get_marc_hostinfo_only { + my ($self) = @_; + + my ( $host, $relatedparts, $hostinfo ) = $self->get_marc_host; + + return $hostinfo; +} + =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 c6525f7f10..f13178f095 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 @@ -11,6 +11,7 @@ return { ('catalogue','LIST','','Send list',1,'Your list: [% listname | html %]',"[%- USE Branches -%] [%- USE AuthorisedValues -%] [%- USE Koha -%] +[%- PROCESS 'html_helpers.inc' -%] Hi,

[% borrower.firstname | html %] [% borrower.surname | html %] sent you a list from our online catalog called: [% listname | html %].
Please note that the attached file is a MARC bibliographic records file which can be imported into personal bibliographic software like EndNote, Reference Manager or ProCite.
@@ -28,7 +29,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_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 ( biblio.get_marc_host_only || biblio.get_marc_hostinfo_only ) %]In: [% IF biblio.get_marc_host_only.biblionumber %][% INCLUDE 'biblio-title.inc' biblio=biblio.get_marc_host_only %] [% biblio.get_marc_relatedparts_only %][% ELSE %][% biblio.get_marc_hostinfo_only %][% END %]
[% 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 %] @@ -39,6 +40,7 @@ Please note that the attached file is a MARC bibliographic records file which ca ('catalogue','CART','','Send cart',1,'Your cart',"[%- USE Branches -%] [%- USE AuthorisedValues -%] [%- USE Koha -%] +[%- PROCESS 'html_helpers.inc' -%] Hi,

    [% borrower.firstname | html %] [% borrower.surname | html %] sent you a cart from our online catalog.
    Please note that the attached file is a MARC bibliographic records file which can be imported into personal bibliographic software like EndNote, Reference Manager or ProCite.
    @@ -56,7 +58,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_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 ( biblio.get_marc_host_only || biblio.get_marc_hostinfo_only ) %]In: [% IF biblio.get_marc_host_only.biblionumber %][% INCLUDE 'biblio-title.inc' biblio=biblio.get_marc_host_only %] [% biblio.get_marc_relatedparts_only %][% ELSE %][% biblio.get_marc_hostinfo_only %][% END %]
    [% 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 c99fb0d0c6..a518ea8e54 100644 --- a/installer/data/mysql/en/mandatory/sample_notices.yml +++ b/installer/data/mysql/en/mandatory/sample_notices.yml @@ -2199,6 +2199,7 @@ tables: - "[%- USE Branches -%]" - "[%- USE AuthorisedValues -%]" - "[%- USE Koha -%]" + - "[%- PROCESS 'html_helpers.inc' -%]" - "Hi,

      " - "[% borrower.firstname | html %] [% borrower.surname | html %] sent you a list from our online catalog called: [% listname | html %].
      " - "Please note that the attached file is a MARC bibliographic records file which can be imported into personal bibliographic software like EndNote, Reference Manager or ProCite.
      " @@ -2215,7 +2216,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_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 ( biblio.get_marc_host_only || biblio.get_marc_hostinfo_only ) %]In: [% IF biblio.get_marc_host_only.biblionumber %][% INCLUDE 'biblio-title.inc' biblio=biblio.get_marc_host_only %] [% biblio.get_marc_relatedparts_only %][% ELSE %][% biblio.get_marc_hostinfo_only %][% END %]
      [% 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 %]" @@ -2234,6 +2235,7 @@ tables: - "[%- USE Branches -%]" - "[%- USE AuthorisedValues -%]" - "[%- USE Koha -%]" + - "[%- PROCESS 'html_helpers.inc' -%]" - "Hi,

        " - "[% borrower.firstname | html %] [% borrower.surname | html %] sent you a cart from our online catalog.
        " - "Please note that the attached file is a MARC bibliographic records file which can be imported into personal bibliographic software like EndNote, Reference Manager or ProCite.
        " @@ -2250,7 +2252,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_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 ( biblio.get_marc_host_only || biblio.get_marc_hostinfo_only ) %]In: [% IF biblio.get_marc_host_only.biblionumber %][% INCLUDE 'biblio-title.inc' biblio=biblio.get_marc_host_only %] [% biblio.get_marc_relatedparts_only %][% ELSE %][% biblio.get_marc_hostinfo_only %][% END %]
        [% 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 aab1c36d02..c5c5827ad1 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 => 17; + plan tests => 18; t::lib::Mocks::mock_preference( 'marcflavour', 'MARC21' ); t::lib::Mocks::mock_preference( 'MARCOrgCode', 'xyz' ); @@ -97,6 +97,8 @@ subtest 'get_marc_host' => sub { 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" ); + my $hostinfo_only = $bib1->get_marc_hostinfo_only; + is_deeply( $hostinfo_only, $info, "Host info only retrieved successfully"); $marc->field('773')->delete_subfield( code => 't' ); # restore -- 2.30.2