Bug 3150: (follow-up) Make sure host information displays for unlinked records
authorKatrin Fischer <katrin.fischer@bsz-bw.de>
Tue, 7 Mar 2023 17:51:09 +0000 (17:51 +0000)
committerTomas Cohen Arazi <tomascohen@theke.io>
Mon, 27 Mar 2023 10:49:44 +0000 (12:49 +0200)
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 <katrin.fischer@bsz-bw.de>
Signed-off-by: Aleisha Amohia <aleishaamohia@hotmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Koha/Biblio.pm
installer/data/mysql/atomicupdate/bug_3150_-_add_LIST_and_CART_notices.pl
installer/data/mysql/en/mandatory/sample_notices.yml
t/db_dependent/Koha/Biblio/host_record.t

index 67ec343..f73fd72 100644 (file)
@@ -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;
index c6525f7..f13178f 100755 (executable)
@@ -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,<br><br>
 [% borrower.firstname | html %] [% borrower.surname | html %] sent you a list from our online catalog called: [% listname | html %].<br>
 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.<br>
@@ -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 %]<br>[% END %]
 [% IF ( biblio.serial ) %]Serial: [% biblio.serial | html %]<br>[% END %]
 [% IF ( biblioitem.lccn ) %]LCCN: [% biblioitem.lccn | html %]<br>[% 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 %]<br>[% 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 %]<br>[% END %]
 [% IF ( biblioitem.url ) %]URL: [% biblioitem.url | html %]<br>[% END %]
 <a href='[% Koha.Preference('OpacBaseUrl') %]/cgi-bin/koha/opac-detail.pl?biblionumber=[% biblio.biblionumber | html %]'>View in online catalog</a>
 [% IF ( biblio.items.count > 0 ) %]<br>Items: <ul>[% FOREACH item IN biblio.items %]<li>[% 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,<br><br>
 [% borrower.firstname | html %] [% borrower.surname | html %] sent you a cart from our online catalog.<br>
 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.<br>
@@ -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 %]<br>[% END %]
 [% IF ( biblio.serial ) %]Serial: [% biblio.serial | html %]<br>[% END %]
 [% IF ( biblioitem.lccn ) %]LCCN: [% biblioitem.lccn | html %]<br>[% 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 %]<br>[% 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 %]<br>[% END %]
 [% IF ( biblioitem.url ) %]URL: [% biblioitem.url | html %]<br>[% END %]
 <a href='[% Koha.Preference('OpacBaseUrl') %]/cgi-bin/koha/opac-detail.pl?biblionumber=[% biblio.biblionumber | html %]'>View in online catalog</a>
 [% IF ( biblio.items.count > 0 ) %]<br>Items: <ul>[% FOREACH item IN biblio.items %]<li>[% Branches.GetName( item.holdingbranch ) | html %]
index cfe4f8c..e73f6b8 100644 (file)
@@ -2302,6 +2302,7 @@ tables:
             - "[%- USE Branches -%]"
             - "[%- USE AuthorisedValues -%]"
             - "[%- USE Koha -%]"
+            - "[%- PROCESS 'html_helpers.inc' -%]"
             - "Hi,<br><br>"
             - "[% borrower.firstname | html %] [% borrower.surname | html %] sent you a list from our online catalog called: [% listname | html %].<br>"
             - "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.<br>"
@@ -2318,7 +2319,7 @@ tables:
             - "[% IF ( biblio.unititle ) %]Unified title: [% biblio.unititle | html %]<br>[% END %]"
             - "[% IF ( biblio.serial ) %]Serial: [% biblio.serial | html %]<br>[% END %]"
             - "[% IF ( biblioitem.lccn ) %]LCCN: [% biblioitem.lccn | html %]<br>[% 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 %]<br>[% 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 %]<br>[% END %]"
             - "[% IF ( biblioitem.url ) %]URL: [% biblioitem.url | html %]<br>[% END %]"
             - "[<a href='[% Koha.Preference('OpacBaseUrl') %]/cgi-bin/koha/opac-detail.pl?biblionumber=[% biblio.biblionumber | html %]'>View in online catalog</a>"
             - "[% IF ( biblio.items.count > 0 ) %]<br>Items: <ul>[% FOREACH item IN biblio.items %]<li>[% Branches.GetName( item.holdingbranch ) | html %]"
@@ -2337,6 +2338,7 @@ tables:
             - "[%- USE Branches -%]"
             - "[%- USE AuthorisedValues -%]"
             - "[%- USE Koha -%]"
+            - "[%- PROCESS 'html_helpers.inc' -%]"
             - "Hi,<br><br>"
             - "[% borrower.firstname | html %] [% borrower.surname | html %] sent you a cart from our online catalog.<br>"
             - "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.<br>"
@@ -2353,7 +2355,7 @@ tables:
             - "[% IF ( biblio.unititle ) %]Unified title: [% biblio.unititle | html %]<br>[% END %]"
             - "[% IF ( biblio.serial ) %]Serial: [% biblio.serial | html %]<br>[% END %]"
             - "[% IF ( biblioitem.lccn ) %]LCCN: [% biblioitem.lccn | html %]<br>[% 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 %]<br>[% 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 %]<br>[% END %]"
             - "[% IF ( biblioitem.url ) %]URL: [% biblioitem.url | html %]<br>[% END %]"
             - "<a href='[% Koha.Preference('OpacBaseUrl') %]/cgi-bin/koha/opac-detail.pl?biblionumber=[% biblio.biblionumber | html %]'>View in online catalog</a>"
             - "[% IF ( biblio.items.count > 0 ) %]<br>Items: <ul>[% FOREACH item IN biblio.items %]<li>[% Branches.GetName( item.holdingbranch ) | html %]"
index aab1c36..c5c5827 100755 (executable)
@@ -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