If the Koha::ItemType object has been instanciated from a call to
Koha::ItemTypes->search_with_localization, we already have the
translated_description value. So there is no need to fetch it again from
the DB. This is what this trick does: if the translated_description
column exist in the DBIx::Class result source's column list, that means
the value has already been retrieved.
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Lari Taskula <lari.taskula@jns.fi>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
sub translated_description {
my ( $self, $lang ) = @_;
+ if ( my $translated_description = eval { $self->get_column('translated_description') } ) {
+ # If the value has already been fetched (eg. from sarch_with_localization),
+ # do not search for it again
+ # Note: This is a bit hacky but should be fast
+ return $translated_description
+ ? $translated_description
+ : $self->description;
+ }
$lang ||= C4::Languages::getlanguage;
my $translated_description = Koha::Localizations->search({
code => $self->itemtype,