From 890f03c3a2119429f31ec48764b5ecb9b62ccbc1 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Thu, 26 Mar 2026 16:13:42 +0100 Subject: [PATCH] Bug 42030: (follow-up) Don't diff undefined fields This patch updates the diff for ADD/CREATE and DELETE logactions to exclude undefined fields from the diff. Signed-off-by: Lisette Scheer Signed-off-by: Lucas Gass (cherry picked from commit d0955994472b7d7ce0585fd9320668103396cd5f) Signed-off-by: Jacob O'Mara --- C4/Log.pm | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/C4/Log.pm b/C4/Log.pm index 603bc8695a..18e03f8390 100644 --- a/C4/Log.pm +++ b/C4/Log.pm @@ -123,13 +123,28 @@ sub logaction { if ( $actionname =~ /^(ADD|CREATE)$/ ) { # Log diff against empty hashref for newly created objects - $updated = $is_object ? $original->unblessed : $original; + $updated = $is_object ? $original->unblessed : $original; + for my $key ( keys %{$updated} ) { + + if ( defined $updated->{$key} && $updated->{$key} ne '' ) { + $updated->{$key} = "$updated->{$key}" if blessed( $updated->{$key} ); + } else { + delete $updated->{$key}; + } + } $original = {}; } elsif ( $actionname eq 'DELETE' ) { # Log diff for deleted objects against empty hashref $original = $is_object ? $original->unblessed : $original; - $updated = {}; + for my $key ( keys %{$original} ) { + if ( defined $original->{$key} && $original->{$key} ne '' ) { + $original->{$key} = "$original->{$key}" if blessed( $original->{$key} ); + } else { + delete $original->{$key}; + } + } + $updated = {}; } else { # Log diff against hashref of pre-modified object if passed in