From 0776a583aeb4646edd95f3bcc3856ca573077327 Mon Sep 17 00:00:00 2001
From: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Date: Mon, 30 Dec 2024 15:06:27 +0100
Subject: [PATCH] Bug 34971: Fix reopen button display on serial-collection

Patch 1 - (this one) When a user is on serial collection information, the subscription is
not passed to the template, and therefore not passed to serials-toolbar.inc.
This makes sense if collection information is called with a biblionumber
but not if collection information is called with a subscription id.
Consequently, subscription.closed is always false and it is not possible
to reopen a basket.

Patch 2 - User with incorrect permission can close serials, they just
need to access to the page. This is due to serials-toolbar.inc expecting
a variable named "cannotedit", which is provided by
"subscription-details.pl" and not by "serials-collection.pl"

TEST PLAN:
Before applying patches :
1 - log in as a user with only receive_serial permission
2 - Open two pages one on
  /serials-collection.pl?subscriptionid=ID_A, another on
  /serials-collection.pl?subscriptionid=ID_B
3 - On serial A's collection page, check you can close the serial (wrong
  behaviour), note you can close it again but not reopen it
4 - Apply first patch
5 - Check you can reopen the serial (wrong behaviour) keep the page open
6 - On serial B's collection page, close the serial, keep the page open
7 - Apply second patch
8 - On page left open on 3 -, click on close, you are redirected to a
  login page.
8 - Go back to serial A's collection page -> there is no close button
  anymore
9 - On page left open on 4 -, click on reopen, you are redirected to a
  login page
10 - Go back to serial B's collection page -> there is no close button
  anymore
---
 serials/serials-collection.pl | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/serials/serials-collection.pl b/serials/serials-collection.pl
index 025bde21..cd662a58 100755
--- a/serials/serials-collection.pl
+++ b/serials/serials-collection.pl
@@ -189,8 +189,11 @@ foreach my $subscription (@$subscriptiondescs){
   $subscription->{'hasRouting'} = check_routing($subscription->{'subscriptionid'});
 }
 
+my $subscription = $subscriptionid ? Koha::Subscriptions->find( $subscriptionid ) : "";
+
 chop $subscriptionidlist;
 $template->param(
+          subscription => $subscription,
           subscriptionidlist => $subscriptionidlist,
           biblionumber => $biblionumber,
           subscriptions => $subscriptiondescs,
-- 
2.30.2