Bug 15333: Use Koha::Cache to cache exception_holidays instead of a package variable
On the same way as bug 14522, we should use Koha::Cache to cache exception_holidays. It's not safe to use a package variable if running under Plack. There is not test plan, just make sure the changes make sense. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
This commit is contained in:
parent
120967a6a9
commit
cbd375fab7
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Reference in New Issue