[Koha-bugs] [Bug 28567] Pick-up location is not saved correctly when creating a new library

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Wed Jul 28 10:43:37 CEST 2021


https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=28567

--- Comment #19 from Jonathan Druart <jonathan.druart+koha at gmail.com> ---
(In reply to Marcel de Rooy from comment #18)
> (In reply to Jonathan Druart from comment #17)
> > > In this case I would opt for the Koha::Objects instead of copying the same
> > > code in controller scripts.
> > > 
> > > Object:new
> > >         # Remove the arguments which exist, are not defined but NOT NULL to
> > > use the default value
> > >         my $columns_info = $schema->resultset( $class->_type
> > > )->result_source->columns_info;
> > >         for my $column_name ( keys %$attributes ) {
> > >             my $c_info = $columns_info->{$column_name};
> > >             next if $c_info->{is_nullable};
> > >             next if not exists $attributes->{$column_name} or defined
> > > $attributes->{$column_name};
> > >             delete $attributes->{$column_name};
> > >         }
> > > Why not set $attributes->{$column_name} = $c_info->{default_value} if
> > > defined and delete only if not?
> > 
> > We just ignore if set. This is completely different code (we are dealing
> > with NOT NULL values). What's the question exactly, what do you suggest? Can
> > we discuss it somewhere else? :D
> 
> This code comes into play since admin/branches calls:
>     my $library = Koha::Library->new
> If Koha::Object->new here passed the default SQL value of 1, we could
> eliminate the mentioned confusing construction.
> Actually in the above comment even a reference to default value is made, but
> the code does not do it.

I am sorry, Marcel, but I still don't get it.
Can you be more explicit, maybe provide a patch?

Which "confusing construction" are you talking about? The map introduced by
this patch? It's just simple and easy Perl code.

In Koha::Object->new we are making the DBMS use the default value (so defined
in the DB schema) by *removing* the key of the attributes that is "NOT NULL"
*but* not defined!

Based on that, what I understand from your suggestion would be to remove
'pickup_location' from the constructor if it's equal to '1'. But that would be
very bad (what if the default value is modified later?), so I guess you had
something else in mind :)

-- 
You are receiving this mail because:
You are watching all bug changes.


More information about the Koha-bugs mailing list