Bug 17089: Improve errors handling
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 9 Aug 2016 16:06:56 +0000 (17:06 +0100)
committerKyle M Hall <kyle@bywatersolutions.com>
Fri, 9 Sep 2016 09:31:30 +0000 (09:31 +0000)
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
opac/opac-ratings-ajax.pl
opac/opac-ratings.pl

index 672e7f3..25675ad 100755 (executable)
@@ -72,7 +72,8 @@ my $rating;
 $rating_value //= '';
 
 if ( $rating_value eq '' ) {
-    Koha::Ratings->find( { biblionumber => $biblionumber, borrowernumber => $loggedinuser } )->delete;
+    my $rating = Koha::Ratings->find( { biblionumber => $biblionumber, borrowernumber => $loggedinuser } );
+    $rating->delete if $rating;
 }
 
 elsif ( $rating_value and !$rating_old_value ) {
@@ -80,7 +81,8 @@ elsif ( $rating_value and !$rating_old_value ) {
 }
 
 elsif ( $rating_value ne $rating_old_value ) {
-    Koha::Ratings->find( { biblionumber => $biblionumber, borrowernumber => $loggedinuser })->rating_value($rating_value)->store;
+    my $rating = Koha::Ratings->find( { biblionumber => $biblionumber, borrowernumber => $loggedinuser });
+    $rating->rating_value($rating_value)->store if $rating
 }
 
 my $ratings = Koha::Ratings->search({ biblionumber => $biblionumber });
@@ -91,7 +93,7 @@ my %js_reply = (
     rating_total   => $ratings->count,
     rating_avg     => $avg,
     rating_avg_int => sprintf("%.0f", $avg),
-    rating_value   => $my_rating->rating_value,
+    rating_value   => $my_rating ? $my_rating->rating_value : undef,
     auth_status    => $auth_status,
 
 );
index d936b13..1951a2d 100755 (executable)
@@ -53,10 +53,12 @@ unless ( $biblionumber and $rating_value ) {
 }
 
 if ( !$rating_old_value ) {
-    Koha::Rating->new( { biblionumber => $biblionumber, borrowernumber => $loggedinuser, rating_value => $rating_value, })->store;
+    my $rating = Koha::Rating->new( { biblionumber => $biblionumber, borrowernumber => $loggedinuser, rating_value => $rating_value, });
+    $rating->store if $rating;
 }
 else {
-    Koha::Ratings->find( { biblionumber => $biblionumber, borrowernumber => $loggedinuser })->rating_value($rating_value)->store;
+    my $rating = Koha::Ratings->find( { biblionumber => $biblionumber, borrowernumber => $loggedinuser });
+    $rating->rating_value($rating_value)->store if $rating;
 }
 print $query->redirect(
     "/cgi-bin/koha/opac-detail.pl?biblionumber=$biblionumber");