Bugzilla – Attachment 41291 Details for
Bug 10363
Move authorised value related code into its own package
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[SIGNED OFF] Bug 10363: Use Koha::AuthorisedValue[s] in the admin page
SIGNED-OFF-Bug-10363-Use-KohaAuthorisedValues-in-t.patch (text/plain), 28.26 KB, created by
Tomás Cohen Arazi (tcohen)
on 2015-07-31 18:31:14 UTC
(
hide
)
Description:
[SIGNED OFF] Bug 10363: Use Koha::AuthorisedValue[s] in the admin page
Filename:
MIME Type:
Creator:
Tomás Cohen Arazi (tcohen)
Created:
2015-07-31 18:31:14 UTC
Size:
28.26 KB
patch
obsolete
>From 4c7dfa7a9f8ba9b58061f7638e9a650d75825e48 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@biblibre.com> >Date: Mon, 10 Nov 2014 14:11:20 +0100 >Subject: [PATCH] [SIGNED OFF] Bug 10363: Use Koha::AuthorisedValue[s] in the > admin page > >Now we have packages, we need use them in the pl script. > >Test plan: >Verify there are no regression on addind/editing/deleting authorised >values. >Done forget to test the branch limitation. > >Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> >Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> >--- > Koha/AuthorisedValues.pm | 40 ++- > admin/authorised_values.pl | 313 ++++++++------------- > .../prog/en/modules/admin/authorised_values.tt | 105 ++++--- > t/db_dependent/AuthorisedValues.t | 18 +- > 4 files changed, 206 insertions(+), 270 deletions(-) > >diff --git a/Koha/AuthorisedValues.pm b/Koha/AuthorisedValues.pm >index 8d8193b..ec201c3 100644 >--- a/Koha/AuthorisedValues.pm >+++ b/Koha/AuthorisedValues.pm >@@ -23,7 +23,7 @@ use Carp; > > use Koha::Database; > >-use Koha::Borrower; >+use Koha::AuthorisedValue; > > use base qw(Koha::Objects); > >@@ -46,27 +46,39 @@ my @objects = Koha::AuthorisedValues->search($params); > sub search { > my ( $self, $params ) = @_; > >- carp("No branchcode passed in for authorised values search!") >- unless $params->{branchcode}; >- > my $branchcode = $params->{branchcode}; > delete( $params->{branchcode} ); > >- my $rs = $self->_resultset()->search( >- { >- %$params, >- -or => [ >- 'authorised_values_branches.branchcode' => undef, >- 'authorised_values_branches.branchcode' => $branchcode, >- ], >- }, >- { join => 'authorised_values_branches' } >- ); >+ my $or = >+ $branchcode >+ ? { >+ '-or' => [ >+ 'authorised_values_branches.branchcode' => undef, >+ 'authorised_values_branches.branchcode' => $branchcode, >+ ] >+ } >+ : {}; >+ my $join = $branchcode ? { join => 'authorised_values_branches' } : {}; >+ my $rs = $self->_resultset() >+ ->search( { %$params, %$or, }, $join ); > > my $class = ref($self); > return wantarray ? $self->_wrap( $rs->all() ) : $class->new_from_dbic($rs); > } > >+sub categories { >+ my ( $self ) = @_; >+ my $rs = $self->_resultset->search( >+ undef, >+ { >+ select => ['category'], >+ distinct => 1, >+ order_by => 'category', >+ }, >+ ); >+ return map $_->get_column('category'), $rs->all; >+} >+ > =head3 type > > =cut >diff --git a/admin/authorised_values.pl b/admin/authorised_values.pl >index 9e83512..022348e 100755 >--- a/admin/authorised_values.pl >+++ b/admin/authorised_values.pl >@@ -17,8 +17,7 @@ > # You should have received a copy of the GNU General Public License > # along with Koha; if not, see <http://www.gnu.org/licenses>. > >-use strict; >-use warnings; >+use Modern::Perl; > > use CGI qw ( -utf8 ); > use C4::Auth; >@@ -27,31 +26,15 @@ use C4::Context; > use C4::Koha; > use C4::Output; > >- >-sub AuthorizedValuesForCategory { >- my ($searchstring) = shift or return; >- my $dbh = C4::Context->dbh; >- $searchstring=~ s/\'/\\\'/g; >- my @data=split(' ',$searchstring); >- my $sth=$dbh->prepare(' >- SELECT id, category, authorised_value, lib, lib_opac, imageurl >- FROM authorised_values >- WHERE (category = ?) >- ORDER BY category, authorised_value >- '); >- $sth->execute("$data[0]"); >- return $sth->fetchall_arrayref({}); >-} >+use Koha::AuthorisedValues; > > my $input = new CGI; > my $id = $input->param('id'); >-my $op = $input->param('op') || ''; >-our $offset = $input->param('offset') || 0; >-our $searchfield = $input->param('searchfield'); >+my $op = $input->param('op') || 'list'; >+my $searchfield = $input->param('searchfield'); > $searchfield = '' unless defined $searchfield; > $searchfield =~ s/\,//g; >-our $script_name = "/cgi-bin/koha/admin/authorised_values.pl"; >-our $dbh = C4::Context->dbh; >+my @messages; > > our ($template, $borrowernumber, $cookie)= get_template_and_user({ > template_name => "admin/authorised_values.tt", >@@ -62,31 +45,22 @@ our ($template, $borrowernumber, $cookie)= get_template_and_user({ > debug => 1, > }); > >-$template->param( script_name => $script_name, >- ($op||'else') => 1 ); > ################## ADD_FORM ################################## > # called by default. Used to create form to add or modify a record > if ($op eq 'add_form') { >- my $data; >- my @selected_branches; >- if ($id) { >- my $sth=$dbh->prepare("select id, category, authorised_value, lib, lib_opac, imageurl from authorised_values where id=?"); >- $sth->execute($id); >- $data=$sth->fetchrow_hashref; >- $sth = $dbh->prepare("SELECT b.branchcode, b.branchname FROM authorised_values_branches AS avb, branches AS b WHERE avb.branchcode = b.branchcode AND avb.av_id = ?;"); >- $sth->execute( $id ); >- while ( my $branch = $sth->fetchrow_hashref ) { >- push @selected_branches, $branch; >- } >- } else { >- $data->{'category'} = $input->param('category'); >- } >+ my ( $selected_branches, $category, $av ); >+ if ($id) { >+ $av = Koha::AuthorisedValues->new->find( $id ); >+ $selected_branches = $av->branch_limitations; >+ } else { >+ $category = $input->param('category'); >+ } > > my $branches = GetBranches; > my @branches_loop; > > foreach my $branchcode ( sort { uc($branches->{$a}->{branchname}) cmp uc($branches->{$b}->{branchname}) } keys %$branches ) { >- my $selected = ( grep {$_->{branchcode} eq $branchcode} @selected_branches ) ? 1 : 0; >+ my $selected = ( grep {$_->{branchcode} eq $branchcode} @$selected_branches ) ? 1 : 0; > push @branches_loop, { > branchcode => $branchcode, > branchname => $branches->{$branchcode}->{branchname}, >@@ -96,152 +70,104 @@ if ($op eq 'add_form') { > > if ($id) { > $template->param(action_modify => 1); >- $template->param('heading_modify_authorized_value_p' => 1); >- } elsif ( ! $data->{'category'} ) { >+ } elsif ( ! $category ) { > $template->param(action_add_category => 1); >- $template->param('heading_add_new_category_p' => 1); > } else { > $template->param(action_add_value => 1); >- $template->param('heading_add_authorized_value_p' => 1); > } >- $template->param('use_heading_flags_p' => 1); >- $template->param( category => $data->{'category'}, >- authorised_value => $data->{'authorised_value'}, >- lib => $data->{'lib'}, >- lib_opac => $data->{'lib_opac'}, >- id => $data->{'id'}, >- imagesets => C4::Koha::getImageSets( checked => $data->{'imageurl'} ), >- offset => $offset, >- branches_loop => \@branches_loop, >- ); >- >-################## ADD_VALIDATE ################################## >-# called by add_form, used to insert/modify data in DB >-} elsif ($op eq 'add_validate') { >+ >+ if ( $av ) { >+ $template->param( >+ category => $av->category, >+ authorised_value => $av->authorised_value, >+ lib => $av->lib, >+ lib_opac => $av->lib_opac, >+ id => $av->id, >+ imagesets => C4::Koha::getImageSets( checked => $av->imageurl ), >+ ); >+ } else { >+ $template->param( >+ category => $category, >+ imagesets => C4::Koha::getImageSets(), >+ ); >+ } >+ $template->param( >+ branches_loop => \@branches_loop, >+ ); >+ >+} elsif ($op eq 'add') { > my $new_authorised_value = $input->param('authorised_value'); > my $new_category = $input->param('category'); > my $imageurl = $input->param( 'imageurl' ) || ''; >- $imageurl = '' if $imageurl =~ /removeImage/; >+ $imageurl = '' if $imageurl =~ /removeImage/; > my $duplicate_entry = 0; > my @branches = $input->param('branches'); > > if ( $id ) { # Update >- my $sth = $dbh->prepare( "SELECT category, authorised_value FROM authorised_values WHERE id = ? "); >- $sth->execute($id); >- my ($category, $authorised_value) = $sth->fetchrow_array(); >- if ( $authorised_value ne $new_authorised_value ) { >- my $sth = $dbh->prepare_cached( "SELECT COUNT(*) FROM authorised_values " . >- "WHERE category = ? AND authorised_value = ? and id <> ? "); >- $sth->execute($new_category, $new_authorised_value, $id); >- ($duplicate_entry) = $sth->fetchrow_array(); >- } >- unless ( $duplicate_entry ) { >- my $sth=$dbh->prepare( 'UPDATE authorised_values >- SET category = ?, >- authorised_value = ?, >- lib = ?, >- lib_opac = ?, >- imageurl = ? >- WHERE id=?' ); >- my $lib = $input->param('lib'); >- my $lib_opac = $input->param('lib_opac'); >- undef $lib if ($lib eq ""); # to insert NULL instead of a blank string >- undef $lib_opac if ($lib_opac eq ""); # to insert NULL instead of a blank string >- $sth->execute($new_category, $new_authorised_value, $lib, $lib_opac, $imageurl, $id); >- if ( @branches ) { >- $sth = $dbh->prepare("DELETE FROM authorised_values_branches WHERE av_id = ?"); >- $sth->execute( $id ); >- $sth = $dbh->prepare( >- "INSERT INTO authorised_values_branches >- ( av_id, branchcode ) >- VALUES ( ?, ? )" >- ); >- for my $branchcode ( @branches ) { >- next if not $branchcode; >- $sth->execute($id, $branchcode); >- } >- } >- $sth->finish; >- print $input->redirect("/cgi-bin/koha/admin/authorised_values.pl?searchfield=$new_category&offset=$offset"); >- exit; >+ my $av = Koha::AuthorisedValues->new->find( $id ); >+ >+ $av->lib( $input->param('lib') || undef ); >+ $av->lib_opac( $input->param('lib_opac') || undef ); >+ $av->category( $new_category ); >+ $av->authorised_value( $new_authorised_value ); >+ $av->imageurl( $imageurl ); >+ eval{ >+ $av->store; >+ $av->branch_limitations( \@branches ); >+ }; >+ if ( $@ ) { >+ push @messages, {type => 'error', code => 'error_on_update' }; >+ } else { >+ push @messages, { type => 'message', code => 'success_on_update' }; > } > } > else { # Insert >- my $sth = $dbh->prepare_cached( "SELECT COUNT(*) FROM authorised_values " . >- "WHERE category = ? AND authorised_value = ? "); >- $sth->execute($new_category, $new_authorised_value); >- ($duplicate_entry) = $sth->fetchrow_array(); >- unless ( $duplicate_entry ) { >- my $sth=$dbh->prepare( 'INSERT INTO authorised_values >- ( category, authorised_value, lib, lib_opac, imageurl ) >- values (?, ?, ?, ?, ?)' ); >- my $lib = $input->param('lib'); >- my $lib_opac = $input->param('lib_opac'); >- undef $lib if ($lib eq ""); # to insert NULL instead of a blank string >- undef $lib_opac if ($lib_opac eq ""); # to insert NULL instead of a blank string >- $sth->execute( $new_category, $new_authorised_value, $lib, $lib_opac, $imageurl ); >- $id = $dbh->{'mysql_insertid'}; >- if ( @branches ) { >- $sth = $dbh->prepare( >- "INSERT INTO authorised_values_branches >- ( av_id, branchcode ) >- VALUES ( ?, ? )" >- ); >- for my $branchcode ( @branches ) { >- next if not $branchcode; >- $sth->execute($id, $branchcode); >- } >- } >- my $category = $input->param('category'); >- print $input->redirect("/cgi-bin/koha/admin/authorised_values.pl?searchfield=$category&offset=$offset"); >- exit; >+ my $av = Koha::AuthorisedValue->new( { >+ category => $new_category, >+ authorised_value => $new_authorised_value, >+ lib => $input->param('lib') || undef, >+ lib_opac => $input->param('lib_opac') || undef, >+ imageurl => $imageurl, >+ } ); >+ eval { >+ $av->store; >+ $av->branch_limitations( \@branches ); >+ }; >+ if ( $@ ) { >+ push @messages, {type => 'error', code => 'error_on_insert' }; >+ } else { >+ push @messages, { type => 'message', code => 'success_on_insert' }; > } > } >- if ( $duplicate_entry ) { >- $template->param(duplicate_category => $new_category, >- duplicate_value => $new_authorised_value, >- else => 1); >- default_form(); >- } >- >-################## DELETE_CONFIRM ################################## >-# called by default form, used to confirm deletion of data in DB >-} elsif ($op eq 'delete_confirm') { >- my $sth=$dbh->prepare("select category,authorised_value,lib,lib_opac from authorised_values where id=?"); >- $sth->execute($id); >- my $data=$sth->fetchrow_hashref; >- $id = $input->param('id') unless $id; >- $template->param(searchfield => $searchfield, >- Tlib => $data->{'lib'}, >- Tlib_opac => $data->{'lib_opac'}, >- Tvalue => $data->{'authorised_value'}, >- id =>$id, >- ); > >- # END $OP eq DELETE_CONFIRM >-################## DELETE_CONFIRMED ################################## >-# called by delete_confirm, used to effectively confirm deletion of data in DB >-} elsif ($op eq 'delete_confirmed') { >- my $id = $input->param('id'); >- my $sth=$dbh->prepare("delete from authorised_values where id=?"); >- $sth->execute($id); >- print $input->redirect("/cgi-bin/koha/admin/authorised_values.pl?searchfield=$searchfield&offset=$offset"); >- exit; >- # END $OP eq DELETE_CONFIRMED >-################## DEFAULT ################################## >-} else { # DEFAULT >- default_form(); >-} #---- END $OP eq DEFAULT >-output_html_with_http_headers $input, $cookie, $template->output; >+ $op = 'list'; >+ $searchfield = $new_category; >+} elsif ($op eq 'delete') { >+ my $av = Koha::AuthorisedValues->new->find( $input->param('id') ); >+ my $deleted = eval {$av->delete}; >+ if ( $@ or not $deleted ) { >+ push @messages, {type => 'error', code => 'error_on_delete' }; >+ } else { >+ push @messages, { type => 'message', code => 'success_on_delete' }; >+ } > >-exit 0; >+ $op = 'list'; >+ $template->param( delete_success => 1 ); >+} >+ >+$template->param( >+ op => $op, >+ searchfield => $searchfield, >+ messages => \@messages, >+); > >-sub default_form { >+if ( $op eq 'list' ) { > # build categories list >- my $category_list = C4::Koha::GetAuthorisedValueCategories(); >- my @category_list = @{$category_list}; >+ my @categories = Koha::AuthorisedValues->new->categories; >+ my @category_list; > my %categories; # a hash, to check that some hardcoded categories exist. >- for my $category ( @category_list ) { >+ for my $category ( @categories ) { >+ push( @category_list, $category ); > $categories{$category} = 1; > } > >@@ -250,42 +176,31 @@ sub default_form { > push @category_list, $_ unless $categories{$_}; > } > >- #reorder the list >- @category_list = sort {lc($a) cmp lc($b)} @category_list; >- if (!$searchfield) { >- $searchfield=$category_list[0]; >- } >- my $tab_list = { >- values => \@category_list, >- default => $searchfield, >- }; >- my ($results) = AuthorizedValuesForCategory($searchfield); >- my $count = scalar(@$results); >- my @loop_data = (); >- # builds value list >- my $sth = $dbh->prepare("SELECT b.branchcode, b.branchname FROM authorised_values_branches AS avb, branches AS b WHERE avb.branchcode = b.branchcode AND avb.av_id = ?"); >- for (my $i=0; $i < $count; $i++){ >- $sth->execute( $results->[$i]{id} ); >- my @selected_branches; >- while ( my $branch = $sth->fetchrow_hashref ) { >- push @selected_branches, $branch; >- } >- my %row_data; # get a fresh hash for the row data >- $row_data{category} = $results->[$i]{'category'}; >- $row_data{authorised_value} = $results->[$i]{'authorised_value'}; >- $row_data{lib} = $results->[$i]{'lib'}; >- $row_data{lib_opac} = $results->[$i]{'lib_opac'}; >- $row_data{imageurl} = getitemtypeimagelocation( 'intranet', $results->[$i]{'imageurl'} ); >- $row_data{edit} = "$script_name?op=add_form&id=".$results->[$i]{'id'}."&offset=$offset"; >- $row_data{delete} = "$script_name?op=delete_confirm&searchfield=$searchfield&id=".$results->[$i]{'id'}."&offset=$offset"; >- $row_data{branches} = \@selected_branches; >- push(@loop_data, \%row_data); >- } >+ #reorder the list >+ @category_list = sort {$a cmp $b} @category_list; >+ >+ $searchfield ||= $category_list[0]; >+ >+ my @avs_by_category = Koha::AuthorisedValues->new->search( { category => $searchfield } ); >+ my @loop_data = (); >+ # builds value list >+ for my $av ( @avs_by_category ) { >+ my %row_data; # get a fresh hash for the row data >+ $row_data{category} = $av->category; >+ $row_data{authorised_value} = $av->authorised_value; >+ $row_data{lib} = $av->lib; >+ $row_data{lib_opac} = $av->lib_opac; >+ $row_data{imageurl} = getitemtypeimagelocation( 'intranet', $av->imageurl ); >+ $row_data{branches} = $av->branch_limitations; >+ $row_data{id} = $av->id; >+ push(@loop_data, \%row_data); >+ } > > $template->param( >- loop => \@loop_data, >- tab_list => $tab_list, >- category => $searchfield, >+ loop => \@loop_data, >+ category => $searchfield, >+ categories => \@category_list, > ); >-} > >+} >+output_html_with_http_headers $input, $cookie, $template->output; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/authorised_values.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/authorised_values.tt >index 7dae71e..3d34cf1 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/authorised_values.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/authorised_values.tt >@@ -1,9 +1,11 @@ > [% INCLUDE 'doc-head-open.inc' %] >-<title>Koha › Administration › Authorized values [% IF ( add_form ) %] › [% IF ( action_modify ) %]Modify authorized value[% END %] >- [% IF ( action_add_value ) %] › New authorized value[% END %] >- [% IF ( action_add_category ) %] › New category[% END %][% END %] >-[% IF ( delete_confirm ) %] › Confirm deletion[% END %] >-[% IF ( else ) %]Authorized values[% END %]</title> >+<title>Koha › Administration › Authorized values >+[% IF op == 'add_form' %] >+ [% IF ( action_modify ) %] › Modify authorized value[% END %] >+ [% IF ( action_add_value ) %] › New authorized value[% END %] >+ [% IF ( action_add_category ) %] › New category[% END %] >+[% END %] >+</title> > [% INCLUDE 'doc-head-close.inc' %] > > <link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" /> >@@ -23,11 +25,15 @@ > $("#branches option:first").attr("selected", "selected"); > } > $('#icons').tabs(); >+ >+ $("a.delete").click(function(){ >+ return confirm(_("Are you sure you want to delete this authorised value?")); >+ }); > }); > //]]> > </script> > >-[% IF ( else ) %] >+[% IF op == 'list' %] > <script type="text/javascript"> > //<![CDATA[ > $(document).ready(function() { >@@ -50,11 +56,10 @@ $(document).ready(function() { > <body id="admin_authorised_values" class="admin"> > [% INCLUDE 'header.inc' %] > [% INCLUDE 'cat-search.inc' %] >-<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> › [% IF ( add_form ) %] <a href="/cgi-bin/koha/admin/authorised_values.pl">Authorized values</a> › [% IF ( action_modify ) %]Modify authorized value[% END %] >+<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> › [% IF op == 'add_form' %] <a href="/cgi-bin/koha/admin/authorised_values.pl">Authorized values</a> › [% IF ( action_modify ) %]Modify authorized value[% END %] > [% IF ( action_add_value ) %]New authorized value[% END %] > [% IF ( action_add_category ) %]New category[% END %][% END %] >-[% IF ( delete_confirm ) %] <a href="/cgi-bin/koha/admin/authorised_values.pl">Authorized values</a> › Confirm deletion[% END %] >-[% IF ( else ) %]Authorized values[% END %]</div> >+[% IF op == 'list' %]Authorized values[% END %]</div> > > <div id="doc3" class="yui-t2"> > >@@ -62,7 +67,7 @@ $(document).ready(function() { > <div id="yui-main"> > <div class="yui-b"> > >-[% IF ( add_form ) %] >+[% IF op == 'add_form' %] > <h1> > [% IF ( action_modify ) %]Modify authorized value[% END %] > [% IF ( action_add_value ) %]New authorized value[% END %] >@@ -71,9 +76,8 @@ $(document).ready(function() { > > [% IF ( action_modify ) %]<div class="note"><strong>NOTE:</strong> If you change an authorized value code, existing records using it won't be updated. Changes to value descriptions will show immediately.</div>[% END %] > >- <form action="[% script_name %]" name="Aform" method="post"> >- <input type="hidden" name="op" value="add_validate" /> >- <input type="hidden" name="offset" value="[% offset %]" /> >+ <form action="/cgi-bin/koha/admin/authorised_values.pl" name="Aform" method="post"> >+ <input type="hidden" name="op" value="add" /> > <fieldset class="rows"><ol> > <li> > [% IF ( action_add_category ) %]<label for="category">Category: </label> >@@ -155,32 +159,7 @@ $(document).ready(function() { > [% END %] > > >-[% IF ( delete_confirm ) %] >- <div class="dialog alert"> >-<h3>Confirm deletion</h3> >-<table> >- <tr> >- <th>Category</th> >- <th>Value</th> >- <th>Description</th> >- <th>Description (OPAC)</th> >- </tr> >- <tr> >- <td>[% searchfield %]</td> >- <td>[% Tvalue %]</td> >- <td>[% Tlib %]</td> >- <td>[% Tlib_opac %]</td> >- </tr> >- </table> >- <form action="[% script_name %]" method="post"> >- <input type="hidden" name="op" value="delete_confirmed" /> >- <input type="hidden" name="id" value="[% id %]" /> >- <input type="hidden" name="searchfield" value="[% searchfield %]" /><fieldset class="action"><input type="submit" value="Yes, delete" class="approve" /></form> >-<form action="[% script_name %]" method="get"><input type="hidden" name="searchfield" value="[% searchfield %]" /><input type="submit" value="No, do not delete" class="deny" /></form> >-</div> >-[% END %] >- >-[% IF ( else ) %] >+[% IF op == 'list' %] > > <div id="toolbar" class="btn-toolbar"> > <a id="addauth" class="btn btn-small" href= "/cgi-bin/koha/admin/authorised_values.pl?op=add_form&category=[% category %]"><i class="icon-plus"> </i> New authorized value for [% category %]</a> >@@ -190,22 +169,38 @@ $(document).ready(function() { > <h1>Authorized values</h1> > <div class="note"><strong>NOTE:</strong> If you change an authorized value code, existing records using it won't be updated. Changes to value descriptions will show immediately.</div> > >-[% IF ( duplicate_category ) %] >-<div class="dialog alert">Could not add value "[% duplicate_value %]" for category "[% duplicate_category %]" — value already present. >-</div> >+[% FOR m IN messages %] >+ <div class="dialog [% m.type %]"> >+ [% SWITCH m.code %] >+ [% CASE 'error_on_update' %] >+ An error occurred when updating this authorised values. Perhaps the value already exists. >+ [% CASE 'error_on_insert' %] >+ An error occurred when inserting this authorised values. Perhaps the value or the category already exists. >+ [% CASE 'error_on_delete' %] >+ An error occurred when deleteing this authorised values. Check the logs. >+ [% CASE 'success_on_update' %] >+ Authorised value updated with success. >+ [% CASE 'success_on_insert' %] >+ Authorised value inserted with success. >+ [% CASE 'success_on_delete' %] >+ Authorised value deleted with success. >+ [% CASE %] >+ [% m.code %] >+ [% END %] >+ </div> > [% END %] >+ > <form action="/cgi-bin/koha/admin/authorised_values.pl" method="post" id="category"> >- <label for="searchfield">Show category: </label> >- <select name="searchfield" id="searchfield" size="1"> >- [% FOREACH value IN tab_list.values %] >- [% IF ( value == tab_list.default ) %] >- <option value="[% value %]" selected="selected">[% value %]</option> >+ <label for="searchfield">Show category: </label> >+ <select name="searchfield" id="searchfield" size="1"> >+ [% FOR c IN categories %] >+ [% IF c == searchfield %] >+ <option value="[% c %]" selected="selected">[% c %]</option> > [% ELSE %] >- <option value="[% value %]">[% value %]</option> >- [% END %] >+ <option value="[% c %]">[% c %]</option> > [% END %] >- </select> >- <input type="submit" value="Submit" /> >+ [% END %] >+ <input type="submit" value="Submit" /> > </form> > [% IF ( category == 'Bsort1' ) %] > <p>An authorized value attached to patrons, that can be used for stats purposes</p> >@@ -285,8 +280,8 @@ $(document).ready(function() { > No limitation > [% END %] > </td> >- <td><a href="[% loo.edit %]">Edit</a></td> >- <td><a href="[% loo.delete %]">Delete</a></td> >+ <td><a href="/cgi-bin/koha/admin/authorised_values.pl?op=add_form&id=[% loo.id %]">Edit</a></td> >+ <td><a class="delete" href="/cgi-bin/koha/admin/authorised_values.pl?op=delete&searchfield=[% searchfield %]&id=[% loo.id %]">Delete</a></td> > </tr> > [% END %] > </tbody></table>[% ELSE %] >@@ -294,8 +289,8 @@ $(document).ready(function() { > [% END %] > > [% IF ( isprevpage ) %] >-<form class="inline" action="[% script_name %]" method="post"> >-<input type="hidden" name="offset" value="[% prevpage %]" /><input type="hidden" name="searchfield" value="[% searchfield %]" /> >+<form class="inline" action="/cgi-bin/koha/admin/authorised_values.pl" method="post"> >+<input type="hidden" name="searchfield" value="[% searchfield %]" /> > <input type="submit" value="<< Previous" /></form> > [% END %] > >diff --git a/t/db_dependent/AuthorisedValues.t b/t/db_dependent/AuthorisedValues.t >index da85748..a1cbfef 100644 >--- a/t/db_dependent/AuthorisedValues.t >+++ b/t/db_dependent/AuthorisedValues.t >@@ -1,7 +1,7 @@ > #!/usr/bin/perl > > use Modern::Perl; >-use Test::More; # tests => 25; >+use Test::More tests => 14; > > use C4::Context; > use Koha::AuthorisedValue; >@@ -44,9 +44,20 @@ my $av3 = Koha::AuthorisedValue->new( > } > )->store(); > >+my $av4 = Koha::AuthorisedValue->new( >+ { >+ category => 'aaav_for_testing', >+ authorised_value => 'value 4', >+ lib => 'display value 4', >+ lib_opac => 'opac display value 4', >+ imageurl => 'image4.png', >+ } >+)->store(); >+ > ok( $av1->id(), 'AV 1 is inserted' ); > ok( $av2->id(), 'AV 2 is inserted' ); > ok( $av3->id(), 'AV 3 is inserted' ); >+ok( $av4->id(), 'AV 4 is inserted' ); > > is( $av3->opac_description, 'opac display value 3', 'Got correction opac description if lib_opac is set' ); > $av3->lib_opac(''); >@@ -80,4 +91,7 @@ $av1->branch_limitations( [ $branchcode1, $branchcode2 ] ); > my $limits = $av1->branch_limitations; > is( @$limits, 2, 'branch_limitations functions correctly both as setter and getter' ); > >-done_testing; >+my @categories = Koha::AuthorisedValues->new->categories; >+is( @categories, 2, 'There should have 2 categories inserted' ); >+is( $categories[0], $av4->category, 'The first category should be correct (ordered by category name)' ); >+is( $categories[1], $av1->category, 'The second category should be correct (ordered by category name)' ); >-- >2.5.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 10363
:
18430
|
18431
|
18432
|
18751
|
18752
|
18753
|
20729
|
21833
|
21834
|
21835
|
21836
|
25284
|
25285
|
25286
|
25287
|
30583
|
30584
|
30585
|
30710
|
30711
|
30712
|
31565
|
32632
|
32633
|
32634
|
33416
|
33417
|
33422
|
33423
|
33860
|
33861
|
33862
|
33889
|
33949
|
35838
|
35839
|
35840
|
35841
|
41290
|
41291
|
41292
|
41293
|
41294
|
41302
|
41343
|
41344
|
41345
|
43112
|
43113
|
43114
|
43550
|
43551
|
43552
|
43553
|
43554
|
43555
|
43556
|
43557
|
43558
|
43559
|
43696
|
43827