Bug 29695: Remove C4::Reports::Guided::_get_column_defs

This subroutine was mostly the same as GetColumnDefs, we replace it
identically as in the previous patch.

Test plan:
Translate some strings in another language
 % gulp po:update --lang es-ES
 % cd misc/translate
 # Translate the relevant strings in po/es-ES-messages.po
 # For instance "Alternate contact: Surname"
 % perl translate install es-ES

Select the language for the interface (enable it in the 'language' syspref
first)

Create a new guided report and confirm that the columns for the borrowers
table are translated

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
Jonathan Druart 2021-12-14 15:52:22 +01:00 committed by Fridolin Somers
parent 1a14a0539a
commit dca75318ed
1 changed files with 13 additions and 36 deletions

View File

@ -32,6 +32,7 @@ use C4::Output;
use C4::Log qw( logaction );
use Koha::Notice::Templates;
use Koha::Database::Columns;
use Koha::Logger;
use Koha::AuthorisedValues;
use Koha::Patron::Categories;
@ -212,7 +213,7 @@ sub _get_columns {
my $sth = $dbh->prepare("show columns from $tablename");
$sth->execute();
my @columns;
my $column_defs = _get_column_defs($cgi);
my $columns = Koha::Database::Columns->columns;
my %tablehash;
$tablehash{'table'}=$tablename;
$tablehash{'__first__'} = $first;
@ -220,7 +221,7 @@ sub _get_columns {
while ( my $data = $sth->fetchrow_arrayref() ) {
my %temphash;
$temphash{'name'} = "$tablename.$data->[0]";
$temphash{'description'} = $column_defs->{"$tablename.$data->[0]"};
$temphash{'description'} = $columns->{$tablename}->{$data->[0]};
push @columns, \%temphash;
}
$sth->finish();
@ -353,25 +354,26 @@ sub get_criteria {
my $crit = $criteria{$area};
my $column_defs = _get_column_defs($cgi);
my $columns = Koha::Database::Columns->columns;
my @criteria_array;
foreach my $localcrit (@$crit) {
my ( $value, $type ) = split( /\|/, $localcrit );
my ( $table, $column ) = split( /\./, $value );
my $description = $columns->{$table}->{$column};
if ($type eq 'textrange') {
my %temp;
$temp{'name'} = $value;
$temp{'from'} = "from_" . $value;
$temp{'to'} = "to_" . $value;
$temp{'textrange'} = 1;
$temp{'description'} = $column_defs->{$value};
$temp{'description'} = $description;
push @criteria_array, \%temp;
}
elsif ($type eq 'date') {
my %temp;
$temp{'name'} = $value;
$temp{'date'} = 1;
$temp{'description'} = $column_defs->{$value};
$temp{'description'} = $description;
push @criteria_array, \%temp;
}
elsif ($type eq 'daterange') {
@ -380,7 +382,7 @@ sub get_criteria {
$temp{'from'} = "from_" . $value;
$temp{'to'} = "to_" . $value;
$temp{'daterange'} = 1;
$temp{'description'} = $column_defs->{$value};
$temp{'description'} = $description;
push @criteria_array, \%temp;
}
else {
@ -407,12 +409,11 @@ sub get_criteria {
}
$sth->finish();
my %temp;
$temp{'name'} = $value;
$temp{'description'} = $column_defs->{$value};
$temp{'values'} = \@values;
push @criteria_array, \%temp;
push @criteria_array, {
name => $value,
description => $description,
values => \@values,
};
}
}
return ( \@criteria_array );
@ -911,30 +912,6 @@ sub get_results {
|, { Slice => {} }, $report_id);
}
sub _get_column_defs {
my ($cgi) = @_;
my %columns;
my $columns_def_file = "columns.def";
my $htdocs = C4::Context->config('intrahtdocs');
my $section = 'intranet';
# We need the theme and the lang
# Since columns.def is not in the modules directory, we cannot sent it for the $tmpl var
my ($theme, $lang, $availablethemes) = C4::Templates::themelanguage($htdocs, 'about.tt', $section, $cgi);
my $full_path_to_columns_def_file="$htdocs/$theme/$lang/$columns_def_file";
open (my $fh, '<:encoding(utf-8)', $full_path_to_columns_def_file);
while ( my $input = <$fh> ){
chomp $input;
if ( $input =~ m|<field name="(.*)">(.*)</field>| ) {
my ( $field, $translation ) = ( $1, $2 );
$columns{$field} = $translation;
}
}
close $fh;
return \%columns;
}
=head2 GetReservedAuthorisedValues
my %reserved_authorised_values = GetReservedAuthorisedValues();