From 1b47afce24d94cae9ab1e9682f1964214e9d06ba Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 3 Jan 2017 09:22:48 +0100 Subject: [PATCH] Bug 17835: Do not reselect translated_description if comes from search_with_localization 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 --- Koha/ItemType.pm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Koha/ItemType.pm b/Koha/ItemType.pm index 48df808..8f2279b 100644 --- a/Koha/ItemType.pm +++ b/Koha/ItemType.pm @@ -51,6 +51,14 @@ sub image_location { 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, -- 2.9.3