From 6c8d512205da3e4899c51fa277582c3061c2948f Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 10 Feb 2016 16:06:14 +0000 Subject: [PATCH] Bug 15801: Koha::BiblioFrameworks - Remove C4::Koha::GetFrameworksLoop The C4::Koha::GetFrameworksLoop retrieves biblio frameworks and returns them ordered by the description (frameworktext). If a parameter is passed, a selected flag is set. The selection of the options should be done on the template side. These 2 calls can be replaced with Koha::BiblioFrameworks->search({}, { order_by => ['frameworktext'] }); Test plan: 1/ Go on a Labeled MARC biblio view (catalogue/labeledMARCdetail.pl) You should see a dropdown list with the biblio frameworks. The framework of the record should be selected by default 2/ Create a sql report using the biblio_framework parameter, something like: SELECT COUNT(*) FROM biblio WHERE frameworkcode=<> Save and execute the report. You should get a dropdown list with the framework list. --- C4/Koha.pm | 50 ---------------------- catalogue/labeledMARCdetail.pl | 10 +++-- .../prog/en/modules/catalogue/labeledMARCdetail.tt | 8 ++-- reports/guided_reports.pl | 10 ++--- t/db_dependent/Koha.t | 45 +------------------ 5 files changed, 17 insertions(+), 106 deletions(-) diff --git a/C4/Koha.pm b/C4/Koha.pm index 7fe07f1..8cfb9bf 100644 --- a/C4/Koha.pm +++ b/C4/Koha.pm @@ -43,7 +43,6 @@ BEGIN { &GetItemTypesCategorized &GetItemTypesByCategory &GetSupportName &GetSupportList &getframeworks &getframeworkinfo - &GetFrameworksLoop &getallthemes &getFacets &getnbpages @@ -358,55 +357,6 @@ sub getframeworks { return ( \%itemtypes ); } -=head2 GetFrameworksLoop - - $frameworks = GetFrameworksLoop( $frameworkcode ); - -Returns the loop suggested on getframework(), but ordered by framework description. - -build a HTML select with the following code : - -=head3 in PERL SCRIPT - - $template->param( frameworkloop => GetFrameworksLoop( $frameworkcode ) ); - -=head3 in TEMPLATE - - Same as getframework() - -
- - [% FOREACH framework IN frameworkloop %] - [% IF ( framework.selected ) %] - - [% ELSE %] - - [% END %] - [% END %] - - - -
- -=cut - -sub GetFrameworksLoop { - my $frameworkcode = shift; - my $frameworks = getframeworks(); - my @frameworkloop; - foreach my $thisframework (sort { uc($frameworks->{$a}->{'frameworktext'}) cmp uc($frameworks->{$b}->{'frameworktext'}) } keys %$frameworks) { - my $selected = ( $thisframework eq $frameworkcode ) ? 1 : undef; - my %row = ( - value => $thisframework, - selected => $selected, - description => $frameworks->{$thisframework}->{'frameworktext'}, - ); - push @frameworkloop, \%row; - } - return \@frameworkloop; -} - =head2 getframeworkinfo $frameworkinfo = &getframeworkinfo($frameworkcode); diff --git a/catalogue/labeledMARCdetail.pl b/catalogue/labeledMARCdetail.pl index 8ad2d22..019cbc7 100755 --- a/catalogue/labeledMARCdetail.pl +++ b/catalogue/labeledMARCdetail.pl @@ -29,7 +29,8 @@ use C4::Items; use C4::Members; # to use GetMember use C4::Search; # enabled_staff_search_views use C4::Acquisition qw(GetOrdersByBiblionumber); -use C4::Koha qw( GetFrameworksLoop ); + +use Koha::BiblioFrameworks; my $query = new CGI; my $dbh = C4::Context->dbh; @@ -80,8 +81,11 @@ my $itemcount = GetItemsCount($biblionumber); $template->param( count => $itemcount, bibliotitle => $biblio->{title}, ); -#Getting framework loop -$template->param(frameworkloop => GetFrameworksLoop( $frameworkcode ) ); +my $frameworks = Koha::BiblioFrameworks->search({}, { order_by => ['frameworktext'] }); +$template->param( + frameworks => $frameworks, + frameworkcode => $frameworkcode, +); my @marc_data; my $prevlabel = ''; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/labeledMARCdetail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/labeledMARCdetail.tt index 957f6ce..bd8d868 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/labeledMARCdetail.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/labeledMARCdetail.tt @@ -60,11 +60,11 @@

With framework: diff --git a/reports/guided_reports.pl b/reports/guided_reports.pl index 75040f4..c5a4887 100755 --- a/reports/guided_reports.pl +++ b/reports/guided_reports.pl @@ -28,13 +28,13 @@ use C4::Reports::Guided; use C4::Auth qw/:DEFAULT get_session/; use C4::Output; use C4::Debug; -use C4::Koha qw/GetFrameworksLoop/; use C4::Branch; use C4::Context; use C4::Log; use Koha::DateUtils qw/dt_from_string output_pref/; use Koha::AuthorisedValue; use Koha::AuthorisedValues; +use Koha::BiblioFrameworks; =head1 NAME @@ -677,13 +677,13 @@ elsif ($phase eq 'Run this report'){ } } elsif ( $authorised_value eq "biblio_framework" ) { - my $frameworks = GetFrameworksLoop(); + my @frameworks = Koha::BiblioFrameworks->search({}, { order_by => ['frameworktext'] }); my $default_source = ''; push @authorised_values,$default_source; $authorised_lib{$default_source} = 'Default'; - foreach my $framework (@$frameworks) { - push @authorised_values, $framework->{value}; - $authorised_lib{$framework->{value}} = $framework->{description}; + foreach my $framework (@frameworks) { + push @authorised_values, $framework->frameworkcode; + $authorised_lib{$framework->frameworkcode} = $framework->frameworktext; } } elsif ( $authorised_value eq "cn_source" ) { diff --git a/t/db_dependent/Koha.t b/t/db_dependent/Koha.t index 82fdc5e..fff27e4 100644 --- a/t/db_dependent/Koha.t +++ b/t/db_dependent/Koha.t @@ -8,7 +8,7 @@ use C4::Context; use Koha::DateUtils qw(dt_from_string); use Koha::AuthorisedValue; -use Test::More tests => 9; +use Test::More tests => 8; use DateTime::Format::MySQL; BEGIN { @@ -252,49 +252,6 @@ subtest 'ISBN tests' => sub { }; -subtest 'GetFrameworksLoop() tests' => sub { - plan tests => 6; - - $dbh->do("DELETE FROM biblio_framework"); - - my $frameworksloop = GetFrameworksLoop(); - is ( scalar(@$frameworksloop), 0, 'No frameworks' ); - - $dbh->do("INSERT INTO biblio_framework ( frameworkcode, frameworktext ) VALUES ( 'A', 'Third framework' )"); - $dbh->do("INSERT INTO biblio_framework ( frameworkcode, frameworktext ) VALUES ( 'B', 'Second framework' )"); - $dbh->do("INSERT INTO biblio_framework ( frameworkcode, frameworktext ) VALUES ( 'C', 'First framework' )"); - - $frameworksloop = GetFrameworksLoop(); - is ( scalar(@$frameworksloop), 3, 'All frameworks' ); - is ( scalar ( grep { defined $_->{'selected'} } @$frameworksloop ), 0, 'None selected' ); - - $frameworksloop = GetFrameworksLoop( 'B' ); - is ( scalar ( grep { defined $_->{'selected'} } @$frameworksloop ), 1, 'One selected' ); - my @descriptions = map { $_->{'description'} } @$frameworksloop; - is ( $descriptions[0], 'First framework', 'Ordered result' ); - cmp_deeply( - $frameworksloop, - [ - { - 'value' => 'C', - 'description' => 'First framework', - 'selected' => undef, - }, - { - 'value' => 'B', - 'description' => 'Second framework', - 'selected' => 1, # selected - }, - { - 'value' => 'A', - 'description' => 'Third framework', - 'selected' => undef, - } - ], - 'Full check, sorted by description with selected val (Bug 12675)' - ); -}; - subtest 'GetItemTypesByCategory GetItemTypesCategorized test' => sub{ plan tests => 7; -- 2.7.0