Koha/course_reserves/add_items.pl
Hayley Mapley 3eee6f3091 Bug 21003: Removed warning and changed wording on add_items-step2.tt
When editing an item in a Course Reserve, the page displayed is the same
that is displayed when adding an item to a Course Reserve. This patch
removes the warning 'This course already has this item on reserve' when
the item is being edited, as well as changes the title, breadcrumbs, and
header of the div. This patch also Changes the header of the div to say
'Edit 'book_name' in 'course_name'' instead of 'Add 'book_name' to
'course_name'' when adding items to a course reserve if the item is
already present.

To test:
1) Create a new course in Course Reserves (you will need Course
    Reserves enabled in syspref)
2) Add an item by clicking the Add reserves button
3) Click the edit button on the right hand side of the item listing
under the Reserves heading
4) Observe that the warning 'The course already has this item on reserve' appears, and that the title, breadcrumbs and
header of the div all say Add/Reserve
5) Apply the patch
6) Repeat step 3 and observe that the title, breadcrumbs and header of
the div now say Edit
7) Also verify that when adding a reserve with a barcode that does not
yet exist in the course reserves that the warning 'The course already...' is not displayed and that the header of the div says Add
8) Finally verify that when adding a reserve with a barcode that DOES
exist in the course reserves that the warning 'The course already...' IS
displayed and the header of the div says Edit
9) Sign off!

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
2019-03-23 09:51:36 +00:00

113 lines
3.6 KiB
Perl
Executable file

#!/usr/bin/perl
#
# Copyright 2012 Bywater Solutions
#
# 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, see <http://www.gnu.org/licenses>.
use Modern::Perl;
use CGI qw ( -utf8 );
use C4::Auth;
use C4::Output;
use C4::Koha;
use C4::Biblio;
use Koha::Items;
use C4::CourseReserves qw(GetCourse GetCourseItem GetCourseReserve ModCourseItem ModCourseReserve);
use Koha::Items;
use Koha::ItemTypes;
my $cgi = new CGI;
my $action = $cgi->param('action') || '';
my $course_id = $cgi->param('course_id') || '';
my $barcode = $cgi->param('barcode') || '';
my $return = $cgi->param('return') || '';
my $itemnumber = ($cgi->param('itemnumber') && $action eq 'lookup') ? $cgi->param('itemnumber') : '';
my $is_edit = $cgi->param('is_edit') || '';
my $item = Koha::Items->find( { ( $itemnumber ? ( itemnumber => $itemnumber ) : ( barcode => $barcode ) ) } );
my $title = ($item) ? $item->biblio->title : undef;
my $step = ( $action eq 'lookup' && $item ) ? '2' : '1';
my $tmpl = ($course_id) ? "add_items-step$step.tt" : "invalid-course.tt";
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
{ template_name => "course_reserves/$tmpl",
query => $cgi,
type => "intranet",
authnotrequired => 0,
flagsrequired => { coursereserves => 'add_reserves' },
}
);
if ( !$item && $action eq 'lookup' ){
$template->param( ERROR_ITEM_NOT_FOUND => 1 );
$template->param( UNKNOWN_BARCODE => $barcode ) if $barcode;
}
$template->param( course => GetCourse($course_id) );
if ( $action eq 'lookup' and $item ) {
my $course_item = GetCourseItem( itemnumber => $item->itemnumber );
my $course_reserve =
($course_item)
? GetCourseReserve(
course_id => $course_id,
ci_id => $course_item->{'ci_id'}
)
: undef;
my $itemtypes = Koha::ItemTypes->search;
$template->param(
item => $item,
biblio => $item->biblio,
course_item => $course_item,
course_reserve => $course_reserve,
is_edit => $is_edit,
ccodes => GetAuthorisedValues('CCODE'),
locations => GetAuthorisedValues('LOC'),
itypes => $itemtypes, # FIXME We certainly want to display the translated_description in the template
return => $return,
);
} elsif ( $action eq 'add' ) {
my $ci_id = ModCourseItem(
itemnumber => scalar $cgi->param('itemnumber'),
itype => scalar $cgi->param('itype'),
ccode => scalar $cgi->param('ccode'),
holdingbranch => scalar $cgi->param('holdingbranch'),
location => scalar $cgi->param('location'),
);
my $cr_id = ModCourseReserve(
course_id => $course_id,
ci_id => $ci_id,
staff_note => scalar $cgi->param('staff_note'),
public_note => scalar $cgi->param('public_note'),
);
if ( $return ) {
print $cgi->redirect("/cgi-bin/koha/course_reserves/course-details.pl?course_id=$return");
exit;
}
}
output_html_with_http_headers $cgi, $cookie, $template->output;