Bug 20799: Add link from biblio to ILL detail view
authorMagnus Enger <magnus@libriotech.no>
Mon, 9 Dec 2019 16:48:35 +0000 (17:48 +0100)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Fri, 24 Jul 2020 12:11:53 +0000 (14:11 +0200)
Some ILL systems (e.g. Libris in Sweden) require a link between
a biblio and an ILL request. When such a link exists it is nice
to display an actual link from the biblio detail view to the
ILL request detail view. This patch adds such a link. For users
without ILL privileges, the requests should still show, but not
be clickable links.

To test:
- Make sure you have a couple of ILL requests created with the
  FreeForm backend. (FreeForm does not let you tie a request to
  a biblio through the UI, but we will add connections directly
  in the database.) Lets assume these have illrequest_id's a and b.
- Make sure you have a record, let's call the biblionumber x.
- Apply the patch and make sure there are no changes in the biblio
  detail view of biblionumber x.
- Log into the database and connect the biblio to the first request:
  UPDATE illrequests SET biblio_id = x where illrequest_id = a;
- Check that the biblio detail view now says this:
  "ILL requests: Request a"
- Verify that the "Request a" part is a working link to the detail
  view of ILL request a.
- Do this in the database:
  UPDATE illrequests SET biblio_id = x where illrequest_id = b;
- Check that the biblio detail view now says this:
  "ILL requests: Request a, Request b"
- Verify the links work as expected.
- Log in as a staff user and check that the requests are still
  listed, but not displayed as clickable links.
- Sign off

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

catalogue/detail.pl
koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt

index c968e33..5e10954 100755 (executable)
@@ -43,6 +43,7 @@ use C4::CourseReserves qw(GetItemCourseReservesInfo);
 use C4::Acquisition qw(GetOrdersByBiblionumber);
 use Koha::AuthorisedValues;
 use Koha::Biblios;
+use Koha::Illrequests;
 use Koha::Items;
 use Koha::ItemTypes;
 use Koha::Patrons;
@@ -538,6 +539,10 @@ if (C4::Context->preference('TagsEnabled') and $tag_quantity = C4::Context->pref
 my $holds = $biblio->holds;
 $template->param( holdcount => $holds->count );
 
+# Check if there are any ILL requests connected to the biblio
+my $illrequests = Koha::Illrequests->search({ biblio_id => $biblionumber });
+$template->param( illrequests => $illrequests );
+
 my $StaffDetailItemSelection = C4::Context->preference('StaffDetailItemSelection');
 if ($StaffDetailItemSelection) {
     # Only enable item selection if user can execute at least one action
index 05c18f3..799edb7 100644 (file)
             </span>
         [% END %]
 
+        [% IF ( illrequests ) %]
+            <span class="results_summary">
+                <span class="label">ILL requests:</span>
+                [% IF CAN_user_ill %]
+                    [% FOREACH ill IN illrequests %]
+                        <a href="/cgi-bin/koha/ill/ill-requests.pl?method=illview&illrequest_id=[% ill.illrequest_id | uri %]">Request [% ill.illrequest_id | html %]</a>[% IF ! loop.last %], [% END %]
+                    [% END %]
+                [% ELSE %]
+                    [% FOREACH ill IN illrequests %]
+                        <span>Request [% ill.illrequest_id | html %]</span>[% IF ! loop.last %], [% END %]
+                    [% END %]
+                [% END %]
+            </span>
+        [% END %]
+
         [% IF ( article_requests_count = Biblio.ArticleRequestsActiveCount( biblionumber ) ) %]
             <span class="results_summary">
                 <span class="label">Article requests:</span>