Bug 23734 - Defaults set during patron imports throws warnings
Summary: Defaults set during patron imports throws warnings
Status: NEW
Alias: None
Product: Koha
Classification: Unclassified
Component: Architecture, internals, and plumbing (show other bugs)
Version: Main
Hardware: All All
: P5 - low normal (vote)
Assignee: Bugs List
QA Contact: Testopia
URL:
Keywords:
Depends on: 21465
Blocks:
  Show dependency treegraph
 
Reported: 2019-10-03 14:02 UTC by Nick Clemens
Modified: 2019-11-19 11:40 UTC (History)
2 users (show)

See Also:
Change sponsored?: ---
Patch complexity: ---
Documentation contact:
Documentation submission:
Text to go in the release notes:
Version(s) released in:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nick Clemens 2019-10-03 14:02:22 UTC
To recreate:
Create a small import file, with minimal columns, tail the logs, import and note warnings


IN DBIX/Class/Row:

elsif ($self->_is_column_numeric($col)) {  # do a numeric comparison if datatype allows it
    return $old == $new;

But in Koha/Patrons/Import.pm

We assume "" for all defaults

Even if we pass defaults of '0' for these columns
 elsif ( $defaults->{$key} ) {
won't be triggered by a 0 value, it should be 'exists'
Comment 1 Jonathan Druart 2019-11-19 11:40:27 UTC
What you suggest do not remove the warning.

I linked this bug report with bug 21761 as we saw that already in another (but similar) context.

I tried:
modified: Koha/Object.pm
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
@ Object.pm:139 @ sub store {
                 } else {
                     # If cannot be null, get the default value
                     # What if cannot be null and does not have a default value? Possible?
+                    undef $self->{$col};
                     $self->$col($columns_info->{$col}->{default_value});
                 }
             }

And get rid of of one of the 2 warnings.

There is 2 warnings per attributes: on ->set_column (called from ->store, see previous diff), and a bit later, I guess in update_or_insert

The attributes are the tinyint and not null: privacy_guarantor_fines, privacy_guarantor_checkouts and anonymized.
We could fix that at controller level but I feel like it must be fixed at Koha::Object level.