Bugzilla – Attachment 103977 Details for
Bug 16371
Quote of the Day (QOTD) for the staff interface
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 16371: Quote of the Day (QOTD) - Display in different interfaces
Bug-16371-Quote-of-the-Day-QOTD---Display-in-diffe.patch (text/plain), 10.40 KB, created by
David Nind
on 2020-04-29 18:04:19 UTC
(
hide
)
Description:
Bug 16371: Quote of the Day (QOTD) - Display in different interfaces
Filename:
MIME Type:
Creator:
David Nind
Created:
2020-04-29 18:04:19 UTC
Size:
10.40 KB
patch
obsolete
>From acb61fd5ede6b5d21c453fbba82e9b916430052a Mon Sep 17 00:00:00 2001 >From: Olli-Antti Kivilahti <olli-antti.kivilahti@jns.fi> >Date: Mon, 25 Apr 2016 11:22:04 +0300 >Subject: [PATCH] Bug 16371: Quote of the Day (QOTD) - Display in different > interfaces > >Set 'QuoteOfTheDay'-syspref to 'opac intranet' to allow displaying news in the >opac and the staff client. > >Add 'commandline' to allow news in the commandline (where applicable) > >Accepts all values accepted by the C4::Context->interface() > >Test plan: >1. Set 'QuoteOfTheDay' syspref as 'intranet' or 'opac' or both >2. Check that quote is visible on both mainpages > >Prove t/db_dependent/Koha/Quotes.t > >Sponsored-by: Koha-Suomi Oy > >Signed-off-by: David Nind <david@davidnind.com> >--- > Koha/Quote.pm | 26 +++++++++++++ > .../prog/en/modules/admin/preferences/opac.pref | 11 +++--- > .../intranet-tmpl/prog/en/modules/intranet-main.tt | 8 ++++ > .../intranet-tmpl/prog/en/modules/tools/quotes.tt | 5 +-- > .../opac-tmpl/bootstrap/en/modules/opac-main.tt | 2 +- > mainpage.pl | 4 +- > opac/opac-main.pl | 5 +-- > t/db_dependent/Koha/Quotes.t | 43 +++++++++++++++++++++- > 8 files changed, 89 insertions(+), 15 deletions(-) > >diff --git a/Koha/Quote.pm b/Koha/Quote.pm >index ecfc086022..f79cf79c3f 100644 >--- a/Koha/Quote.pm >+++ b/Koha/Quote.pm >@@ -22,6 +22,7 @@ use DBI qw(:sql_types); > > use Koha::Database; > use Koha::DateUtils qw(dt_from_string); >+use Koha::Exceptions::UnknownProgramState; > > use base qw(Koha::Object); > >@@ -106,6 +107,31 @@ sub get_daily_quote { > return $quote; > } > >+=head2 get_daily_quote_for_interface >+ >+ my $quote = Koha::Quote->get_daily_quote_for_interface(); >+ >+Is a wrapper for get_daily_quote(), with an extra check for using the correct >+interface defined in the syspref 'QuoteOfTheDay'. >+If the current interface is not allowed to display quotes, then returns undef. >+ >+=cut >+ >+sub get_daily_quote_for_interface { >+ my ($self, %opts) = @_; >+ my $qotdPref = C4::Context->preference('QuoteOfTheDay'); >+ my $interface = C4::Context->interface(); >+ unless ($interface) { >+ my @cc = caller(3); >+ Koha::Exceptions::UnknownProgramState->throw(error => $cc[3]."()> C4::Context->interface() is not set! Don't know are you in OPAC or staff client?"); >+ } >+ unless ($qotdPref =~ /$interface/) { >+ return undef; >+ } >+ >+ return $self->get_daily_quote(%opts); >+} >+ > =head3 _type > > =cut >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >index 550c0bafc1..d18ca1f696 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >@@ -529,11 +529,12 @@ OPAC: > - browsing and paging search results from the OPAC detail page. > - > - pref: QuoteOfTheDay >- default: 0 >- choices: >- yes: Enable >- no: Disable >- - Quote of the Day display on OPAC home page >+ default: >+ class: short >+ - Quote of the Day display in Koha. >+ - Add 'opac' to show in OPAC home page. >+ - Add 'intranet' to show in the staff client main page. >+ - Example 'opac intranet', displays QOTD in OPAC and the staff client. > - > - pref: OPACPopupAuthorsSearch > default: 0 >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt >index 1ec2e3d852..2b9769065e 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt >@@ -34,6 +34,14 @@ > [% END %] > </div><!-- /koha-news --> > [% END %] >+ [% IF ( daily_quote ) %] >+ <div id="area-news"> >+ <h3>Quote of the Day</h3> >+ <div class="newsitem"> >+ <span id="daily-quote-text">[% daily_quote.text %]</span><span id="daily-quote-sep"> ~ </span><span id="daily-quote-source">[% daily_quote.source %]</span> >+ </div> >+ </div> >+ [% END %] > </div> <!-- /.col-sm-2 --> > <div class="col-sm-9"> > <div class="row"> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/quotes.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/quotes.tt >index bf910d229c..6b3e9c15e3 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/quotes.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/quotes.tt >@@ -122,7 +122,6 @@ > "action" : "edit", > }; > }, >- "height" : "14px", > "placeholder" : "Saving data...", > }); > }, >@@ -190,8 +189,8 @@ > var aRow = oTable.fnAddData( > [ > 'NA', // this is hackish to fool the datatable sort routine into placing this row at the end of the list... >- '<input id="quoteSource" type="text" style="height:14px; width:99%" onkeydown="fnClickAddQuote(event,this.parentNode.parentNode)"/>', >- '<input id="quoteText" type="text" style="height:14px; width:99%" onkeydown="fnClickAddQuote(event,this.parentNode.parentNode)"/>', >+ '<input id="quoteSource" type="text" style="width:99%" onkeydown="fnClickAddQuote(event,this.parentNode.parentNode)"/>', >+ '<input id="quoteText" type="text" style="width:99%" onkeydown="fnClickAddQuote(event,this.parentNode.parentNode)"/>', > '0000-00-00 00:00:00', > ], > false >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt >index dc307471e4..76cd5da183 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-main.tt >@@ -141,7 +141,7 @@ > [% END # IF koha_news %] > > [% UNLESS news_item # Don't show under single news item %] >- [% IF ( display_daily_quote && daily_quote ) %] >+ [% IF ( daily_quote ) %] > <div id="daily-quote"> > <h3>Quote of the day</h3> > <div> >diff --git a/mainpage.pl b/mainpage.pl >index ff234f6baa..090d431350 100755 >--- a/mainpage.pl >+++ b/mainpage.pl >@@ -32,6 +32,7 @@ use Koha::Patron::Discharge; > use Koha::Reviews; > use Koha::ArticleRequests; > use Koha::ProblemReports; >+use Koha::Quote; > > my $query = new CGI; > >@@ -54,7 +55,8 @@ my $koha_news_count = scalar @$all_koha_news; > > $template->param( > koha_news => $all_koha_news, >- koha_news_count => $koha_news_count >+ koha_news_count => $koha_news_count, >+ daily_quote => Koha::Quote->get_daily_quote_for_interface(), > ); > > my $branch = >diff --git a/opac/opac-main.pl b/opac/opac-main.pl >index bd11fc0830..64cd85afd4 100755 >--- a/opac/opac-main.pl >+++ b/opac/opac-main.pl >@@ -73,8 +73,6 @@ if (defined $news_id){ > @all_koha_news = &GetNewsToDisplay( $template->lang, $homebranch); > } > >-my $quote = Koha::Quote->get_daily_quote(); # other options are to pass in an exact quote id or select a random quote each pass... see perldoc C4::Koha >- > # For dashboard > my $patron = Koha::Patrons->find( $borrowernumber ); > >@@ -101,8 +99,7 @@ if ( $patron ) { > $template->param( > koha_news => @all_koha_news, > branchcode => $homebranch, >- display_daily_quote => C4::Context->preference('QuoteOfTheDay'), >- daily_quote => $quote, >+ daily_quote => Koha::Quote->get_daily_quote_for_interface(), > ); > > # If GoogleIndicTransliteration system preference is On Set parameter to load Google's javascript in OPAC search screens >diff --git a/t/db_dependent/Koha/Quotes.t b/t/db_dependent/Koha/Quotes.t >index d4c979b5c3..dd1477ec6b 100644 >--- a/t/db_dependent/Koha/Quotes.t >+++ b/t/db_dependent/Koha/Quotes.t >@@ -17,13 +17,16 @@ > > use Modern::Perl; > use DateTime::Format::MySQL; >-use Test::More tests => 12; >+use Test::More tests => 13; > > use Koha::Database; > use Koha::DateUtils qw(dt_from_string); > use Koha::Quote; > use Koha::Quotes; > >+use t::lib::TestBuilder; >+use t::lib::Mocks; >+ > BEGIN { > use_ok('Koha::Quote'); > } >@@ -76,3 +79,41 @@ my $quote_6 = Koha::Quote->new({ id => 6, source => 'George Washington', text => > > $quote = Koha::Quote->get_daily_quote(); > is( $quote->{id}, 6, ' get_daily_quote returns the only existing quote' ); >+ >+$schema->storage->txn_rollback; >+ >+subtest "get_daily_quote_for_interface" => sub { >+ >+ plan tests => 3; >+ >+ $schema->storage->txn_begin; >+ >+ my ($quote); >+ my $quote_1 = Koha::Quote->new({ id => 10, source => 'Dusk And Her Embrace', text => 'Unfurl thy limbs breathless succubus<br/>How the full embosomed fog<br/>Imparts the night to us....', timestamp => dt_from_string })->store; >+ >+ my $expected_quote = { >+ id => 10, >+ source => 'Dusk And Her Embrace', >+ text => 'Unfurl thy limbs breathless succubus<br/>How the full embosomed fog<br/>Imparts the night to us....', >+ timestamp => DateTime::Format::MySQL->format_datetime(dt_from_string), >+ }; >+ >+ t::lib::Mocks::mock_preference('QuoteOfTheDay', ''); >+ >+ ##Set interface and get nothing because syspref is not set. >+ C4::Context->interface('opac'); >+ $quote = Koha::Quote->get_daily_quote_for_interface(id => $quote_1->id); >+ ok(not($quote), "'QuoteOfTheDay'-syspref not set so nothing returned"); >+ >+ ##Set 'QuoteOfTheDay'-syspref to not include current interface 'opac' >+ t::lib::Mocks::mock_preference('QuoteOfTheDay', 'intra commandline sip2 api yo-mama'); >+ $quote = Koha::Quote->get_daily_quote_for_interface(id => $quote_1->id); >+ ok(not($quote), "'QuoteOfTheDay'-syspref doesn't include 'opac'"); >+ >+ ##Set 'QuoteOfTheDay'-syspref to include current interface 'opac' >+ t::lib::Mocks::mock_preference('QuoteOfTheDay', 'intraopaccommandline'); >+ $quote = Koha::Quote->get_daily_quote_for_interface(id => $quote_1->id); >+ is_deeply($quote, $expected_quote, "Got the expected quote"); >+ >+ $schema->storage->txn_rollback; >+}; >-- >2.11.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 16371
:
102515
|
102516
|
102517
|
102969
|
103019
|
103329
|
103330
|
103331
|
103332
|
103333
|
103334
|
103732
|
103973
|
103974
|
103975
|
103976
|
103977
|
103978
|
103979
|
106818
|
106819
|
106820
|
106858
|
106859
|
106860
|
106861
|
106862
|
106863
|
106864
|
106865
|
106866
|
106867
|
106868
|
106894
|
106895
|
106896
|
106897
|
106898
|
106899
|
106900
|
106901
|
106902
|
106903
|
108097
|
108098
|
108160
|
108163