@@ -, +, @@ today - View the modification logs of a record which has already been modified --- C4/Log.pm | 4 ++-- t/db_dependent/Log.t | 21 ++++++++++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) --- a/C4/Log.pm +++ a/C4/Log.pm @@ -220,8 +220,8 @@ sub GetLogs { my $object = shift; my $info = shift; - my $iso_datefrom = output_pref({ dt => dt_from_string( $datefrom ), dateformat => 'iso', dateonly => 1 }); - my $iso_dateto = output_pref({ dt => dt_from_string( $dateto ), dateformat => 'iso', dateonly => 1 }); + my $iso_datefrom = $datefrom ? output_pref({ dt => dt_from_string( $datefrom ), dateformat => 'iso', dateonly => 1 }) : undef; + my $iso_dateto = $dateto ? output_pref({ dt => dt_from_string( $dateto ), dateformat => 'iso', dateonly => 1 }) : undef; my $dbh = C4::Context->dbh; my $query = " --- a/t/db_dependent/Log.t +++ a/t/db_dependent/Log.t @@ -4,9 +4,8 @@ # This Koha test module is a stub! # Add more tests here!!! -use strict; -use warnings; -use Test::More tests => 7; +use Modern::Perl; +use Test::More tests => 8; use C4::Context; use Koha::DateUtils; @@ -77,4 +76,20 @@ cronlogaction(); $cronJobCount = $dbh->selectrow_array("SELECT COUNT(*) FROM action_logs WHERE module='CRONJOBS';",{}); is($cronJobCount,1,"Cronjob logged as expected."); +subtest "GetLogs should return all logs if dates are not set" => sub { + plan tests => 2; + my $today = dt_from_string->add(minutes => -1); + my $yesterday = dt_from_string->add( days => -1 ); + $dbh->do(q| + INSERT INTO action_logs (timestamp, user, module, action, object, info) + VALUES + (?, 42, 'CATALOGUING', 'MODIFY', 4242, 'Record 42 has been modified by patron 4242 yesterday'), + (?, 43, 'CATALOGUING', 'MODIFY', 4242, 'Record 43 has been modified by patron 4242 today') + |, undef, output_pref({dt =>$yesterday, dateformat => 'iso'}), output_pref({dt => $today, dateformat => 'iso'})); + my $logs = GetLogs( undef, undef, undef, ['CATALOGUING'], ['MODIFY'], 4242 ); + is( scalar(@$logs), 2, 'GetLogs should return all logs regardless the dates' ); + $logs = GetLogs( output_pref($today), undef, undef, ['CATALOGUING'], ['MODIFY'], 4242 ); + is( scalar(@$logs), 1, 'GetLogs should return the logs for today' ); +}; + $dbh->rollback(); --