From 0a8c7c0634d7ceae09b58d2711690504258009ab Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Thu, 13 Jun 2013 09:46:43 -0400 Subject: [PATCH] Bug 10463: ensure that Quote of the Day feature selects random quotes When the Quote of the Day tool selects a new new quote, it updates the timestamp and does not take the timezone into account. Thus the time is set to +4 hours (e.g. 2013-06-11 13:33:48 when the time is 2013-06-11 09:33:48). It then repeats the same quote every day. To replicate: Set Administration >> System preferences >> OPAC preferences >> Features >> QuoteOfTheDay to Enable In Home >> Tools >> Quote Editor, add several quotes. In the opac, refresh the home page. You should get a quote of the day at the top. mysql> select * from quotes; Note the timestamp of the quote selected by the tool. It will not match the date on the machine (unless your server's timezone is set to UTC). If you change the date to the previous date and refresh the opac, the tool wlill select another quote, which will not change unless forced. Test Plan: 1) Remove all your quotes and import a fresh set 2) Enable the quote of the day and view the opac 3) Look at your quotes table and note the timestamp is incorrect 4) Repeat steps 1 and 2 5) Look at your quotes table and note the timestamp is now correct Signed-off-by: Srdjan Signed-off-by: Marcel de Rooy Signed-off-by: Galen Charlton (cherry picked from commit def952bda9cd72a4f6916e93ad1c454a04a3cb43) Signed-off-by: Tomas Cohen Arazi (cherry picked from commit f2ccae0ded3c9f099ba9eecfdf72b18c6cd8e797) Signed-off-by: Bernardo Gonzalez Kriegel (cherry picked from commit f2ccae0ded3c9f099ba9eecfdf72b18c6cd8e797) --- C4/Koha.pm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/C4/Koha.pm b/C4/Koha.pm index e78910efdf..0f1755e199 100644 --- a/C4/Koha.pm +++ b/C4/Koha.pm @@ -25,8 +25,8 @@ use strict; use C4::Context; use C4::Branch qw(GetBranchesCount); +use Koha::DateUtils qw(dt_from_string); use Memoize; -use DateTime; use DateTime::Format::MySQL; use autouse 'Data::Dumper' => qw(Dumper); @@ -1400,7 +1400,10 @@ sub GetDailyQuote { # update the timestamp for that quote $query = 'UPDATE quotes SET timestamp = ? WHERE id = ?'; $sth = C4::Context->dbh->prepare($query); - $sth->execute(DateTime::Format::MySQL->format_datetime(DateTime->now), $quote->{'id'}); + $sth->execute( + DateTime::Format::MySQL->format_datetime( dt_from_string() ), + $quote->{'id'} + ); } return $quote; } -- 2.39.5