From 12882d824ec5e7eab61c67afff4b43dfdde6f9fe Mon Sep 17 00:00:00 2001 From: Victor Grousset Date: Fri, 15 Dec 2017 15:22:24 +0100 Subject: [PATCH] Bug 19808: Handle deleted reviewers gracefully - opac-detail And other display issues when the patron was NULL. Which allows to keep the review even if it has no patron. Because it might be useful. For example when disconnected, the borrowernumber is null. So the comments from deleted patrons were displayed as if the disconnected user wrote them. So it had the edit button... And fix borrowernumber not being passed to the template when OpacStarRatings was false. Test plan 1. Log in as a patron 2. Leave a comment/review on a record 3. Librarian: approve this comment 4. Delete the borrower 5. See the record (opac:/cgi-bin/koha/opac-detail.pl?biblionumber=RELEVANT_BIB_NUMBER) 6. Then you should see an error 7. Apply this patch 8. Refresh the page 9. Then you should see the record page with the comment Signed-off-by: Mark Tompsett Signed-off-by: Jon Knight Signed-off-by: Kyle M Hall Signed-off-by: Jonathan Druart --- .../bootstrap/en/modules/opac-detail.tt | 20 ++++++++++--------- opac/opac-detail.pl | 14 +++++-------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt index e87d152c19..5fcb9f3714 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt @@ -905,7 +905,7 @@
[% IF ( reviews ) %] [% FOREACH review IN reviews %] - [% IF review.borrowernumber == borrowernumber %] + [% IF borrowernumber && review.borrowernumber == borrowernumber %]
[% IF ( review.avatarurl ) %] @@ -925,26 +925,28 @@
[% ELSE %]
- [% IF ( ShowReviewer != "none" ) %] + [% IF ( ShowReviewer != "none" && review.patron) %] + [% IF ( review.avatarurl ) %] [% END %] [% SWITCH ShowReviewer %] [% CASE 'full' %] -
Comment by [% review.title %] [% review.firstname %] [% review.surname %]
+
Comment by [% review.patron.title %] [% review.patron.firstname %] [% review.patron.surname %]
[% CASE 'first' %] -
Comment by [% review.firstname %]
+
Comment by [% review.patron.firstname %]
[% CASE 'surname' %] -
Comment by [% review.surname %]
+
Comment by [% review.patron.surname %]
[% CASE 'firstandinitial' %] -
Comment by [% review.firstname %] [% review.surname|truncate(2,'.') %]
+
Comment by [% review.patron.firstname %] [% review.patron.surname|truncate(2,'.') %]
[% CASE 'username' %] -
Comment by [% review.userid %]
+
Comment by [% review.patron.userid %]
[% END %] + [% review.datereviewed | $KohaDates %] - [% ELSIF ( ShowReviewer == "none") %] + [% ELSE %]
Patron comment on [% review.datereviewed | $KohaDates %]
- [% END # / IF ShowReviewer != "none"%] + [% END # / IF ShowReviewer != "none" && review.patron %]

[% FILTER html_break %] [% review.review |html %] diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl index 819e42692f..745c49cd62 100755 --- a/opac/opac-detail.pl +++ b/opac/opac-detail.pl @@ -844,17 +844,12 @@ if ( C4::Context->preference('reviewson') ) { my $patron = Koha::Patrons->find( $review->{borrowernumber} ); # setting some borrower info into this hash - $review->{title} = $patron->title; - $review->{surname} = $patron->surname; - $review->{firstname} = $patron->firstname; - if ( $libravatar_enabled and $patron->email ) { + $review->{patron} = $patron; + if ( $libravatar_enabled and $patron and $patron->email ) { $review->{avatarurl} = libravatar_url( email => $patron->email, https => $ENV{HTTPS} ); } - $review->{userid} = $patron->userid; - $review->{cardnumber} = $patron->cardnumber; - if ( $patron->borrowernumber eq $borrowernumber ) { - $review->{your_comment} = 1; + if ( $patron and $patron->borrowernumber eq $borrowernumber ) { $loggedincommenter = 1; } } @@ -1102,13 +1097,14 @@ if (C4::Context->preference("OPACURLOpenInNewWindow")) { $template->param(covernewwindow => 'false'); } +$template->param(borrowernumber => $borrowernumber); + if ( C4::Context->preference('OpacStarRatings') !~ /disable/ ) { my $ratings = Koha::Ratings->search({ biblionumber => $biblionumber }); my $my_rating = $borrowernumber ? $ratings->search({ borrowernumber => $borrowernumber })->next : undef; $template->param( ratings => $ratings, my_rating => $my_rating, - borrowernumber => $borrowernumber ); } -- 2.39.5