From 2952550c8773611b117935197ee642be84aef3c3 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Mon, 3 Jan 2022 15:08:27 -0300 Subject: [PATCH] Bug 29525: Make batch_anonymise.pl deal with holds This patch makes the batch_anonymise.pl script handle holds too. It does so by leveraging on the newly introduced method 'filter_by_anonymizable' and also 'anonymize'. To test: 1. Have a patron with two past holds. 2. Make sure they are a few days back: $ koha-mysql kohadev > UPDATE old_reserves SET timestamp=ADDDATE(NOW(), INTERVAL -4 DAY); 3. Run: $ kshell k$ perl misc/cronjobs/batch_anonymise.pl --days 2 -v => SUCCESS: You see something like: Checkouts and holds before 2022-01-01 will be anonymised. 0 checkouts anonymised. 2 holds anonymised. 4. Repeat 3 => SUCCESS: They are already anonymized. You see Checkouts and holds before 2022-01-01 will be anonymised. 0 checkouts anonymised. 0 holds anonymised. 5. Sign off :-D Signed-off-by: Andrew Fuerste-Henry Signed-off-by: Martin Renvoize Signed-off-by: Fridolin Somers --- misc/cronjobs/batch_anonymise.pl | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/misc/cronjobs/batch_anonymise.pl b/misc/cronjobs/batch_anonymise.pl index edea4fa7ed..5383578ef1 100755 --- a/misc/cronjobs/batch_anonymise.pl +++ b/misc/cronjobs/batch_anonymise.pl @@ -17,15 +17,19 @@ # You should have received a copy of the GNU General Public License # along with Koha; if not, see . -use strict; -use warnings; +use Modern::Perl; use Koha::Script -cron; + use C4::Context; +use C4::Log qw( cronlogaction ); + +use Koha::Database; +use Koha::Old::Holds; use Koha::Patrons; + use Date::Calc qw( Add_Delta_Days Today ); use Getopt::Long qw( GetOptions ); -use C4::Log qw( cronlogaction ); sub usage { print STDERR <search_patrons_to_anonymise( { before => $formatdate } )->anonymise_issue_history( { before => $formatdate } ); $verbose and print int($rows) . " checkouts anonymised.\n"; +$rows = Koha::Old::Holds + ->filter_by_anonymizable + ->filter_by_last_update( { days => $days } ) + ->anonymize; + +$verbose and print int($rows) . " holds anonymised.\n"; + exit(0); -- 2.39.5