From 4eec44630254928b69aa5b67a27935d23fa04807 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Fri, 4 Feb 2022 15:46:15 -0300 Subject: [PATCH] Bug 29984: Remove unused method Koha::Patrons->anonymise_issue_history The method is no longer used, and replaced by Koha::Old::Checkouts->anonymize. To test: 1. Apply this patch 2. Run: $ kshell k$ prove t/db_dependent/Koha/Patrons.t => SUCCESS: Tests still pass 3. Run: $ git grep anonymise_issue_history => SUCCESS: The code doesn't mention it 4. Sign off :-D Signed-off-by: David Nind Signed-off-by: Martin Renvoize Signed-off-by: Fridolin Somers --- Koha/Patrons.pm | 39 ------------------------------- t/db_dependent/Koha/Patrons.t | 44 +++++++++++++++++++++++++++++++---- 2 files changed, 39 insertions(+), 44 deletions(-) diff --git a/Koha/Patrons.pm b/Koha/Patrons.pm index 81c763cfb7..c498ba55ca 100644 --- a/Koha/Patrons.pm +++ b/Koha/Patrons.pm @@ -158,45 +158,6 @@ sub search_patrons_to_anonymise { return Koha::Patrons->_new_from_dbic($rs); } -=head3 anonymise_issue_history - - Koha::Patrons->search->anonymise_issue_history( { [ before => $older_than_date ] } ); - -Anonymise issue history (old_issues) for all patrons older than the given date (optional). -To make sure all the conditions are met, the caller has the responsibility to -call search_patrons_to_anonymise to filter the Koha::Patrons set - -=cut - -sub anonymise_issue_history { - my ( $self, $params ) = @_; - - my $older_than_date = $params->{before}; - - $older_than_date = dt_from_string $older_than_date if $older_than_date; - - # The default of 0 does not work due to foreign key constraints - # The anonymisation should not fail quietly if AnonymousPatron is not a valid entry - # Set it to undef (NULL) - my $dtf = Koha::Database->new->schema->storage->datetime_parser; - my $nb_rows = 0; - while ( my $patron = $self->next ) { - my $old_issues_to_anonymise = $patron->old_checkouts->search( - { - ( - $older_than_date - ? ( returndate => - { '<' => $dtf->format_datetime($older_than_date) } ) - : () - ) - } - ); - my $anonymous_patron = C4::Context->preference('AnonymousPatron') || undef; - $nb_rows += $old_issues_to_anonymise->update( { 'old_issues.borrowernumber' => $anonymous_patron } ); - } - return $nb_rows; -} - =head3 delete Koha::Patrons->search({ some filters here })->delete({ move => 1 }); diff --git a/t/db_dependent/Koha/Patrons.t b/t/db_dependent/Koha/Patrons.t index 5daaa30dae..e7c49fc14e 100755 --- a/t/db_dependent/Koha/Patrons.t +++ b/t/db_dependent/Koha/Patrons.t @@ -1018,7 +1018,8 @@ subtest 'notice_email_address' => sub { $patron->delete; }; -subtest 'search_patrons_to_anonymise & anonymise_issue_history' => sub { +subtest 'search_patrons_to_anonymise' => sub { + plan tests => 5; # TODO create a subroutine in t::lib::Mocks @@ -1079,7 +1080,16 @@ subtest 'search_patrons_to_anonymise & anonymise_issue_history' => sub { my $patrons_to_anonymise = Koha::Patrons->search_patrons_to_anonymise( { before => '2010-10-11' } )->search( { 'me.borrowernumber' => $patron->{borrowernumber} } ); is( ref($patrons_to_anonymise), 'Koha::Patrons', 'search_patrons_to_anonymise should return Koha::Patrons' ); - my $rows_affected = Koha::Patrons->search_patrons_to_anonymise( { before => '2011-11-12' } )->anonymise_issue_history( { before => '2010-10-11' } ); + my $rows_affected = Koha::Old::Checkouts->search( + { + borrowernumber => [ + Koha::Patrons->search_patrons_to_anonymise( + { before => '2011-11-12' } + )->get_column('borrowernumber') + ], + returndate => { '<' => '2011-10-11', } + } + )->anonymize; ok( $rows_affected > 0, 'AnonymiseIssueHistory should affect at least 1 row' ); $patrons_to_anonymise = Koha::Patrons->search_patrons_to_anonymise( { before => '2010-10-11' } ); @@ -1094,7 +1104,16 @@ subtest 'search_patrons_to_anonymise & anonymise_issue_history' => sub { ($borrowernumber_used_to_anonymised) = $sth->fetchrow_array; is( $borrowernumber_used_to_anonymised, $patron->{borrowernumber}, 'The issue should not have been anonymised, the returned date is later' ); - $rows_affected = Koha::Patrons->search_patrons_to_anonymise( { before => '2011-11-12' } )->anonymise_issue_history; + $rows_affected = Koha::Old::Checkouts->search( + { + borrowernumber => [ + Koha::Patrons->search_patrons_to_anonymise( + { before => '2011-11-12' } + )->get_column('borrowernumber') + ], + returndate => { '<' => '2011-11-12', } + } + )->anonymize; $sth->execute($item_2->itemnumber); ($borrowernumber_used_to_anonymised) = $sth->fetchrow_array; is( $borrowernumber_used_to_anonymised, $anonymous->{borrowernumber}, 'The issue should have been anonymised, the returned date is before' ); @@ -1102,7 +1121,14 @@ subtest 'search_patrons_to_anonymise & anonymise_issue_history' => sub { my $sth_reset = $dbh->prepare(q|UPDATE old_issues SET borrowernumber = ? WHERE itemnumber = ?|); $sth_reset->execute( $patron->{borrowernumber}, $item_1->itemnumber ); $sth_reset->execute( $patron->{borrowernumber}, $item_2->itemnumber ); - $rows_affected = Koha::Patrons->search_patrons_to_anonymise->anonymise_issue_history; + $rows_affected = Koha::Old::Checkouts->search( + { + borrowernumber => [ + Koha::Patrons->search_patrons_to_anonymise->get_column( + 'borrowernumber') + ] + } + )->anonymize; $sth->execute($item_1->itemnumber); ($borrowernumber_used_to_anonymised) = $sth->fetchrow_array; is( $borrowernumber_used_to_anonymised, $anonymous->{borrowernumber}, 'The issue 1 should have been anonymised, before parameter was not passed' ); @@ -1166,7 +1192,15 @@ subtest 'search_patrons_to_anonymise & anonymise_issue_history' => sub { my ( $returned, undef, undef ) = C4::Circulation::AddReturn( $item->barcode, undef, undef, dt_from_string('2010-10-10') ); is( $returned, 1, 'The item should have been returned' ); - my $rows_affected = Koha::Patrons->search_patrons_to_anonymise( { before => '2010-10-11' } )->anonymise_issue_history( { before => '2010-10-11' } ); + my $rows_affected = Koha::Old::Checkouts->search( + { + borrowernumber => [ + Koha::Patrons->search_patrons_to_anonymise( + { before => '2010-10-11' } + )->get_column('borrowernumber') + ] + } + )->anonymize; ok( $rows_affected > 0, 'AnonymiseIssueHistory should affect at least 1 row' ); my $dbh = C4::Context->dbh; -- 2.39.5