Bug 20760: Fill authorised values in svc framework
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 4 Jun 2018 16:02:33 +0000 (13:02 -0300)
committerNick Clemens <nick@bywatersolutions.com>
Fri, 15 Jun 2018 10:34:33 +0000 (10:34 +0000)
To test:
 1 - Map a marc field to an authorised value in the default framework -
say 300$c -> CCODE
 2 - Open the advanced cataloguing editor
 3 - Create a new field 300$c - note there is no dropdown
 4 - browse to: /cgi-bin/koha/svc/cataloguing/framework?callback=define
 5 - Note the many instance of
Koha::Schema::ResultSet::AuthorisedValueCategory->HASH...
 6 - Apply patch
 7 - Restart memcached and plack
 8 - reload/recreate record in rancor
 9 - Note that 300$c is now a dropdown as expected
10 - repeate 4
11 - note the authorised values look correct in response

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

svc/cataloguing/framework

index 4880b8a..ec9108f 100755 (executable)
@@ -6,6 +6,7 @@ use CGI;
 use C4::ClassSource;
 use C4::Context;
 use C4::Biblio;
+use C4::Koha;
 use C4::Service;
 use Koha::Database;
 use Koha::Libraries;
@@ -51,21 +52,9 @@ foreach my $class_source (sort keys %$class_sources) {
     push @{ $authorised_values->{cn_source} }, { value => $class_source, lib => $class_sources->{$class_source}->{'description'} };
 }
 
-my $branch_limit = C4::Context->userenv ? C4::Context->userenv->{"branch"} : "";
-my $results;
-if( $branch_limit ) {
-    $results = $schema->resultset( "AuthorisedValue" )->search(
-    { "authorised_values_branches.branchcode" => { "=", [ $branch_limit, undef ] } },
-    { join => "authorised_values_branches", order_by => "lib" } );
-} else {
-    $results = $schema->resultset( "AuthorisedValue" )->search(
-    undef,
-    { order_by => "lib" } );
-}
-
-foreach my $result ( $results->all ) {
-    $authorised_values->{$result->category} ||= [];
-    push @{ $authorised_values->{$result->category} }, { value => $result->authorised_value, lib => $result->lib };
+my $avs = C4::Koha::GetAuthorisedValues();
+for my $av ( @$avs ) {
+    push @{ $authorised_values->{$av->{category}} }, { value => $av->{authorised_value}, lib => $av->{lib} };
 }
 
 $response->param( framework => \@tags, authorised_values => $authorised_values );