Lines 32-37
use C4::Output;
Link Here
|
32 |
use C4::Log qw( logaction ); |
32 |
use C4::Log qw( logaction ); |
33 |
use Koha::Notice::Templates; |
33 |
use Koha::Notice::Templates; |
34 |
|
34 |
|
|
|
35 |
use Koha::Database::Columns; |
35 |
use Koha::Logger; |
36 |
use Koha::Logger; |
36 |
use Koha::AuthorisedValues; |
37 |
use Koha::AuthorisedValues; |
37 |
use Koha::Patron::Categories; |
38 |
use Koha::Patron::Categories; |
Lines 212-218
sub _get_columns {
Link Here
|
212 |
my $sth = $dbh->prepare("show columns from $tablename"); |
213 |
my $sth = $dbh->prepare("show columns from $tablename"); |
213 |
$sth->execute(); |
214 |
$sth->execute(); |
214 |
my @columns; |
215 |
my @columns; |
215 |
my $column_defs = _get_column_defs($cgi); |
216 |
my $columns = Koha::Database::Columns->columns; |
216 |
my %tablehash; |
217 |
my %tablehash; |
217 |
$tablehash{'table'}=$tablename; |
218 |
$tablehash{'table'}=$tablename; |
218 |
$tablehash{'__first__'} = $first; |
219 |
$tablehash{'__first__'} = $first; |
Lines 220-226
sub _get_columns {
Link Here
|
220 |
while ( my $data = $sth->fetchrow_arrayref() ) { |
221 |
while ( my $data = $sth->fetchrow_arrayref() ) { |
221 |
my %temphash; |
222 |
my %temphash; |
222 |
$temphash{'name'} = "$tablename.$data->[0]"; |
223 |
$temphash{'name'} = "$tablename.$data->[0]"; |
223 |
$temphash{'description'} = $column_defs->{"$tablename.$data->[0]"}; |
224 |
$temphash{'description'} = $columns->{$tablename}->{$data->[0]}; |
224 |
push @columns, \%temphash; |
225 |
push @columns, \%temphash; |
225 |
} |
226 |
} |
226 |
$sth->finish(); |
227 |
$sth->finish(); |
Lines 353-377
sub get_criteria {
Link Here
|
353 |
|
354 |
|
354 |
|
355 |
|
355 |
my $crit = $criteria{$area}; |
356 |
my $crit = $criteria{$area}; |
356 |
my $column_defs = _get_column_defs($cgi); |
357 |
my $columns = Koha::Database::Columns->columns; |
357 |
my @criteria_array; |
358 |
my @criteria_array; |
358 |
foreach my $localcrit (@$crit) { |
359 |
foreach my $localcrit (@$crit) { |
359 |
my ( $value, $type ) = split( /\|/, $localcrit ); |
360 |
my ( $value, $type ) = split( /\|/, $localcrit ); |
360 |
my ( $table, $column ) = split( /\./, $value ); |
361 |
my ( $table, $column ) = split( /\./, $value ); |
|
|
362 |
my $description = $columns->{$table}->{$column}; |
361 |
if ($type eq 'textrange') { |
363 |
if ($type eq 'textrange') { |
362 |
my %temp; |
364 |
my %temp; |
363 |
$temp{'name'} = $value; |
365 |
$temp{'name'} = $value; |
364 |
$temp{'from'} = "from_" . $value; |
366 |
$temp{'from'} = "from_" . $value; |
365 |
$temp{'to'} = "to_" . $value; |
367 |
$temp{'to'} = "to_" . $value; |
366 |
$temp{'textrange'} = 1; |
368 |
$temp{'textrange'} = 1; |
367 |
$temp{'description'} = $column_defs->{$value}; |
369 |
$temp{'description'} = $description; |
368 |
push @criteria_array, \%temp; |
370 |
push @criteria_array, \%temp; |
369 |
} |
371 |
} |
370 |
elsif ($type eq 'date') { |
372 |
elsif ($type eq 'date') { |
371 |
my %temp; |
373 |
my %temp; |
372 |
$temp{'name'} = $value; |
374 |
$temp{'name'} = $value; |
373 |
$temp{'date'} = 1; |
375 |
$temp{'date'} = 1; |
374 |
$temp{'description'} = $column_defs->{$value}; |
376 |
$temp{'description'} = $description; |
375 |
push @criteria_array, \%temp; |
377 |
push @criteria_array, \%temp; |
376 |
} |
378 |
} |
377 |
elsif ($type eq 'daterange') { |
379 |
elsif ($type eq 'daterange') { |
Lines 380-386
sub get_criteria {
Link Here
|
380 |
$temp{'from'} = "from_" . $value; |
382 |
$temp{'from'} = "from_" . $value; |
381 |
$temp{'to'} = "to_" . $value; |
383 |
$temp{'to'} = "to_" . $value; |
382 |
$temp{'daterange'} = 1; |
384 |
$temp{'daterange'} = 1; |
383 |
$temp{'description'} = $column_defs->{$value}; |
385 |
$temp{'description'} = $description; |
384 |
push @criteria_array, \%temp; |
386 |
push @criteria_array, \%temp; |
385 |
} |
387 |
} |
386 |
else { |
388 |
else { |
Lines 407-418
sub get_criteria {
Link Here
|
407 |
} |
409 |
} |
408 |
$sth->finish(); |
410 |
$sth->finish(); |
409 |
|
411 |
|
410 |
my %temp; |
412 |
push @criteria_array, { |
411 |
$temp{'name'} = $value; |
413 |
name => $value, |
412 |
$temp{'description'} = $column_defs->{$value}; |
414 |
description => $description, |
413 |
$temp{'values'} = \@values; |
415 |
values => \@values, |
414 |
|
416 |
}; |
415 |
push @criteria_array, \%temp; |
|
|
416 |
} |
417 |
} |
417 |
} |
418 |
} |
418 |
return ( \@criteria_array ); |
419 |
return ( \@criteria_array ); |
Lines 896-925
sub get_results {
Link Here
|
896 |
|, { Slice => {} }, $report_id); |
897 |
|, { Slice => {} }, $report_id); |
897 |
} |
898 |
} |
898 |
|
899 |
|
899 |
sub _get_column_defs { |
|
|
900 |
my ($cgi) = @_; |
901 |
my %columns; |
902 |
my $columns_def_file = "columns.def"; |
903 |
my $htdocs = C4::Context->config('intrahtdocs'); |
904 |
my $section = 'intranet'; |
905 |
|
906 |
# We need the theme and the lang |
907 |
# Since columns.def is not in the modules directory, we cannot sent it for the $tmpl var |
908 |
my ($theme, $lang, $availablethemes) = C4::Templates::themelanguage($htdocs, 'about.tt', $section, $cgi); |
909 |
|
910 |
my $full_path_to_columns_def_file="$htdocs/$theme/$lang/$columns_def_file"; |
911 |
open (my $fh, '<:encoding(utf-8)', $full_path_to_columns_def_file); |
912 |
while ( my $input = <$fh> ){ |
913 |
chomp $input; |
914 |
if ( $input =~ m|<field name="(.*)">(.*)</field>| ) { |
915 |
my ( $field, $translation ) = ( $1, $2 ); |
916 |
$columns{$field} = $translation; |
917 |
} |
918 |
} |
919 |
close $fh; |
920 |
return \%columns; |
921 |
} |
922 |
|
923 |
=head2 GetReservedAuthorisedValues |
900 |
=head2 GetReservedAuthorisedValues |
924 |
|
901 |
|
925 |
my %reserved_authorised_values = GetReservedAuthorisedValues(); |
902 |
my %reserved_authorised_values = GetReservedAuthorisedValues(); |
926 |
- |
|
|