From cc179450c39550d37ba88fdc214777db0eec1edb Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Tue, 17 Sep 2024 09:37:26 -0400 Subject: [PATCH] Bug 37944: Log object delete as JSON diff, implement for items We should store deleted objects as diffs just as we do for modification and item created. This enhancement will store modification diffs if the action is set to DELETE, and an "original" object is passed in. Test Plan: 1) Enable CataloguingLog 2) Deletee an item 3) Query the database for the newest action log: select * from action_logs order by action_id desc limit 1\G 4) Note the diff column is NULL 5) Apply this patch 6) Restart all the things! 7) Delete another item 8) Query the database again 9) Note the diff has been created! Signed-off-by: Sukhmandeep Benipal --- C4/Log.pm | 4 ++++ Koha/Item.pm | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/C4/Log.pm b/C4/Log.pm index 543096259a..d88b9598d5 100644 --- a/C4/Log.pm +++ b/C4/Log.pm @@ -124,6 +124,10 @@ sub logaction { # Log diff against empty hashref for newly created objects $updated = $is_object ? $original->unblessed : $original; $original = {}; + } elsif ( $actionname eq 'DELETE' ) { + # Log diff for deleted objects against empty hashref + $original = $is_object ? $original->unblessed : $original; + $updated = {}; } else { # Log diff against hashref of pre-modified object if passed in $original = $is_object ? $original->unblessed : $original; diff --git a/Koha/Item.pm b/Koha/Item.pm index b086156d4f..e35851e937 100644 --- a/Koha/Item.pm +++ b/Koha/Item.pm @@ -278,7 +278,7 @@ sub delete { $self->_after_item_action_hooks({ action => 'delete' }); - logaction( "CATALOGUING", "DELETE", $self->itemnumber, "item" ) + logaction( "CATALOGUING", "DELETE", $self->itemnumber, "item", undef, $self ) if C4::Context->preference("CataloguingLog"); Koha::BackgroundJob::BatchUpdateBiblioHoldsQueue->new->enqueue( -- 2.34.1