Some sysprefs have NULL as their default value, and systempreferences.value allows NULL values. However C4::Context->set_preference does not unset a syspref if "undef" is passed. Additionally some of the sysprefs that have NULL as default will generate warnings in the logs (and test suite output). opac/opac-suggestions.pl: for my $f ( split( /\s*\,\s*/, C4::Context->preference("OPACSuggestionUnwantedFields") ) ) { Here is the current list: +-------------------------------+-------+ | variable | value | +-------------------------------+-------+ | decreaseLoanHighHoldsDuration | NULL | | decreaseLoanHighHoldsValue | NULL | | ILLHiddenRequestStatuses | NULL | | ILLOpacbackends | NULL | | ILLSendStaffNotices | NULL | | ListOwnerDesignated | NULL | | MarcFieldDocURL | NULL | | MaxFine | NULL | | OPACSuggestionUnwantedFields | NULL | | ReportsExportLimit | NULL | | SerialsSearchResultsLimit | NULL | +-------------------------------+-------+
Created attachment 184129 [details] [review] Bug 40405: Set systempreferences.value to NOT NULL Some sysprefs have NULL as their default value, and systempreferences.value allows NULL values. However C4::Context->set_preference does not unset a syspref if "undef" is passed. Additionally some of the sysprefs that have NULL as default will generate warnings in the logs (and test suite output). opac/opac-suggestions.pl: for my $f ( split( /\s*\,\s*/, C4::Context->preference("OPACSuggestionUnwantedFields") ) ) { Here is the current list: +-------------------------------+-------+ | variable | value | +-------------------------------+-------+ | decreaseLoanHighHoldsDuration | NULL | | decreaseLoanHighHoldsValue | NULL | | ILLHiddenRequestStatuses | NULL | | ILLOpacbackends | NULL | | ILLSendStaffNotices | NULL | | ListOwnerDesignated | NULL | | MarcFieldDocURL | NULL | | MaxFine | NULL | | OPACSuggestionUnwantedFields | NULL | | ReportsExportLimit | NULL | | SerialsSearchResultsLimit | NULL | +-------------------------------+-------+ Test plan: Code review required here, please confirm the above and that the different occurrences do not use "undef" as a value. Note that some tests now do not longer generate warnings (eg. t/db_dependent/selenium/opac_ill_requests.t)
Created attachment 184130 [details] [review] Bug 40405: Set decreaseLoanHighHolds\* to 0 When reviewing the different sysprefs that had "NULL" as default, I only found those 2 occurrences that could be problematic. I think we should default to 0 here.
Created attachment 184131 [details] [review] Bug 40405: [DO NOT PUSH] Show the problem with C4::Context->set_preference Apply this patch before the others and notice the failure.