Koha/Koha/Course/Item.pm
Kyle M Hall 7d15ff3404
Bug 23727: Editing course reserve items is broken
Adding an item to course reserves and trying to edit any values in a second step does not work. Values are not saved and the table shows all values as "Unchanged".

This patch set adds two new sets of columns to the course_items table.

The first set determines if the specified column should be swapped or
not. The was previously 'implied' by the column being set to undef which
has been the root problem with that way of knowing if a column should
swap or not.

The second set of new columns are for storing the item field values
while the item is on course reserve. Previously, the column values
were swapped between the items table and the course_items table,
which leaves ambiguity as to what each value is. Now, the original
columns *always* store the value when the item is on course reserve,
and the new storage columns store the original item value while the
item is on reserve, and are NULL when an item is *not* on reserve.

Test Plan:
1) Apply this patch
2) Add and edit course items, not the new checkboxes for enabling fields
3) Everything should function as before

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
2020-04-17 13:45:56 +01:00

78 lines
1.4 KiB
Perl

package Koha::Course::Item;
# This file is part of Koha.
#
# Koha is free software; you can redistribute it and/or modify it under the
# terms of the GNU General Public License as published by the Free Software
# Foundation; either version 3 of the License, or (at your option) any later
# version.
#
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with Koha; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
use Modern::Perl;
use Carp;
use base qw(Koha::Object);
use Koha::Course::Reserves;
=head1 NAME
Koha::Course::Item - Koha Course Item Object class
=head1 API
=head2 Methods
=head3 is_enabled
=cut
sub is_enabled {
my ( $self ) = @_;
return $self->enabled eq 'yes';
}
=head3 course_reserves
=cut
sub course_reserves {
my ($self) = @_;
my $rs = $self->_result->course_reserves;
return Koha::Course::Reserves->_new_from_dbic( $rs );
}
=head3 item
=cut
sub item {
my ($self) = @_;
my $rs = $self->_result->itemnumber;
return Koha::Item->_new_from_dbic( $rs );
}
=head2 Internal methods
=cut
=head3 _type
=cut
sub _type {
return 'CourseItem';
}
1;