In Koha::Items->hidden_in_opac there is often a warning : Use of uninitialized value in string eq at /home/koha/src/Koha/Item.pm line 633. This the line : if ( any { $self->$field eq $_ } @{ $rules->{$field} } ) { When $self->$field is undef, the eq creates the warn. This can happen with any nillable field like items.location not yet defined after item acquisition.
Not sure how to fix. Do we consider undef like empty string in order to allow hiding undef ?
Shouldn't it be updated to one of the following: 1. if ( any { $self->$field && $self->$field eq $_ } @{ $rules->{$field} } ) { 2. if ( any { my $field = $self->$field; ($field && $field eq $_ ) ? 1 : 0; } @{ $rules->{$field} } ) { Or am I missing something?
Created attachment 173647 [details] [review] Bug 33188: Remove warning from Koha::Item->hidden_in_opac "Use of uninitialized value in string eq" Test plan: prove t/db_dependent/Koha/Item.t should return green
Created attachment 173732 [details] [review] Bug 33188: Remove warning from Koha::Item->hidden_in_opac "Use of uninitialized value in string eq" Test plan: prove t/db_dependent/Koha/Item.t should return green Signed-off-by: David Nind <david@davidnind.com>
Created attachment 173733 [details] [review] Bug 33188: Remove warning from Koha::Item->hidden_in_opac "Use of uninitialized value in string eq" Test plan: prove t/db_dependent/Koha/Item.t should return green Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Edit: tidied the tests (tcohen)
Simple fix, includes tests! Note: please remember to tidy your patches before submitting. Please refer to the relevant wiki section for setting up your editor here: https://wiki.koha-community.org/wiki/Perltidy :-P
Pushed for 24.11! Well done everyone, thank you!