Bug 33188

Summary: Warning in Koha::Items->hidden_in_opac
Product: Koha Reporter: Fridolin Somers <fridolin.somers>
Component: Architecture, internals, and plumbingAssignee: Bugs List <koha-bugs>
Status: NEW --- QA Contact: Testopia <testopia>
Severity: normal    
Priority: P5 - low CC: dcook
Version: Main   
Hardware: All   
OS: All   
Change sponsored?: --- Patch complexity: ---
Documentation contact: Documentation submission:
Text to go in the release notes:
Version(s) released in:
Bug Depends on:    
Bug Blocks: 25790    

Description Fridolin Somers 2023-03-09 21:16:19 UTC
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.
Comment 1 Fridolin Somers 2023-03-09 21:18:36 UTC
Not sure how to fix.
Do we consider undef like empty string in order to allow hiding undef ?
Comment 2 David Cook 2023-03-09 22:32:07 UTC
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?