From 285337eaea68d30de0770952f86f49dddc6a5ff2 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Tue, 26 Mar 2019 13:51:47 +0000 Subject: [PATCH] Bug 11969: Show patrons star rating on their reading history This patch adds display of a user's ratings to their reading history in the OPAC. Also changed: Removed obsolete "border" attribute from the template, and removed obsolete JavaScript include from opac-results.tt To test, apply the patch and rebuild the OPAC CSS. OpacStarRatings should be set to all (results and details). - Log in to the OPAC as a user with a reading history and titles in that history which have ratings. - Under the "your reading history" tab, your ratings should show under rated titles with the date of the rating. - Test also with OpacStarRatings set to a value other than "all." --- .../bootstrap/en/modules/opac-readingrecord.tt | 462 +++++++++++---------- .../opac-tmpl/bootstrap/en/modules/opac-results.tt | 1 - opac/opac-readingrecord.pl | 9 +- 3 files changed, 248 insertions(+), 224 deletions(-) diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt index d03d5185..8ad27d4 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt @@ -1,222 +1,240 @@ -[% USE raw %] -[% USE Koha %] -[% USE KohaDates %] -[% INCLUDE 'doc-head-open.inc' %] -[% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %] catalog › Your checkout history -[% INCLUDE 'doc-head-close.inc' %] -[% BLOCK cssinclude %] - -[% END %] - -[% INCLUDE 'bodytag.inc' bodyid='opac-readingrecord' %] -[% INCLUDE 'masthead.inc' %] -[% SET AdlibrisEnabled = Koha.Preference('AdlibrisCoversEnabled') %] -[% SET AdlibrisURL = Koha.Preference('AdlibrisCoversURL') %] - -[% IF Koha.Preference('AmazonAssocTag') %] - [% AmazonAssocTag = '?tag=' _ Koha.Preference('AmazonAssocTag') %] -[% ELSE %] - [% AmazonAssocTag = '' %] -[% END %] - -
- - -
-
-
- -
-
-
-

Checkout history

- - [% IF READING_RECORD.size == 0 %] - You have never borrowed anything from this library. - [% ELSE %] -
-
-
- [% UNLESS ( limit ) %][% END %] - - -
-
- - [% IF limit %] -

- Showing last 50 items. Show all items -

- [% ELSE %] -

- Showing all items. Show last 50 items -

