From 6c8f56af2064b7ace55cd32d1337ba9d5ab504bb Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 11 Feb 2016 11:26:35 +0000 Subject: [PATCH] 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. --- C4/Koha.pm | 21 ------------------ Koha/Template/Plugin/AuthorisedValues.pm | 15 +++++++++++++ admin/aqbudgets.pl | 25 ++++++---------------- admin/auth_subfields_structure.pl | 19 ++++++++-------- admin/auth_tag_structure.pl | 9 +------- admin/items_search_field.pl | 3 --- admin/items_search_fields.pl | 3 --- admin/marctagstructure.pl | 11 +++------- admin/patron-attr-types.pl | 20 ++--------------- .../en/includes/admin-items-search-field-form.inc | 8 +------ .../prog/en/includes/doc-head-close.inc | 1 + .../prog/en/includes/html_helpers.inc | 9 ++++++++ .../prog/en/modules/admin/aqbudgets.tt | 25 +++------------------- .../prog/en/modules/admin/auth_tag_structure.tt | 10 +++------ .../prog/en/modules/admin/items_search_field.tt | 1 + .../prog/en/modules/admin/items_search_fields.tt | 1 + .../prog/en/modules/admin/marctagstructure.tt | 10 +++------ .../prog/en/modules/admin/patron-attr-types.tt | 13 ++--------- .../prog/en/modules/serials/add_fields.tt | 9 ++------ serials/add_fields.pl | 2 -- 20 files changed, 63 insertions(+), 152 deletions(-) create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers.inc diff --git a/C4/Koha.pm b/C4/Koha.pm index bb35811..b068215 100644 --- a/C4/Koha.pm +++ b/C4/Koha.pm @@ -53,7 +53,6 @@ BEGIN { &getitemtypeimagesrc &getitemtypeimagelocation &GetAuthorisedValues - &GetAuthorisedValueCategories &GetKohaAuthorisedValues &GetKohaAuthorisedValuesFromField &GetKohaAuthorisedValuesMapping @@ -1063,26 +1062,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 GetAuthorisedValueByCode $authorised_value = GetAuthorisedValueByCode( $category, $authvalcode, $opac ); diff --git a/Koha/Template/Plugin/AuthorisedValues.pm b/Koha/Template/Plugin/AuthorisedValues.pm index 62565e0..34a9bbb 100644 --- a/Koha/Template/Plugin/AuthorisedValues.pm +++ b/Koha/Template/Plugin/AuthorisedValues.pm @@ -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 ) = @_; @@ -38,6 +39,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 diff --git a/admin/aqbudgets.pl b/admin/aqbudgets.pl index 0e6b744..84a7d4b 100755 --- a/admin/aqbudgets.pl +++ b/admin/aqbudgets.pl @@ -153,25 +153,12 @@ if ($op eq 'add_form') { $row{selected} = 1 if $budget and $thisbranch eq $budget->{'budget_branchcode'}; push @branchloop_select, \%row; } - - # 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'}; diff --git a/admin/auth_subfields_structure.pl b/admin/auth_subfields_structure.pl index ffa74f2..0ba7677 100755 --- a/admin/auth_subfields_structure.pl +++ b/admin/auth_subfields_structure.pl @@ -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]; diff --git a/admin/auth_tag_structure.pl b/admin/auth_tag_structure.pl index 710ff91..fbe69de 100755 --- a/admin/auth_tag_structure.pl +++ b/admin/auth_tag_structure.pl @@ -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 diff --git a/admin/items_search_field.pl b/admin/items_search_field.pl index a544959..c1f6c0c 100755 --- a/admin/items_search_field.pl +++ b/admin/items_search_field.pl @@ -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; diff --git a/admin/items_search_fields.pl b/admin/items_search_fields.pl index 1ebf243..f93f0bb 100755 --- a/admin/items_search_fields.pl +++ b/admin/items_search_fields.pl @@ -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; diff --git a/admin/marctagstructure.pl b/admin/marctagstructure.pl index 27d9592..d68a3b3 100755 --- a/admin/marctagstructure.pl +++ b/admin/marctagstructure.pl @@ -28,6 +28,8 @@ use C4::Output; use C4::Context; use Koha::Cache; +use Koha::BiblioFrameworks; +use Koha::AuthorisedValues; # retrieve parameters my $input = new CGI; @@ -103,13 +105,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"); @@ -123,7 +118,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 diff --git a/admin/patron-attr-types.pl b/admin/patron-attr-types.pl index ceb1184..2b8e969 100755 --- a/admin/patron-attr-types.pl +++ b/admin/patron-attr-types.pl @@ -98,7 +98,6 @@ sub add_attribute_type_form { categories => GetBorrowercategoryList, branches_loop => \@branches_loop, ); - authorised_value_category_list($template); $template->param(classes_val_loop => GetAuthorisedValues( 'PA_CLASS')); } @@ -129,8 +128,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 { @@ -246,10 +245,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 = GetBranches; my @branches_loop; my $selected_branches = $attr_type->branches; @@ -306,17 +304,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); -} diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/admin-items-search-field-form.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/admin-items-search-field-form.inc index a886a8b..fd39a47 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/admin-items-search-field-form.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/admin-items-search-field-form.inc @@ -50,13 +50,7 @@ diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/doc-head-close.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/doc-head-close.inc index f72425d..078a6c3 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/doc-head-close.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/doc-head-close.inc @@ -43,6 +43,7 @@ [% INCLUDE 'validator-strings.inc' %] +[% PROCESS 'html_helpers.inc' %] [% IF ( IntranetUserJS ) %]