@@ -, +, @@ --- .../prog/en/modules/tools/viewlog.tt | 2 +- tools/additional-contents.pl | 32 +++++++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/viewlog.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/viewlog.tt @@ -373,7 +373,7 @@ [% IF ( loopro.module == 'CIRCULATION' ) %] Item [% loopro.barcode | html %] [% ELSE %] - [% IF loopro.module == "SYSTEMPREFERENCE" || loopro.module == "REPORTS" || loopro.module == "OPACNEWS" %] + [% IF loopro.module == "SYSTEMPREFERENCE" || loopro.module == "REPORTS" || loopro.module == "NEWS" %]
[% loopro.info | trim | html %]
--- a/tools/additional-contents.pl +++ a/tools/additional-contents.pl @@ -27,6 +27,7 @@ use CGI qw ( -utf8 ); use C4::Auth qw(get_template_and_user); use C4::Koha; use C4::Context; +use C4::Log qw( logaction ); use C4::Output qw(output_html_with_http_headers); use C4::Languages qw(getTranslatedLanguages); use Koha::DateUtils; @@ -119,10 +120,12 @@ elsif ( $op eq 'add_validate' ) { # Delete if title or content is empty unless ( $title and $content ) { $additional_content->delete if $additional_content; + logaction('NEWS', 'DELETE' , undef, sprintf("%s|%s|%s|%s", $additional_content->code, $additional_content->title, $additional_content->lang, $additional_content->content)); next; } elsif ( $additional_content ) { + my $updated; eval { - $additional_content->update( + $additional_content->set( { category => $category, code => $code, @@ -137,12 +140,17 @@ elsif ( $op eq 'add_validate' ) { borrowernumber => $borrowernumber, } ); + $updated = $additional_content->_result->get_dirty_columns; + $additional_content->store; }; if ($@) { $success = 0; push @messages, { type => 'error', code => 'error_on_update' }; last; } + + logaction('NEWS', 'MODIFY' , undef, sprintf("%s|%s|%s|%s", $code, $title, $lang, $content)) + if C4::Context->preference("NewsLog") && $updated; } else { my $additional_content = Koha::AdditionalContent->new( @@ -166,6 +174,9 @@ elsif ( $op eq 'add_validate' ) { push @messages, { type => 'error', code => 'error_on_insert' }; last; } + + logaction('NEWS', 'ADD' , undef, sprintf("%s|%s|%s|%s", $code, $title, $lang, $content)) + if C4::Context->preference("NewsLog"); } } @@ -173,8 +184,23 @@ elsif ( $op eq 'add_validate' ) { } elsif ( $op eq 'delete_confirmed' ) { my @ids = $cgi->multi_param('ids'); - my $deleted = - eval { Koha::AdditionalContents->search( { idnew => \@ids } )->delete; }; + my $deleted = eval { + + my $schema = Koha::Database->new->schema; + $schema->txn_do( + sub { + my $contents = + Koha::AdditionalContents->search( { idnew => \@ids } ); + + if ( C4::Context->preference("NewsLog") ) { + while ( my $c = $contents->next ) { + logaction('NEWS', 'DELETE' , undef, sprintf("%s|%s|%s|%s", $c->code, $c->title, $c->lang, $c->content)); + } + } + $contents->delete; + } + ); + }; if ( $@ or not $deleted ) { push @messages, { type => 'error', code => 'error_on_delete' }; --