- [% END %] - - [% IF Koha.Preference( 'OnSiteCheckouts' ) == 1 %] -
- - [% END %] -
- - - - - - - - - - [% IF ( OPACMySummaryHTML ) %] - - [% END %] - - - - [% FOREACH issue IN READING_RECORD %] - - - - - - - - [% IF OPACMySummaryHTML %] - - [% END %] - - [% END # / FOREACH issue %] - -
TypeTitleItem typeCall no.DateLinks
- [% IF issue.onsite_checkout %][% issuetype = 'onsite_checkout' %] - [% ELSE %][% issuetype = 'standard_checkout' %] - [% END %] - [% issuetype | html %] - - [% IF ( AdlibrisEnabled && issue.normalized_isbn ) %] - [% IF issue.BiblioDefaultViewmarc %] - - [% ELSIF issue.BiblioDefaultViewisbd %] - - [% ELSE %] - - [% END %] - Adlibris cover image - [% END %] - [% IF OPACAmazonCoverImages %] - [% IF issue.normalized_isbn %] - - [% ELSE %] - No cover image available - [% END %] - [% END %] - - [% IF GoogleJackets %] - [% IF issue.normalized_isbn %] -
- [% ELSE %] - No cover image available - [% END %] - [% END %] - - [% IF BakerTaylorEnabled %] - [% bt_id = ( issue.normalized_upc || issue.normalized_isbn ) %] - [% IF ( bt_id ) %] - See Baker & Taylor - [% ELSE %] - No cover image available - [% END %] - [% END %] - - [% IF SyndeticsEnabled && SyndeticsCoverImages %] - - [% END %] -
- [% IF issue.BiblioDefaultViewmarc %] - [% issue.title | html %] [% IF issue.subtitle %][% FOREACH subtitl IN issue.subtitle %][% subtitl.subfield | html %][% END %][% END %] - [% ELSIF issue.BiblioDefaultViewisbd %] - [% issue.title | html %] [% IF issue.subtitle %][% FOREACH subtitl IN issue.subtitle %][% subtitl.subfield | html %][% END %][% END %] - [% ELSE %] - [% issue.title | html %] [% IF issue.subtitle %][% FOREACH subtitl IN issue.subtitle %][% subtitl.subfield | html %][% END %][% END %] - [% END %] - [% issue.author | html %] - - [% UNLESS ( noItemTypeImages ) %] - [% IF ( issue.imageurl ) %] - - [% END %] - [% END %] - Item type: - [% issue.translated_description | html %] - Call number: - [% issue.itemcallnumber | html %] - - [% IF issue.returndate %] - Check-in date: - [% issue.returndate | $KohaDates %] - [% ELSE %] - (Checked out) - [% END %] - [% issue.MySummaryHTML | $raw %]
-
- [% IF ( Koha.Preference( 'OnSiteCheckouts' ) == 1 ) %] -
- [% END %] -
- [% END # / IF READING_RECORD.size %] -
-
-
-
-
- -[% INCLUDE 'opac-bottom.inc' %] -[% BLOCK jsinclude %] -[% INCLUDE 'datatables.inc' %] - -[% END %] +[% USE raw %] +[% USE Koha %] +[% USE KohaDates %] +[% INCLUDE 'doc-head-open.inc' %] +[% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %] catalog › Your checkout history +[% INCLUDE 'doc-head-close.inc' %] +[% BLOCK cssinclude %] + +[% END %] + +[% INCLUDE 'bodytag.inc' bodyid='opac-readingrecord' %] +[% INCLUDE 'masthead.inc' %] +[% SET AdlibrisEnabled = Koha.Preference('AdlibrisCoversEnabled') %] +[% SET AdlibrisURL = Koha.Preference('AdlibrisCoversURL') %] + +[% IF Koha.Preference('AmazonAssocTag') %] + [% AmazonAssocTag = '?tag=' _ Koha.Preference('AmazonAssocTag') %] +[% ELSE %] + [% AmazonAssocTag = '' %] +[% END %] + +
+ + +
+
+
+ +
+
+
+

Checkout history

+ + [% IF READING_RECORD.size == 0 %] + You have never borrowed anything from this library. + [% ELSE %] +
+
+
+ [% UNLESS ( limit ) %][% END %] + + +
+
+ + [% IF limit %] +

+ Showing last 50 items. Show all items +

+ [% ELSE %] +

+ Showing all items. Show last 50 items +

+ [% END %] + + [% IF Koha.Preference( 'OnSiteCheckouts' ) == 1 %] +
+ + [% END %] +
+ + + + + + + + + + [% IF ( OPACMySummaryHTML ) %] + + [% END %] + + + + [% FOREACH issue IN READING_RECORD %] + + + + + + + + [% IF OPACMySummaryHTML %] + + [% END %] + + [% END # / FOREACH issue %] + +
TypeTitleItem typeCall no.DateLinks
+ [% IF issue.onsite_checkout %][% issuetype = 'onsite_checkout' %] + [% ELSE %][% issuetype = 'standard_checkout' %] + [% END %] + [% issuetype | html %] + + [% IF ( AdlibrisEnabled && issue.normalized_isbn ) %] + [% IF issue.BiblioDefaultViewmarc %] + + [% ELSIF issue.BiblioDefaultViewisbd %] + + [% ELSE %] + + [% END %] + Adlibris cover image + [% END %] + [% IF OPACAmazonCoverImages %] + [% IF issue.normalized_isbn %] + + [% ELSE %] + No cover image available + [% END %] + [% END %] + + [% IF GoogleJackets %] + [% IF issue.normalized_isbn %] +
+ [% ELSE %] + No cover image available + [% END %] + [% END %] + + [% IF BakerTaylorEnabled %] + [% bt_id = ( issue.normalized_upc || issue.normalized_isbn ) %] + [% IF ( bt_id ) %] + See Baker & Taylor + [% ELSE %] + No cover image available + [% END %] + [% END %] + + [% IF SyndeticsEnabled && SyndeticsCoverImages %] + + [% END %] +
+ [% IF issue.BiblioDefaultViewmarc %] + [% issue.title | html %] [% IF issue.subtitle %][% FOREACH subtitl IN issue.subtitle %][% subtitl.subfield | html %][% END %][% END %] + [% ELSIF issue.BiblioDefaultViewisbd %] + [% issue.title | html %] [% IF issue.subtitle %][% FOREACH subtitl IN issue.subtitle %][% subtitl.subfield | html %][% END %][% END %] + [% ELSE %] + [% issue.title | html %] [% IF issue.subtitle %][% FOREACH subtitl IN issue.subtitle %][% subtitl.subfield | html %][% END %][% END %] + [% END %] +

[% issue.author | html %]

+ + [% IF ( Koha.Preference( 'OpacStarRatings' ) == 'all' && issue.my_rating ) %] +
+
+
+ [% FOREACH i IN [ 1 2 3 4 5 ] %] + [% IF issue.my_rating.rating_value == i %] + + [% ELSIF issue.my_rating.rating_value > i %] + + [% ELSE %] + + [% END %] + [% END %] +
+
+ Rated on [% issue.my_rating.timestamp | $KohaDates %] +
+ [% END # / IF OpacStarRatings %] + +
+ [% UNLESS ( noItemTypeImages ) %] + [% IF ( issue.imageurl ) %] + + [% END %] + [% END %] + Item type: + [% issue.translated_description | html %] + Call number: + [% issue.itemcallnumber | html %] + + [% IF issue.returndate %] + Check-in date: + [% issue.returndate | $KohaDates %] + [% ELSE %] + (Checked out) + [% END %] + [% issue.MySummaryHTML | $raw %]
+
+ [% IF ( Koha.Preference( 'OnSiteCheckouts' ) == 1 ) %] +
+ [% END %] +
+ [% END # / IF READING_RECORD.size %] +
+
+
+
+
+ +[% INCLUDE 'opac-bottom.inc' %] +[% BLOCK jsinclude %] +[% INCLUDE 'datatables.inc' %] + +[% END %] diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt index 501ceb2..d019195 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt @@ -613,7 +613,6 @@ [% IF ( LibraryThingForLibrariesID ) %] [% END %] -[% IF ( OpacStarRatings == 'all' || Koha.Preference('Babeltheque') ) %][% Asset.js("lib/jquery/plugins/jquery.rating.js") | $raw %][% END %] [% IF ( OverDriveEnabled ) %][% Asset.js("js/overdrive.js") | $raw %][% END %] [% IF ( RecordedBooksEnabled ) %][% Asset.js("js/recordedbooks.js") | $raw %][% END %] [% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") | $raw %] diff --git a/opac/opac-readingrecord.pl b/opac/opac-readingrecord.pl index 49348ad..c01409a 100755 --- a/opac/opac-readingrecord.pl +++ b/opac/opac-readingrecord.pl @@ -33,6 +33,7 @@ use C4::Charset qw(StripNonXmlChars); use Koha::Patrons; use Koha::ItemTypes; +use Koha::Ratings; my $query = new CGI; @@ -121,6 +122,12 @@ foreach my $issue ( @{$issues} ) { : $my_summary_html =~ s/{BIBLIONUMBER}//g; $issue->{MySummaryHTML} = $my_summary_html; } + # Star ratings + if ( C4::Context->preference('OpacStarRatings') eq 'all' ) { + my $ratings = Koha::Ratings->search({ biblionumber => $issue->{biblionumber} }); + $issue->{ratings} = $ratings; + $issue->{my_rating} = $borrowernumber ? $ratings->search({ borrowernumber => $borrowernumber })->next : undef; + } } if (C4::Context->preference('BakerTaylorEnabled')) { @@ -140,7 +147,7 @@ BEGIN { } } -for(qw(AmazonCoverImages GoogleJackets)) { # BakerTaylorEnabled handled above +for(qw(AmazonCoverImages GoogleJackets)) { # BakerTaylorEnabled handled above C4::Context->preference($_) or next; $template->param($_=>1); $template->param(JacketImages=>1); -- 2.1.4