From 10661f70ff3462ffac73afa6a6aa44d1d0a8f123 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Wed, 6 Sep 2023 15:48:12 +0000 Subject: [PATCH] Bug 29522: [alternate] Skip relinking bibliographic records when merging authorities If autolinking is enabled, there are scenarios where the authorities merge process updates the record, then sends it to ModBiblio which then AutoLinks the record, undoing the changes in the record (as the 'from' authority is not removed until the process is complete) This patch simply disables the autolinking process when merging authorities To test: Set system preferences AutoCreateAuthorities = don't generate RequireChoosingExistingAuthority = don't require AutoLinkBiblios = Do CatalogModuleRelink = Do LinkerKeepStale = Don't LinkerModule = first match LinkerRelink = Do 1. Create an authority record 1.1. Go to Authorities 1.2. Click on "New authority" and choose an authority type (I chose Corporate name)* 1.3. Fill in the mandatory fields (000, 003, 005, 008, 040) 1.4. In tab 1, click on the label of the main heading (110 for Corporate name) 1.5. Fill in subfield 1.6. Copy content of subfield 1.7. Click on "Save" 1.8. Note the authority record number 2. Duplicate the authority record 2.1. Click on "Edit" and choose "Edit as new (duplicate)" 2.2. Click on "Save" 2.3. Click on "No: Save as new authority" 2.4. Note the authority record number (should be the number from step 1.8 +1) 3. Link one of the authority records to a bibliographic record 3.1 In another tab, do a catalog search 3.2. Click on "Edit record" under one of the search results 3.3. Go to the relevant tab (for corporate name, I used field 710 in tab 7) 3.3.a. If there are no empty fields for that tag, click the "Repeat this tag" button (two rectangles) 3.4. Paste the text previously copied in subfield 3.5. Click on "Link authorities automatically" at the top of the page 3.6. Note the authority record number in subfield --> The linked authority record should be the first authority record (step 1.8) 3.7. Click on "Save" 4. Merge the two authority records, keep the one that is not linked to the bibliographic record 4.1. Go back to the tab with the authorities 4.1. Go to Authorities 4.2. Search for the aurhorities previous created 4.2. Click on "Actions" and choose "Merge" for both records 4.3. Select the record number that is NOT linked to the bibliographic record 4.4. Click on "Next" 4.5. Click on "Merge" 5. Check the bibliographic record 5.1. Go back to the tab with the bibliographic record and refresh the page (Ctrl+F5) 5.2. Hover the mouse cursor over the name or term, without clicking 5.3. Note the record number that appears at the bottom of the screen --> The record number was not changed 6. Apply the patch 6.1. Run prove t/AuthoritiesMarc_MARC21.t 6.2. Repeat Previous steps 1, 2, 3, 4, 5 --> The record number is change Signed-off-by: Barbara Petritsch Signed-off-by: Marcel de Rooy Signed-off-by: Katrin Fischer (cherry picked from commit 1b9371beb33dae4b661768609dca9930a91bfb56) Signed-off-by: Fridolin Somers --- C4/AuthoritiesMarc.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm index 6af31ec6b9..70c5903dc4 100644 --- a/C4/AuthoritiesMarc.pm +++ b/C4/AuthoritiesMarc.pm @@ -1648,7 +1648,7 @@ sub merge { } } next if !$update; - ModBiblio($marcrecord, $biblio->biblionumber, $biblio->frameworkcode); + ModBiblio( $marcrecord, $biblio->biblionumber, $biblio->frameworkcode, { disable_autolink => 1 } ); $counteditedbiblio++; } return $counteditedbiblio; -- 2.39.5