From 8c2e32976a32ed7bf6f033d29a8f47f7783c548b Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Mon, 9 Aug 2021 16:28:16 +0000 Subject: [PATCH] Bug 28832: Don't batch modify fields that we don't update In bug 27837 we made sure to always pass through the permanent_location if it was passed in unlike other fields which are not passed if they have no value. During batch mod, however, fields that aren't editied have no value, so forcing permanent_location to pass through forces blanking it. This patch alters the script to only pass thgouhr for edit the fields that have been updated or cleared. To test: 1 - In frameworks add a new subfield to 952, "C" - make it editable in items tab and visible in intranet/editor 2 - In mappings map that subfield to items.permanent_location 3 - Set an item to have differing shelving location and permanent_location 4 - This saves correctly for an individual item 5 - Edit the item using Tools->batch item modification, updating the note field 6 - Note the permanet_location is removed 7 - Check the DB, the field is set to NULL 8 - Apply patch 9 - Repeat 10 - Permanent location is not cleared 11 - Verify that clearing fields works as before, including permanent_location Signed-off-by: Andrew Fuerste-Henry Signed-off-by: Andrew Fuerste-Henry Signed-off-by: Deb Stephenson Signed-off-by: Andrew Fuerste-Henry Signed-off-by: Martin Renvoize Signed-off-by: Andrew Fuerste-Henry (cherry picked from commit ba9713ba3a2d8fa5b94211dbc1e6003517079578) Signed-off-by: Victor Grousset/tuxayo --- tools/batchMod.pl | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tools/batchMod.pl b/tools/batchMod.pl index aeb5afd21e..ba616712a7 100755 --- a/tools/batchMod.pl +++ b/tools/batchMod.pl @@ -123,6 +123,15 @@ if ($op eq "action") { my $values_to_modify = scalar(grep {!/^$/} @values) || scalar(grep {!/^$/} @searches); my $values_to_blank = scalar(@disabled); + # Clear the fields we are not editing, leave fields we are blanking + foreach( my $i = 0; $i < scalar @values; $i++ ){ + unless( $values[$i] || grep { $subfields[$i] } @disabled ){ + splice(@values,$i,1); + splice(@subfields,$i,1); + splice(@tags,$i,1); + } + } + my $marcitem; # Once the job is done -- 2.39.5