Bug 15803: Koha::AuthorisedValues - Remove C4::Koha::GetAuthorisedValueCategories

The subroutine C4::Koha::GetAuthorisedValueCategories just retrieves all
the authorised value categories.
We already have a method in the Koha::AuthorisedValues module to do this
job, let's use it!

Technical explanations:
The new subroutine of the AuthorisedValues TT plugin will allow to get
the authorised value categories from the templates.
The new html_helpers include file will get rid of the if selected else
end statements. Bug 15758 already uses this file, see the commit
description for more informations.

Test plan:
1/ Create or edit a new fund (aqbudgets.pl), the fields "statistic 1"
and "statistic 2" should be correctly filled with the list of authorised
value categories
2/ Edit subfields for a biblio and authority framework.
The "Authorized value" dropdown list should be correctly filled on both
pages
3/ Create new items search fields (from the administration area), same
as previously, the authorised value category dropdown list should be
correctly filled
4/ Add and edit patron attribute types, check the authorised value
category list.

Signed-off-by: Aleisha Amohia <aleishaamohia@hotmail.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
Jonathan Druart 2016-02-11 11:26:35 +00:00 committed by Kyle M Hall
parent d25840fc68
commit e6e09c540f
19 changed files with 61 additions and 151 deletions

View File

@ -52,7 +52,6 @@ BEGIN {
&getitemtypeimagesrc
&getitemtypeimagelocation
&GetAuthorisedValues
&GetAuthorisedValueCategories
&GetNormalizedUPC
&GetNormalizedISBN
&GetNormalizedEAN
@ -824,26 +823,6 @@ sub GetAuthorisedValues {
return \@results;
}
=head2 GetAuthorisedValueCategories
$auth_categories = GetAuthorisedValueCategories();
Return an arrayref of all of the available authorised
value categories.
=cut
sub GetAuthorisedValueCategories {
my $dbh = C4::Context->dbh;
my $sth = $dbh->prepare("SELECT DISTINCT category FROM authorised_values ORDER BY category");
$sth->execute;
my @results;
while (defined (my $category = $sth->fetchrow_array) ) {
push @results, $category;
}
return \@results;
}
=head2 xml_escape
my $escaped_string = C4::Koha::xml_escape($string);

View File

@ -22,6 +22,7 @@ use Template::Plugin;
use base qw( Template::Plugin );
use C4::Koha;
use Koha::AuthorisedValues;
sub GetByCode {
my ( $self, $category, $code, $opac ) = @_;
@ -43,6 +44,20 @@ sub GetAuthValueDropbox {
return C4::Koha::GetAuthvalueDropbox($category, $default);
}
sub GetCategories {
my ( $self, $params ) = @_;
my $selected = $params->{selected};
my @categories = Koha::AuthorisedValues->new->categories;
return [
map {
{
category => $_,
( ( $selected and $selected eq $_ ) ? ( selected => 1 ) : () ),
}
} @categories
];
}
1;
=head1 NAME

View File

@ -140,24 +140,11 @@ if ($op eq 'add_form') {
}
$budget_parent = GetBudget($budget_parent_id);
# populates the YUI planning button
my $categories = GetAuthorisedValueCategories();
my @auth_cats_loop1 = ();
foreach my $category (@$categories) {
my $entry = { category => $category,
selected => ( $budget and $budget->{sort1_authcat} eq $category ? 1 : 0 ),
};
push @auth_cats_loop1, $entry;
}
my @auth_cats_loop2 = ();
foreach my $category (@$categories) {
my $entry = { category => $category,
selected => ( $budget and $budget->{sort2_authcat} eq $category ? 1 : 0 ),
};
push @auth_cats_loop2, $entry;
}
$template->param(authorised_value_categories1 => \@auth_cats_loop1);
$template->param(authorised_value_categories2 => \@auth_cats_loop2);
# populates the planning button
$template->param(
sort1_auth => $budget->{sort1_authcat},
sort2_auth => $budget->{sort2_authcat},
);
if($budget->{'budget_permission'}){
my $budget_permission = "budget_perm_".$budget->{'budget_permission'};

View File

@ -25,6 +25,7 @@ use C4::Context;
use C4::Koha;
use Koha::Authority::Types;
use Koha::AuthorisedValues;
use List::MoreUtils qw( uniq );
@ -92,11 +93,11 @@ if ($op eq 'add_form') {
push @kohafields, "auth_header.".$field;
}
# build authorised value list
my $authorised_values = C4::Koha::GetAuthorisedValueCategories;
unshift @$authorised_values, '';
push @$authorised_values, 'branches';
push @$authorised_values, 'itemtypes';
# build authorised value category list
my @authorised_value_categories = Koha::AuthorisedValues->new->categories;
unshift @authorised_value_categories, '';
push @authorised_value_categories, 'branches';
push @authorised_value_categories, 'itemtypes';
# build thesaurus categories list
my @authtypes = uniq( "", map { $_->authtypecode } Koha::Authority::Types->search );
@ -138,7 +139,7 @@ if ($op eq 'add_form') {
$row_data{seealso} = $data->{'seealso'};
$row_data{kohafields} = \@kohafields;
$row_data{kohafield} = $data->{'kohafield'};
$row_data{authorised_values} = $authorised_values;
$row_data{authorised_values} = \@authorised_value_categories;
$row_data{authorised_value} = $data->{'authorised_value'};
$row_data{frameworkcodes} = \@authtypes;
$row_data{frameworkcode} = $data->{'frameworkcode'};
@ -167,7 +168,7 @@ if ($op eq 'add_form') {
$row_data{mandatory} = 0;
$row_data{isurl} = 0;
$row_data{kohafields} = \@kohafields,
$row_data{authorised_values} = $authorised_values;
$row_data{authorised_values} = \@authorised_value_categories;
$row_data{frameworkcodes} = \@authtypes;
$row_data{value_builders} = \@value_builder;
$row_data{row} = $i;
@ -199,7 +200,7 @@ if ($op eq 'add_form') {
my @tab = $input->multi_param('tab');
my @seealso = $input->multi_param('seealso');
my @ohidden = $input->multi_param('ohidden');
my @authorised_values = $input->multi_param('authorised_value');
my @authorised_value_categories = $input->multi_param('authorised_value');
my $authtypecode = $input->param('authtypecode');
my @frameworkcodes = $input->multi_param('frameworkcode');
my @value_builder =$input->multi_param('value_builder');
@ -215,7 +216,7 @@ if ($op eq 'add_form') {
my $kohafield =$kohafield[$i];
my $tab =$tab[$i];
my $seealso =$seealso[$i];
my $authorised_value =$authorised_values[$i];
my $authorised_value = $authorised_value_categories[$i];
my $frameworkcode =$frameworkcodes[$i];
my $value_builder=$value_builder[$i];
my $defaultvalue = $defaultvalue[$i];

View File

@ -92,13 +92,6 @@ if ($op eq 'add_form') {
$data=$sth->fetchrow_hashref;
}
my @authorised_values = @{C4::Koha::GetAuthorisedValueCategories()}; # function returns array ref, dereferencing
unshift @authorised_values, ""; # put empty value first
my $authorised_value = {
values => \@authorised_values,
default => $data->{'authorised_value'},
};
if ($searchfield) {
$template->param('searchfield' => $searchfield);
$template->param('heading_modify_tag_p' => 1);
@ -110,7 +103,7 @@ if ($op eq 'add_form') {
libopac => $data->{'libopac'},
repeatable => "".$data->{'repeatable'},
mandatory => "".$data->{'mandatory'},
authorised_value => $authorised_value,
authorised_value => $data->{authorised_value},
authtypecode => $authtypecode,
);
# END $OP eq ADD_FORM

View File

@ -21,7 +21,6 @@ use CGI;
use C4::Auth;
use C4::Output;
use C4::Koha;
use Koha::Item::Search::Field qw(GetItemSearchField ModItemSearchField);
@ -53,11 +52,9 @@ if ($op eq 'mod') {
}
my $field = GetItemSearchField($name);
my $authorised_values_categories = C4::Koha::GetAuthorisedValueCategories();
$template->param(
field => $field,
authorised_values_categories => $authorised_values_categories,
);
output_html_with_http_headers $cgi, $cookie, $template->output;

View File

@ -21,7 +21,6 @@ use CGI;
use C4::Auth;
use C4::Output;
use C4::Koha;
use Koha::Item::Search::Field qw(AddItemSearchField GetItemSearchFields DelItemSearchField);
@ -71,11 +70,9 @@ if ($op eq 'add') {
}
my @fields = GetItemSearchFields();
my $authorised_values_categories = C4::Koha::GetAuthorisedValueCategories();
$template->param(
fields => \@fields,
authorised_values_categories => $authorised_values_categories,
);
output_html_with_http_headers $cgi, $cookie, $template->output;

View File

@ -28,6 +28,7 @@ use C4::Output;
use C4::Context;
use Koha::Caches;
use Koha::AuthorisedValues;
use Koha::BiblioFrameworks;
# retrieve parameters
@ -94,13 +95,6 @@ if ($op eq 'add_form') {
$data=$sth->fetchrow_hashref;
}
my @authorised_values = @{C4::Koha::GetAuthorisedValueCategories()}; # function returns array ref, dereferencing
unshift @authorised_values, ""; # put empty value first
my $authorised_value = {
values => \@authorised_values,
default => $data->{'authorised_value'},
};
if ($searchfield) {
$template->param(searchfield => $searchfield);
$template->param(action => "Modify tag");
@ -114,7 +108,7 @@ if ($op eq 'add_form') {
libopac => $data->{'libopac'},
repeatable => $data->{'repeatable'},
mandatory => $data->{'mandatory'},
authorised_value => $authorised_value,
authorised_value => $data->{authorised_value},
frameworkcode => $frameworkcode,
); # FIXME: move checkboxes to presentation layer
# END $OP eq ADD_FORM

View File

@ -101,7 +101,6 @@ sub add_attribute_type_form {
categories => $patron_categories,
branches_loop => \@branches_loop,
);
authorised_value_category_list($template);
$template->param(classes_val_loop => GetAuthorisedValues( 'PA_CLASS'));
}
@ -132,8 +131,8 @@ sub error_add_attribute_type_form {
$template->param(
attribute_type_form => 1,
confirm_op => 'add_attribute_type_confirmed',
authorised_value_category => $input->param('authorised_value_category'),
);
authorised_value_category_list($template, $input->param('authorised_value_category'));
}
sub add_update_attribute_type {
@ -249,10 +248,9 @@ sub edit_attribute_type_form {
if ($attr_type->display_checkout()) {
$template->param(display_checkout_checked => 'checked="checked"');
}
authorised_value_category_list($template, $attr_type->authorised_value_category());
$template->param( authorised_value_category => $attr_type->authorised_value_category() );
$template->param(classes_val_loop => GetAuthorisedValues( 'PA_CLASS' ));
my $branches = Koha::Libraries->search( {}, { order_by => ['branchname'] } )->unblessed;
my @branches_loop;
my $selected_branches = $attr_type->branches;
@ -311,17 +309,3 @@ sub patron_attribute_type_list {
$template->param(available_attribute_types => \@attributes_loop);
$template->param(display_list => 1);
}
sub authorised_value_category_list {
my $template = shift;
my $selected = @_ ? shift : '';
my $categories = GetAuthorisedValueCategories();
my @list = ();
foreach my $category (@$categories) {
my $entry = { category => $category };
$entry->{selected} = 1 if $category eq $selected;
push @list, $entry;
}
$template->param(authorised_value_categories => \@list);
}

View File

@ -50,13 +50,7 @@
<label for="authorised_values_category">Authorised values category: </label>
<select id="authorised_values_category" name="authorised_values_category">
<option value="">- None -</option>
[% FOREACH category IN authorised_values_categories %]
[% IF field && field.authorised_values_category == category %]
<option value="[% category %]" selected="selected">[% category %]</option>
[% ELSE %]
<option value="[% category %]">[% category %]</option>
[% END %]
[% END %]
[% PROCESS options_for_authorised_value_categories authorised_value_categories => AuthorisedValues.GetCategories( selected => field.authorised_values_category ) %]
</select>
</li>
</ol>

View File

@ -7,3 +7,13 @@
[% END%]
[% END %]
[% END %]
[% BLOCK options_for_authorised_value_categories %]
[% FOREACH avc IN authorised_value_categories %]
[% IF avc.selected %]
<option value="[% avc.category %]" selected="selected">[% avc.category %]</option>
[% ELSE %]
<option value="[% avc.category %]">[% avc.category %]</option>
[% END %]
[% END %]
[% END %]

View File

@ -1,3 +1,4 @@
[% USE AuthorisedValues %]
[% USE Branches %]
[% USE Price %]
[% INCLUDE 'doc-head-open.inc' %]
@ -594,34 +595,14 @@ var MSG_PARENT_BENEATH_BUDGET = "- " + _("New budget-parent is beneath budget")
<label style="white-space: nowrap;" for="authorised_value_category1">Statistic 1 done on: </label>
<select name="sort1_authcat" id="authorised_value_category1">
<option value=""></option>
[% FOREACH authorised_value_categories IN authorised_value_categories1 %]
[% IF ( authorised_value_categories.selected ) %]
<option value="[% authorised_value_categories.category %]" selected="selected">
[% authorised_value_categories.category %]
</option>
[% ELSE %]
<option value="[% authorised_value_categories.category %]">
[% authorised_value_categories.category %]
</option>
[% END %]
[% END %]
[% PROCESS options_for_authorised_value_categories authorised_value_categories => AuthorisedValues.GetCategories( selected => sort1_authcat ) %]
</select>
</li>
<li>
<label style="white-space: nowrap;" for="authorised_value_category2">Statistic 2 done on: </label>
<select name="sort2_authcat" id="authorised_value_category2">
<option value=""></option>
[% FOREACH authorised_value_categories IN authorised_value_categories2 %]
[% IF ( authorised_value_categories.selected ) %]
<option value="[% authorised_value_categories.category %]" selected="selected">
[% authorised_value_categories.category %]
</option>
[% ELSE %]
<option value="[% authorised_value_categories.category %]">
[% authorised_value_categories.category %]
</option>
[% END %]
[% END %]
[% PROCESS options_for_authorised_value_categories authorised_value_categories => AuthorisedValues.GetCategories( selected => sort2_authcat ) %]
</select>
</li>
</ol>

View File

@ -1,3 +1,4 @@
[% USE AuthorisedValues %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Administration &rsaquo; Authority MARC framework [% IF ( add_form ) %][% IF ( use_heading_flags_p ) %]
[% IF ( heading_modify_tag_p ) %]&rsaquo; [% IF ( authtypecode ) %][% authtypecode %] Framework[% ELSE %]Default framework[% END %] &rsaquo; Modify tag[% END %]
@ -114,13 +115,8 @@
</li>
<li><label for="authorised_value">Authorized value: </label>
<select name="authorised_value" id="authorised_value" size="1">
[% FOREACH value IN authorised_value.values %]
[% IF ( value == authorised_value.default ) %]
<option value="[% value %]" selected="selected">[% value %]</option>
[% ELSE %]
<option value="[% value %]">[% value %]</option>
[% END %]
[% END %]
<option value=""></option>
[% PROCESS options_for_authorised_value_categories authorised_value_categories => AuthorisedValues.GetCategories( selected => authorised_value ) %]
</select>
(if you select a value here, the indicators will be limited to the authorized value list)
</li>

View File

@ -1,3 +1,4 @@
[% USE AuthorisedValues %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Administration &rsaquo; Item search fields</title>
[% INCLUDE 'doc-head-close.inc' %]

View File

@ -1,3 +1,4 @@
[% USE AuthorisedValues %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Administration &rsaquo; Item search fields</title>
[% INCLUDE 'doc-head-close.inc' %]

View File

@ -1,3 +1,4 @@
[% USE AuthorisedValues %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Administration &rsaquo;
[% IF ( add_form ) %]MARC frameworks &rsaquo; [% action %] [% searchfield %][% END %]
@ -100,13 +101,8 @@ $(document).ready(function() {
</li>
<li><label for="authorised_value">Authorized value: </label>
<select name="authorised_value" id="authorised_value" size="1">
[% FOREACH value IN authorised_value.values %]
[% IF ( value == authorised_value.default ) %]
<option value="[% value %]" selected="selected">[% value %]</option>
[% ELSE %]
<option value="[% value %]">[% value %]</option>
[% END %]
[% END %]
<option value=""></option>
[% PROCESS options_for_authorised_value_categories authorised_value_categories => AuthorisedValues.GetCategories( selected => authorised_value ) %]
</select>
(if you select a value here, the indicators will be limited to the authorized value list)</li>
</ol></fieldset>

View File

@ -1,3 +1,4 @@
[% USE AuthorisedValues %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Administration &rsaquo; Patron attribute types
[% IF ( attribute_type_form ) %]
@ -142,17 +143,7 @@ $(document).ready(function() {
<li><label for="authorised_value_category">Authorized value category: </label>
<select name="authorised_value_category" id="authorised_value_category">
<option value=""></option>
[% FOREACH authorised_value_categorie IN authorised_value_categories %]
[% IF ( authorised_value_categorie.selected ) %]
<option value="[% authorised_value_categorie.category %]" selected="selected">
[% authorised_value_categorie.category %]
</option>
[% ELSE %]
<option value="[% authorised_value_categorie.category %]">
[% authorised_value_categorie.category %]
</option>
[% END %]
[% END %]
[% PROCESS options_for_authorised_value_categories authorised_value_categories => AuthorisedValues.GetCategories( selected => authorised_value_category ) %]
</select>
<span>Authorized value category; if one is selected, the patron record input page will only allow values
to be chosen from the authorized value list. However, an authorized value list is not

View File

@ -1,3 +1,4 @@
[% USE AuthorisedValues %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Serials &rsaquo; Manage new fields for subscriptions
[% IF op == "list" %] &rsaquo; List of fields
@ -136,13 +137,7 @@
<label for="av">Authorised value category: </label>
<select name="authorised_value_category">
<option value="">None</option>
[% FOR category IN categories %]
[% IF field.authorised_value_category == category %]
<option value="[% category %]" selected="selected">[% category %]</option>
[% ELSE %]
<option value="[% category %]">[% category %]</option>
[% END %]
[% END %]
[% PROCESS options_for_authorised_value_categories authorised_value_categories => AuthorisedValues.GetCategories( selected => field.authorised_value_category ) %]
</select>
</li>
<li>

View File

@ -101,7 +101,6 @@ if ( $op eq 'delete' ) {
}
if ( $op eq 'add_form' ) {
my $categories = C4::Koha::GetAuthorisedValueCategories();
my $field;
if ( $field_id ) {
$field = Koha::AdditionalField->new( { id => $field_id } )->fetch;
@ -109,7 +108,6 @@ if ( $op eq 'add_form' ) {
$template->param(
field => $field,
categories => $categories,
);
}