Bug 23083: Fix course reserve item editing if one of the value is set to UNCHANGED
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 20 Jun 2019 01:08:04 +0000 (20:08 -0500)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Fri, 5 Jul 2019 07:34:13 +0000 (08:34 +0100)
Test plan:
0: Do not apply the patches
1: Create an item with itype, ccode, location, and holding branch set
2: Create a course
3: Add item to course, changing the values for itype, ccode, and location
4: Click Edit for that item on course-details.pl
5: Assign new values for itype, ccode, and location but leave the holding library dropdown set to LEAVE UNCHANGED
6: Hit Save
7: Back on course-details.pl, observe that the item is still showing the values set in step 3
8: Apply this patch
9: Repeat 4 to 6
10: Back on course-details.pl, observe that the item is now showing the correct values
11: Edit the course reserve again, setting new values for itype, ccode, and location and setting the holding library dropdown to whatever the holding library for the item is currently
12: hit save
13: On course-details.pl, see that the change actually happened, the item is now showing the values set in step 9

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

C4/CourseReserves.pm

index 428d7e9..39630b6 100644 (file)
@@ -531,11 +531,12 @@ sub _UpdateCourseItem {
       unless ($course_item);
     $ci_id = $course_item->{'ci_id'} unless ($ci_id);
 
-
-    my %mod_params;
-    foreach (@FIELDS) {
-        $mod_params{$_} = $params{$_};
-    }
+    my %mod_params =
+      map {
+        defined $params{$_} && $params{$_} ne ''
+          ? ( $_ => $params{$_} )
+          : ()
+      } @FIELDS;
 
     ModItem( \%mod_params, undef, $course_item->{'itemnumber'} );
 }