From 7eb7f570da831149f1f5d13062aa7de747a4ae23 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Thu, 7 Oct 2021 15:28:40 -0300 Subject: [PATCH] Bug 29157: Date and Datetime attributes cannot be set NULL MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This patch makes Koha::Object->attribute_from_api allow setting attributes the undef value. The original implementation passed the value directly to dt_from_string, which made the attribute be set the current date. To test: 1. Apply the regression tests patch 2. Run: $ kshell k$ prove t/db_dependent/Koha/Object.t \ t/db_dependent/api/v1/patrons.t => FAIL: Tests fail! Our code is buggy! 3. Apply this patch 4. Repeat 2 => SUCCESS! Fix fixed this thing! 5. Sign off :-D Signed-off-by: Tomas Cohen Arazi Signed-off-by: David Nind Signed-off-by: Eric Phetteplace Signed-off-by: Joonas Kylmälä Signed-off-by: Jonathan Druart Signed-off-by: Kyle M Hall (cherry picked from commit 2b93696da19a8a155ee5230b245827c077f8e520) Signed-off-by: Fridolin Somers --- Koha/Object.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Koha/Object.pm b/Koha/Object.pm index 45f9c9ea4b..a001b833bb 100644 --- a/Koha/Object.pm +++ b/Koha/Object.pm @@ -709,7 +709,8 @@ sub attributes_from_api { } elsif ( _date_or_datetime_column_type( $columns_info->{$koha_field_name}->{data_type} ) ) { try { - $value = dt_from_string($value, 'rfc3339'); + $value = dt_from_string($value, 'rfc3339') + if defined $value; } catch { Koha::Exceptions::BadParameter->throw( parameter => $key ); -- 2.39.5