Browse Source

Bug 17847: Replace C4::Koha::GetAuthvalueDropbox with Koha::AuthorisedValues

The C4::Koha::GetAuthvalueDropbox subroutine does the same job as
Koha::AuthorisedValues->search
We should then replace the different calls to this subroutine to finally
remove it.
There were 2 calls to this subroutine:
- from the AuthorisedValues TT plugin (called from av-build-dropbox.inc
and members/housebound.tt)
- from the acqui/ajax-getauthvaluedropbox.pl ajax script

To make sure that this patchset does not introduce regressions, we will have
to test that the TT plugin and the ajax script still behave as before.

Test plan:
1/ Test acqui/ajax-getauthvaluedropbox.pl
- Link a fund to an authorised value category
- Create a new order
=> When you select a fund linked to AV category, the sort1 (and/or
sort2, depending on what you set) should be replaced with a dropdown
list populated with the authorised values
2/ Test av-build-dropbox.inc
- Create some authorised values for Bsort1
- Edit a patron
=> The sort1 should be a dropdown list populated with the Bsort1 AV
3/ Test members/housebound.tt
- Enable the housebound module (pref HouseboundModule)
- On the patron detail page, click on the "Housebound" tab
=> The frequency dropdown list should be populated with the different
HSBND_FREQ AV

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
17.05.x
Jonathan Druart 7 years ago
committed by Kyle M Hall
parent
commit
7dad38e88f
  1. 14
      Koha/Template/Plugin/AuthorisedValues.pm
  2. 28
      acqui/ajax-getauthvaluedropbox.pl
  3. 8
      koha-tmpl/intranet-tmpl/prog/en/includes/av-build-dropbox.inc
  4. 6
      koha-tmpl/intranet-tmpl/prog/en/modules/members/housebound.tt

14
Koha/Template/Plugin/AuthorisedValues.pm

@ -40,8 +40,18 @@ sub Get {
}
sub GetAuthValueDropbox {
my ( $self, $category, $default ) = @_;
return C4::Koha::GetAuthvalueDropbox($category, $default);
my ( $self, $category ) = @_;
my $branch_limit = C4::Context->userenv ? C4::Context->userenv->{"branch"} : "";
return Koha::AuthorisedValues->search(
{
branchcode => $branch_limit,
category => $category,
},
{
group_by => 'lib',
order_by => [ 'category', 'lib', 'lib_opac' ],
}
);
}
sub GetCategories {

28
acqui/ajax-getauthvaluedropbox.pl

@ -48,9 +48,9 @@ Default value for the dropbox.
use Modern::Perl;
use CGI qw ( -utf8 );
use C4::Koha;
use C4::Charset;
use C4::Auth qw/check_api_auth/;
use Koha::AuthorisedValues;
my $query = CGI->new();
binmode STDOUT, ':encoding(UTF-8)';
@ -67,18 +67,28 @@ my $name = $input->param('name');
my $category = $input->param('category');
my $default = $input->param('default');
$default = C4::Charset::NormalizeString($default);
binmode STDOUT, ':encoding(UTF-8)';
print $input->header(-type => 'text/plain', -charset => 'UTF-8');
my $avs = C4::Koha::GetAuthvalueDropbox($category, $default);
my $branch_limit = C4::Context->userenv ? C4::Context->userenv->{"branch"} : "";
my $avs = Koha::AuthorisedValues->search(
{
branchcode => $branch_limit,
category => $category,
},
{
group_by => 'lib',
order_by => [ 'category', 'lib', 'lib_opac' ],
}
);
my $html = qq|<select id="$name" name="$name">|;
for my $av ( @$avs ) {
if ( $av->{default} ) {
$html .= qq|<option value="$av->{value}" selected="selected">$av->{label}</option>|;
while ( my $av = $avs->next ) {
if ( $av->authorised_value eq $default ) {
$html .= q|<option value="| . $av->authorised_value . q|" selected="selected">| . $av->lib . q|</option>|;
} else {
$html .= qq|<option value="$av->{value}">$av->{label}</option>|;
$html .= q|<option value="| . $av->authorised_value . q|">| . $av->lib . q|</option>|;
}
}
$html .= qq|</select>|;
binmode STDOUT, ':encoding(UTF-8)';
print $input->header(-type => 'text/plain', -charset => 'UTF-8');
print $html;

8
koha-tmpl/intranet-tmpl/prog/en/includes/av-build-dropbox.inc

@ -9,7 +9,7 @@
all: add a "All" entry
%]
[% SET avs = AuthorisedValues.GetAuthValueDropbox( category, default ) %]
[% SET avs = AuthorisedValues.GetAuthValueDropbox( category ) %]
[% DEFAULT
class = ''
size = 20
@ -19,10 +19,10 @@
<select id="[% name %]" name="[% name %]" class="[% class %]" >
[% IF all %]<option value="">All</option>[% END %]
[% FOR av IN avs %]
[% IF av.default %]
<option value="[% av.value %]" selected="selected">[% av.label | html_entity %]</option>
[% IF av.authorised_value == default %]
<option value="[% av.authorised_value %]" selected="selected">[% av.lib | html_entity %]</option>
[% ELSE %]
<option value="[% av.value %]">[% av.label | html_entity %]</option>
<option value="[% av.authorised_value %]">[% av.lib | html_entity %]</option>
[% END %]
[% END %]
</select>

6
koha-tmpl/intranet-tmpl/prog/en/modules/members/housebound.tt

@ -141,10 +141,10 @@
<select id="frequency" name="frequency" class="required" required="required">
<option value="">Select a frequency</option>
[% FOREACH frequency IN AuthorisedValues.GetAuthValueDropbox('HSBND_FREQ') %]
[% IF housebound_profile.frequency == frequency.value %]
<option value="[% frequency.value %]" selected="selected">[% frequency.label %]</option>
[% IF housebound_profile.frequency == frequency.authorised_value %]
<option value="[% frequency.authorised_value %]" selected="selected">[% frequency.lib %]</option>
[% ELSE %]
<option value="[% frequency.value %]">[% frequency.label %]</option>
<option value="[% frequency.authorised_value %]">[% frequency.lib %]</option>
[% END %]
[% END %]
</select>

Loading…
Cancel
Save