From eae3f7b383aa506e1f7751a3ec0f168426b84af4 Mon Sep 17 00:00:00 2001 From: Nick Clemens <nick@bywatersolutions.com> Date: Tue, 2 Apr 2019 14:47:16 +0000 Subject: [PATCH] Bug 21946: Update Administration->Item types to allow for defining parent types To test: 1 - Browse to Administration -> Item types 2 - Not a new colum for prent type 3 - Edit an existing type and not you can select any type (except the current) as a parent 4 - Select one 5 - Edit the type you selected as parent 6 - Note it cannot have a parent defined 7 - Edit a new type, note you can select a parent Signed-off-by: Liz Rea <wizzyrea@gmail.com> Signed-off-by: Lisette Scheer <lisetteslatah@gmail.com> --- admin/itemtypes.pl | 8 +++++++ .../prog/en/modules/admin/itemtypes.tt | 26 +++++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/admin/itemtypes.pl b/admin/itemtypes.pl index 80b13c6888..c24430a719 100755 --- a/admin/itemtypes.pl +++ b/admin/itemtypes.pl @@ -71,11 +71,16 @@ if ( $op eq 'add_form' ) { }; } + my $parent_type = $itemtype ? $itemtype->parent_type : undef; + my $parent_types = Koha::ItemTypes->search({parent_type=>undef,itemtype => {'!='=>$itemtype_code}}); my $imagesets = C4::Koha::getImageSets( checked => ( $itemtype ? $itemtype->imageurl : undef ) ); my $searchcategory = GetAuthorisedValues("ITEMTYPECAT"); my $translated_languages = C4::Languages::getTranslatedLanguages( undef , C4::Context->preference('template') ); $template->param( itemtype => $itemtype, + parent_type => $parent_type, + parent_types => $parent_types, + is_a_parent => $itemtype ? Koha::ItemTypes->search({parent_type=>$itemtype_code})->count : 0, imagesets => $imagesets, searchcategory => $searchcategory, can_be_translated => ( scalar(@$translated_languages) > 1 ? 1 : 0 ), @@ -84,6 +89,7 @@ if ( $op eq 'add_form' ) { } elsif ( $op eq 'add_validate' ) { my $is_a_modif = $input->param('is_a_modif'); my $itemtype = Koha::ItemTypes->find($itemtype_code); + my $parent_type = $input->param('parent_type'); my $description = $input->param('description'); my $rentalcharge = $input->param('rentalcharge'); my $rentalcharge_daily = $input->param('rentalcharge_daily'); @@ -108,6 +114,7 @@ if ( $op eq 'add_form' ) { if ( $itemtype and $is_a_modif ) { # it's a modification $itemtype->description($description); + $itemtype->parent_type($parent_type); $itemtype->rentalcharge($rentalcharge); $itemtype->rentalcharge_daily($rentalcharge_daily); $itemtype->rentalcharge_hourly($rentalcharge_hourly); @@ -137,6 +144,7 @@ if ( $op eq 'add_form' ) { { itemtype => $itemtype_code, description => $description, + parent_type => $parent_type, rentalcharge => $rentalcharge, rentalcharge_daily => $rentalcharge_daily, rentalcharge_hourly => $rentalcharge_hourly, diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/itemtypes.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/itemtypes.tt index 6ac7988e60..eeffaf5d9c 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/itemtypes.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/itemtypes.tt @@ -96,7 +96,7 @@ Item types administration [% IF itemtype %] <h3>Modify item type</h3> [% ELSE %] - <h3>Add item type</h3> + ]<h3>Add item type</h3> [% END %] <form action="/cgi-bin/koha/admin/itemtypes.pl" name="Aform" method="post" id="itemtypeentry"> <input type="hidden" name="op" value="add_validate" /> @@ -115,6 +115,26 @@ Item types administration </li> [% END %] <li> + <label for="parent_type">Parent item type: </label> + [% IF !is_a_parent && parent_types %] + <select name="parent_type" id="parent_type"> + [% FOREACH pt IN parent_types %] + [% IF parent_type == pt.itemtype %] + <option value="[% pt.itemtype | html %]" selected="selected">[% pt.description | html %]</option> + [% ELSE %] + <option value="[% pt.itemtype | html %]">[% pt.description | html %]</option> + [% END %] + [% END %] + </select> + [% ELSIF is_a_parent %] + <input type="text" id="parent_type" value="[% parent_type | html %]" name="parent_type" size="10" maxlength="10" disabled/> + <p>Is a parent to another type, cannot have a parent</p> + [% ELSE %] + <input type="text" id="parent_type" value="[% parent_type | html %]" name="parent_type" size="10" maxlength="10" disabled/> + <p>No available parent types</p> + [% END %] + </li> + <li> <label for="description" class="required">Description: </label> <input type="text" id="description" name="description" size="48" value="[% itemtype.description | html %]" required="required" /> <span class="required">Required</span> [% IF can_be_translated %] @@ -349,6 +369,7 @@ Item types administration <thead> [% UNLESS Koha.Preference('noItemTypeImages') %]<th>Image</th>[% END %] <th>Code</th> + <th>Parent code</th> <th>Description</th> <th>Search category</th> <th>Not for loan</th> @@ -375,6 +396,9 @@ Item types administration </a> </td> <td> + [% itemtype.parent_type | html %] + </td> + <td> [% IF itemtype.translated_descriptions.size %] [% itemtype.description | html %] (default)<br/> [% FOR description IN itemtype.translated_descriptions %] -- 2.11.0