@@ -, +, @@ instead of a package variable --- C4/Calendar.pm | 7 +++++++ Koha/Calendar.pm | 21 ++++++--------------- 2 files changed, 13 insertions(+), 15 deletions(-) --- a/C4/Calendar.pm +++ a/C4/Calendar.pm @@ -278,6 +278,7 @@ sub insert_single_holiday { # changed the 'single_holidays' table, lets force/reset its cache my $cache = Koha::Cache->get_instance(); $cache->clear_from_cache( 'single_holidays') ; + $cache->clear_from_cache( 'exception_holidays') ; return $self; @@ -322,6 +323,7 @@ sub insert_exception_holiday { # changed the 'single_holidays' table, lets force/reset its cache my $cache = Koha::Cache->get_instance(); $cache->clear_from_cache( 'single_holidays') ; + $cache->clear_from_cache( 'exception_holidays') ; return $self; } @@ -422,6 +424,7 @@ UPDATE special_holidays SET title = ?, description = ? # changed the 'single_holidays' table, lets force/reset its cache my $cache = Koha::Cache->get_instance(); $cache->clear_from_cache( 'single_holidays') ; + $cache->clear_from_cache( 'exception_holidays') ; return $self; } @@ -464,6 +467,7 @@ UPDATE special_holidays SET title = ?, description = ? # changed the 'single_holidays' table, lets force/reset its cache my $cache = Koha::Cache->get_instance(); $cache->clear_from_cache( 'single_holidays') ; + $cache->clear_from_cache( 'exception_holidays') ; return $self; } @@ -544,6 +548,7 @@ sub delete_holiday { # changed the 'single_holidays' table, lets force/reset its cache my $cache = Koha::Cache->get_instance(); $cache->clear_from_cache( 'single_holidays') ; + $cache->clear_from_cache( 'exception_holidays') ; return $self; } @@ -574,6 +579,7 @@ sub delete_holiday_range { # changed the 'single_holidays' table, lets force/reset its cache my $cache = Koha::Cache->get_instance(); $cache->clear_from_cache( 'single_holidays') ; + $cache->clear_from_cache( 'exception_holidays') ; } @@ -627,6 +633,7 @@ sub delete_exception_holiday_range { # changed the 'single_holidays' table, lets force/reset its cache my $cache = Koha::Cache->get_instance(); $cache->clear_from_cache( 'single_holidays') ; + $cache->clear_from_cache( 'exception_holidays') ; } =head2 isHoliday --- a/Koha/Calendar.pm +++ a/Koha/Calendar.pm @@ -52,23 +52,14 @@ sub _init { return; } - -# FIXME: use of package-level variables for caching the holiday -# lists breaks persistance engines. As of 2013-12-10, the RM -# is allowing this with the expectation that prior to release of -# 3.16, bug 8089 will be fixed and we can switch the caching over -# to Koha::Cache. - -our $exception_holidays; - sub exception_holidays { my ( $self ) = @_; my $dbh = C4::Context->dbh; my $branch = $self->{branchcode}; - if ( $exception_holidays ) { - $self->{exception_holidays} = $exception_holidays; - return $exception_holidays; - } + my $cache = Koha::Cache->get_instance(); + my $cached = $cache->get_from_cache('exception_holidays'); + return $cached if $cached; + my $exception_holidays_sth = $dbh->prepare( 'SELECT day, month, year FROM special_holidays WHERE branchcode = ? AND isexception = 1' ); @@ -85,8 +76,8 @@ sub exception_holidays { } $self->{exception_holidays} = DateTime::Set->from_datetimes( dates => $dates ); - $exception_holidays = $self->{exception_holidays}; - return $exception_holidays; + $cache->set_in_cache( 'exception_holidays', $self->{exception_holidays} ); + return $self->{exception_holidays}; } sub single_holidays { --