In the code: # Check the debt of this patrons guarantees if ( defined $no_issues_charge_guarantees ) { # Check the debt of this patrons guarantors *and* the guarantees of those guarantors if ( defined $no_issues_charge_guarantors_with_guarantees ) { It is not possible to undef the system preferences, they are set as blank for no value - we need to check if they are numbers
Created attachment 190307 [details] [review] Bug 41404: Use looks_like_a_number to verify if prefs are set This check adds a check to ensure we have number, not just defined To test: 1 - Apply only unit tests patch 2 - Run the tests prove -v t/db_dependent/Koha/Patron.t 3 - Apply this patch 4 - Run the tests 5 - They pass!
Created attachment 190313 [details] [review] Bug 41404: Use looks_like_a_number to verify if prefs are set This check adds a check to ensure we have number, not just defined To test: 1 - Apply only unit tests patch 2 - Run the tests prove -v t/db_dependent/Koha/Patron.t 3 - Apply this patch 4 - Run the tests 5 - They pass! Signed-off-by: David Nind <you@example.com>
There was no unit tests patch (maybe it is missing), but the tests passed after applying the patch.
Created attachment 190322 [details] [review] Bug 41404: Use looks_like_a_number to verify if prefs are set This check adds a check to ensure we have number, not just defined To test: 1 - Apply only unit tests patch 2 - Run the tests prove -v t/db_dependent/Koha/Patron.t 3 - Apply this patch 4 - Run the tests 5 - They pass! Signed-off-by: David Nind <david@davidnind.com>
My sign-off line was incorrect, so have updated.
1) Should we also make the same change for noissuescharge? 2) Remind me.. is '0' disabled or 'block all' in this case?
Created attachment 190699 [details] [review] Bug 41404: Use looks_like_a_number to verify if prefs are set This check adds a check to ensure we have number, not just defined To test: 1 - Apply only unit tests patch 2 - Run the tests prove -v t/db_dependent/Koha/Patron.t 3 - Apply this patch 4 - Run the tests 5 - They pass! Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Created attachment 190700 [details] [review] Bug 41404: (QA follow-up) Add tests for empty string and zero edge cases This QA follow-up adds comprehensive test coverage for edge cases that the original patch handles: 1. Empty string values ('') - the default value in sysprefs - Verifies that empty strings are treated as "not set" - Confirms charge calculations are skipped (performance optimization) - Ensures patrons are not blocked 2. Zero values (0) - valid numeric limit - Verifies that zero triggers charge calculation (valid number) - Confirms patrons are not blocked (0 means "no limit") - Documents intended behavior that 0 disables blocking 3. Positive numeric values - normal case - Confirms charges are calculated and blocking works correctly These tests validate that looks_like_number() is the correct approach rather than simple truthiness checking, as it properly distinguishes between: - Empty string '' (not a number, skip calculation) - Zero 0 (is a number, calculate but don't block) Test plan: 1. Apply this patch 2. Run the tests: prove t/db_dependent/Koha/Patron.t 3. Verify all tests pass Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Nice work everyone! Pushed to main for 26.05
Thanks all, pushed to 25.11.x