Bug 17089: Improve errors handling

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>
This commit is contained in:
Jonathan Druart 2016-08-09 17:06:56 +01:00 committed by Kyle M Hall
parent e4136c2b3a
commit 09d00bf040
2 changed files with 9 additions and 5 deletions

View File

@ -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,
);

View File

@ -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");