X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=tools%2Fviewlog.pl;h=5909cb39edbae762e14e0498d5159b41c22821a1;hb=9d6d641d1f8b77271800f43bc027b651f9aea52b;hp=40e1c6658afc23450314ab017db303c5241b0475;hpb=602d9c836bd92ccf5e64915ee113632bc690c1b9;p=srvgit diff --git a/tools/viewlog.pl b/tools/viewlog.pl index 40e1c6658a..5909cb39ed 100755 --- a/tools/viewlog.pl +++ b/tools/viewlog.pl @@ -20,24 +20,20 @@ use Modern::Perl; -use C4::Auth; +use C4::Auth qw( get_template_and_user ); use CGI qw ( -utf8 ); use Text::CSV::Encoded; use C4::Context; -use C4::Koha; -use C4::Output; -use C4::Items; -use C4::Serials; -use C4::Debug; -use C4::Search; # enabled_staff_search_views +use C4::Output qw( output_html_with_http_headers ); +use C4::Serials qw( CountSubscriptionFromBiblionumber ); +use C4::Search qw( enabled_staff_search_views ); use Koha::ActionLogs; use Koha::Database; -use Koha::DateUtils; +use Koha::DateUtils qw( dt_from_string ); use Koha::Items; use Koha::Patrons; -use vars qw($debug $cgi_debug); =head1 viewlog.pl @@ -45,15 +41,15 @@ plugin that shows stats =cut -my $input = new CGI; +my $input = CGI->new; -$debug or $debug = $cgi_debug; my $do_it = $input->param('do_it'); my @modules = $input->multi_param("modules"); my $user = $input->param("user") // ''; my @actions = $input->multi_param("actions"); my @interfaces = $input->multi_param("interfaces"); my $object = $input->param("object"); +my $object_type = $input->param("object_type") // ''; my $info = $input->param("info"); my $datefrom = $input->param("from"); my $dateto = $input->param("to"); @@ -66,9 +62,7 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( template_name => "tools/viewlog.tt", query => $input, type => "intranet", - authnotrequired => 0, flagsrequired => { tools => 'view_system_logs' }, - debug => 1, } ); @@ -88,9 +82,8 @@ if ( $src eq 'circ' ) { } $template->param( - debug => $debug, C4::Search::enabled_staff_search_views, - subscriptionsnumber => CountSubscriptionFromBiblionumber(scalar $input->param('object')), + subscriptionsnumber => ( $object ? CountSubscriptionFromBiblionumber($object) : 0 ), object => $object, ); @@ -134,16 +127,15 @@ if ($do_it) { $search_params{action} = { -in => [ @actions ] } if ( defined $actions[0] && $actions[0] ne '' ); $search_params{interface} = { -in => [ @interfaces ] } if ( defined $interfaces[0] && $interfaces[0] ne '' ); - - if ( @modules == 1 && $modules[0] eq 'CATALOGUING' ) { + if ( @modules == 1 && $object_type eq 'biblio' ) { # Handle 'Modification log' from cataloguing my @itemnumbers = Koha::Items->search({ biblionumber => $object })->get_column('itemnumber'); $search_params{'-or'} = [ - { -and => { object => $object, info => { -like => 'biblio %' }}}, - { -and => { object => \@itemnumbers, info => { -like => 'item %' }}}, + { -and => { object => $object, info => { -like => 'biblio%' }}}, + { -and => { object => \@itemnumbers, info => { -like => 'item%' }}}, ]; } else { - $search_params{info} = $info if $info; + $search_params{info} = { -like => '%' . $info . '%' } if $info; $search_params{object} = $object if $object; } @@ -173,7 +165,7 @@ if ($do_it) { #always add firstname and surname for librarian/user if ( $log->user ) { my $patron = Koha::Patrons->find( $log->user ); - if ($patron) { + if ($patron && $output eq 'screen') { $result->{librarian} = $patron; } } @@ -182,11 +174,21 @@ if ($do_it) { if ( $log->module eq "CIRCULATION" || $log->module eq "MEMBERS" || $log->module eq "FINES" ) { if ( $log->object ) { my $patron = Koha::Patrons->find( $log->object ); - if ($patron) { + if ($patron && $output eq 'screen') { $result->{patron} = $patron; } } } + + if ( $log->module eq 'NOTICES' ) { + if ( $log->object ) { + my $notice = Koha::Notice::Templates->find( { id => $log->object } ); + if ($notice && $output eq 'screen') { + $result->{notice} = $notice->unblessed; + } + } + } + push @data, $result; } if ( $output eq "screen" ) { @@ -217,7 +219,7 @@ if ($do_it) { # Printing to a csv file my $content = q{}; - my $delimiter = C4::Context->preference('delimiter') || ','; + my $delimiter = C4::Context->preference('CSVDelimiter') || ','; if (@data) { my $csv = Text::CSV::Encoded->new( { encoding_out => 'utf8', sep_char => $delimiter } ); $csv or die "Text::CSV::Encoded->new FAILED: " . Text::CSV::Encoded->error_diag();