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=<<framework|biblio_framework>> Save and execute the report. You should get a dropdown list with the framework list. Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com> Both dropdowns Ok No errors Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
parent
c7bc14cead
commit
ddb1ecb9d8
5 changed files with 16 additions and 105 deletions
50
C4/Koha.pm
50
C4/Koha.pm
|
@ -44,7 +44,6 @@ BEGIN {
|
|||
&GetItemTypes &getitemtypeinfo
|
||||
&GetItemTypesCategorized &GetItemTypesByCategory
|
||||
&getframeworks &getframeworkinfo
|
||||
&GetFrameworksLoop
|
||||
&getallthemes
|
||||
&getFacets
|
||||
&getnbpages
|
||||
|
@ -283,55 +282,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()
|
||||
|
||||
<form action="[% script_name %] method=post>
|
||||
<select name="frameworkcode">
|
||||
<option value="">Default</option>
|
||||
[% FOREACH framework IN frameworkloop %]
|
||||
[% IF ( framework.selected ) %]
|
||||
<option value="[% framework.value %]" selected="selected">[% framework.description %]</option>
|
||||
[% ELSE %]
|
||||
<option value="[% framework.value %]">[% framework.description %]</option>
|
||||
[% END %]
|
||||
[% END %]
|
||||
</select>
|
||||
<input type=text name=searchfield value="[% searchfield %]">
|
||||
<input type="submit" value="OK" class="button">
|
||||
</form>
|
||||
|
||||
=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);
|
||||
|
|
|
@ -30,7 +30,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;
|
||||
|
@ -82,8 +83,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 = '';
|
||||
|
|
|
@ -65,11 +65,11 @@
|
|||
<p><b>With framework:
|
||||
<select name="Frameworks" id="Frameworks" size="1" onchange="Changefwk(this);">
|
||||
<option value="">Default</option>
|
||||
[% FOREACH framework IN frameworkloop %]
|
||||
[% IF ( framework.selected ) %]
|
||||
<option value="[% framework.value %]" selected="selected">[% framework.description %]</option>
|
||||
[% FOREACH framework IN frameworks %]
|
||||
[% IF framework.frameworkcode == frameworkcode %]
|
||||
<option value="[% framework.frameworkcode %]" selected="selected">[% framework.frameworktext %]</option>
|
||||
[% ELSE %]
|
||||
<option value="[% framework.value %]">[% framework.description %]</option>
|
||||
<option value="[% framework.frameworkcode %]">[% framework.frameworktext %]</option>
|
||||
[% END %]
|
||||
[% END %]
|
||||
</select>
|
||||
|
|
|
@ -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::Context;
|
||||
use Koha::Caches;
|
||||
use C4::Log;
|
||||
use Koha::DateUtils qw/dt_from_string output_pref/;
|
||||
use Koha::AuthorisedValue;
|
||||
use Koha::AuthorisedValues;
|
||||
use Koha::BiblioFrameworks;
|
||||
use Koha::Libraries;
|
||||
use Koha::Patron::Categories;
|
||||
|
||||
|
@ -686,13 +686,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" ) {
|
||||
|
|
|
@ -239,49 +239,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;
|
||||
|
||||
|
|
Loading…
Reference in a new issue