From c02cff9027ea0be5ffcc00e1fe1e92fbd525a82a Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Mon, 26 Apr 2021 11:10:11 +0200 Subject: [PATCH] Bug 28213: Prevent crash if patron or club deleted after search to hold Deleting a patron or patron club causes server error on searching. To recreate: - create a club template - create a club - enroll a patron in the club - from the clubs page, select Search To Hold for your club - do a search, see that it says "Hold for [club name]" in your search results page - go back to the clubs page and delete your club - try to perform a search => Without this patch you get "Can't call method "name" on an undefined value at /kohadevbox/koha/catalogue/search.pl line 207" Same when placing a hold for a patron --- catalogue/search.pl | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/catalogue/search.pl b/catalogue/search.pl index 1419759c851..4ce6b4f9ed7 100755 --- a/catalogue/search.pl +++ b/catalogue/search.pl @@ -194,20 +194,24 @@ if (C4::Context->preference("marcflavour") eq "UNIMARC" ) { if($cgi->cookie("holdfor")){ my $holdfor_patron = Koha::Patrons->find( $cgi->cookie("holdfor") ); - $template->param( - holdfor => $cgi->cookie("holdfor"), - holdfor_surname => $holdfor_patron->surname, - holdfor_firstname => $holdfor_patron->firstname, - holdfor_cardnumber => $holdfor_patron->cardnumber, - ); + if ( $holdfor_patron ) { # may have been deleted in the meanwhile + $template->param( + holdfor => $cgi->cookie("holdfor"), + holdfor_surname => $holdfor_patron->surname, + holdfor_firstname => $holdfor_patron->firstname, + holdfor_cardnumber => $holdfor_patron->cardnumber, + ); + } } if($cgi->cookie("holdforclub")){ my $holdfor_club = Koha::Clubs->find( $cgi->cookie("holdforclub") ); - $template->param( - holdforclub => $cgi->cookie("holdforclub"), - holdforclub_name => $holdfor_club->name, - ); + if ( $holdfor_club ) { # May have been deleted in the meanwhile + $template->param( + holdforclub => $cgi->cookie("holdforclub"), + holdforclub_name => $holdfor_club->name, + ); + } } if($cgi->cookie("searchToOrder")){ -- 2.20.1