From 2cb01116ee3ed6ce6296cb0ad5e794fd68e58f8a Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Fri, 8 May 2020 06:46:59 +0000 Subject: [PATCH] Bug 22437: (follow-up) Move deletion of merge requests to DelAuthority Lines can be moved. Deletion can be done too if skip_merge is not set. Signed-off-by: Marcel de Rooy Signed-off-by: Jonathan Druart Signed-off-by: Martin Renvoize Signed-off-by: Joy Nelson --- C4/AuthoritiesMarc.pm | 7 ++++++- authorities/merge.pl | 6 +----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm index c5b2131408..b5786772e6 100644 --- a/C4/AuthoritiesMarc.pm +++ b/C4/AuthoritiesMarc.pm @@ -29,7 +29,7 @@ use C4::Charset; use C4::Log; use Koha::MetadataRecord::Authority; use Koha::Authorities; -use Koha::Authority::MergeRequest; +use Koha::Authority::MergeRequests; use Koha::Authority::Types; use Koha::Authority; use Koha::Libraries; @@ -670,6 +670,11 @@ sub DelAuthority { my $authid = $params->{authid} || return; my $skip_merge = $params->{skip_merge}; my $dbh = C4::Context->dbh; + + # Remove older pending merge requests for $authid to itself. (See bug 22437) + my $condition = { authid => $authid, authid_new => [undef, 0, $authid], done => 0 }; + Koha::Authority::MergeRequests->search($condition)->delete; + merge({ mergefrom => $authid }) if !$skip_merge; $dbh->do( "DELETE FROM auth_header WHERE authid=?", undef, $authid ); logaction( "AUTHORITIES", "DELETE", $authid, "authority" ) if C4::Context->preference("AuthoritiesLog"); diff --git a/authorities/merge.pl b/authorities/merge.pl index f1cdd02cd5..8943ba9355 100755 --- a/authorities/merge.pl +++ b/authorities/merge.pl @@ -83,11 +83,7 @@ if ($merge) { my $MARCfrom = GetAuthority( $recordid2 ); merge({ mergefrom => $recordid2, MARCfrom => $MARCfrom, mergeto => $recordid1, MARCto => $record }); - # Delete the other record. Do not merge. It is unneeded and could under - # special circumstances have unwanted side-effects. - # Remove older pending merge requests for $recordid2 to itself. The above merge did the job already or will do. (See bug 22437) - my $condition = { authid => $recordid2, authid_new => [undef, 0, $recordid2], done => 0 }; - Koha::Authority::MergeRequests->search($condition)->delete; + # Delete the other record. No need to merge. DelAuthority({ authid => $recordid2, skip_merge => 1 }); # Parameters -- 2.39.5