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> Signed-off-by: Alex Arnaud <alex.arnaud@biblibre.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
4f3a0a4b89
commit
453fd5ce90
|
|
@ -139,6 +139,20 @@ sub _library_limits {
|
|||
};
|
||||
}
|
||||
|
||||
=head3 parent
|
||||
|
||||
Returns the ItemType object of the parent_type or undef.
|
||||
|
||||
=cut
|
||||
|
||||
sub parent {
|
||||
my ( $self ) = @_;
|
||||
my $parent_rs = $self->_result->parent_type;
|
||||
return unless $parent_rs;
|
||||
return Koha::ItemType->_new_from_dbic( $parent_rs );
|
||||
|
||||
}
|
||||
|
||||
=head3 type
|
||||
|
||||
=cut
|
||||
|
|
|
|||
|
|
@ -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') || undef;
|
||||
my $description = $input->param('description');
|
||||
my $rentalcharge = $input->param('rentalcharge');
|
||||
my $rentalcharge_daily = $input->param('rentalcharge_daily');
|
||||
|
|
@ -110,6 +116,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);
|
||||
|
|
@ -141,6 +148,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,
|
||||
|
|
|
|||
|
|
@ -115,6 +115,27 @@ Item types administration
|
|||
<input type="text" id="itemtype" name="itemtype" size="10" maxlength="10" required="required" /> <span class="required">Required</span>
|
||||
</li>
|
||||
[% END %]
|
||||
<li>
|
||||
<label for="parent_type">Parent item type: </label>
|
||||
[% IF !is_a_parent && parent_types %]
|
||||
<select name="parent_type" id="parent_type">
|
||||
<option value="">None</option>
|
||||
[% 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>
|
||||
|
|
@ -369,8 +390,9 @@ Item types administration
|
|||
<table id="table_item_type">
|
||||
<thead>
|
||||
[% UNLESS Koha.Preference('noItemTypeImages') && Koha.Preference('OpacNoItemTypeImages') %]<th class="noExport">Image</th>[% END %]
|
||||
<th>Code</th>
|
||||
<th>Description</th>
|
||||
<th>Code</th>
|
||||
<th>Parent code</th>
|
||||
<th>Search category</th>
|
||||
<th>Not for loan</th>
|
||||
<th>Hide in OPAC</th>
|
||||
|
|
@ -391,25 +413,50 @@ Item types administration
|
|||
[% IF image_location %]<img src="[% image_location | html %]" alt="" />[% ELSE %] [% END %]
|
||||
</td>
|
||||
[% END %]
|
||||
<td>
|
||||
[% IF itemtype.parent_type %]
|
||||
[% IF itemtype.parent.translated_descriptions.size %]
|
||||
[% itemtype.parent.description | html %] (default)<br/>
|
||||
[% ELSE %]
|
||||
[% itemtype.parent.description | html %]
|
||||
[% END %]
|
||||
</br>
|
||||
[% IF itemtype.translated_descriptions.size %]
|
||||
[% itemtype.description | html %] (default)<br/>
|
||||
[% FOR description IN itemtype.translated_descriptions %]
|
||||
[% IF description.translation == itemtype.translated_description %]
|
||||
-- <b>[% description.translation | html %]</b>
|
||||
[% ELSE %]
|
||||
-- [% description.translation | html %] ([% description.lang | html %])
|
||||
[% END %]
|
||||
<br/>
|
||||
[% END %]
|
||||
[% ELSE %]
|
||||
-- [% itemtype.description | html %]
|
||||
[% END %]
|
||||
[% ELSE %]
|
||||
[% IF itemtype.translated_descriptions.size %]
|
||||
[% itemtype.description | html %] (default)<br/>
|
||||
[% FOR description IN itemtype.translated_descriptions %]
|
||||
[% IF description.translation == itemtype.translated_description %]
|
||||
<b>[% description.translation | html %]</b>
|
||||
[% ELSE %]
|
||||
[% description.translation | html %] ([% description.lang | html %])
|
||||
[% END %]
|
||||
<br/>
|
||||
[% END %]
|
||||
[% ELSE %]
|
||||
[% itemtype.description | html %]
|
||||
[% END %]
|
||||
[% END %]
|
||||
</td>
|
||||
<td>
|
||||
<a href="/cgi-bin/koha/admin/itemtypes.pl?op=add_form&itemtype=[% itemtype.itemtype | uri %]">
|
||||
[% itemtype.itemtype | html %]
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
[% IF itemtype.translated_descriptions.size %]
|
||||
[% itemtype.description | html %] (default)<br/>
|
||||
[% FOR description IN itemtype.translated_descriptions %]
|
||||
[% IF description.translation == itemtype.translated_description %]
|
||||
<b>[% description.translation | html %]</b>
|
||||
[% ELSE %]
|
||||
[% description.translation | html %] ([% description.lang | html %])
|
||||
[% END %]
|
||||
<br/>
|
||||
[% END %]
|
||||
[% ELSE %]
|
||||
[% itemtype.description | html %]
|
||||
[% END %]
|
||||
[% itemtype.parent_type | html %]
|
||||
</td>
|
||||
<td>[% itemtype.searchcategory | html %]</td>
|
||||
<td>[% IF ( itemtype.notforloan ) %]Yes[% ELSE %] [% END %]</td>
|
||||
|
|
@ -493,7 +540,7 @@ Item types administration
|
|||
"aoColumnDefs": [
|
||||
{ "aTargets": [ -1 ], "bSortable": false, "bSearchable": false },
|
||||
],
|
||||
"aaSorting": [[ 2, "asc" ]],
|
||||
"aaSorting": [[ 1, "asc" ]],
|
||||
"iDisplayLength": 10,
|
||||
"sPaginationType": "full"
|
||||
}, columns_settings);
|
||||
|
|
|
|||
Loading…
Reference in New Issue