Bug 13141: Add ability for biblio_framework to be a dropdown in Guided Reports
authorMark Tompsett <mtompset@hotmail.com>
Fri, 24 Oct 2014 04:20:29 +0000 (00:20 -0400)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Fri, 31 Oct 2014 16:14:59 +0000 (13:14 -0300)
By tweaking the GetReservedAuthorisedValues function in
C4::Reports::Guided, biblio_framework can be added as a dropdown
list into the guided reports parameters.

The change in C4/Reports/Guided.pm required a test, which is
found in t/db_dependent/ReportsGuided.t

Code was then added to reports/guided_reports.pl to build the
appropriate hash to trigger the proper dropdown list.

TEST PLAN
---------
1) Apply patch
2) prove -v t/db_dependent/ReportsGuided.t
   -- all should pass, this confirms that both
      C4/Reports/Guided.pm and this test file work.
3) Log into staff client
4) Reports
5) Create from SQL
6) Enter appropriate information like:
Report name: Test 13141
-- no need to change Report group or Report is public or Notes or Type
SQL:
SELECT CONCAT('<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',
     biblio.biblionumber,'\">',biblio.biblionumber,'</a>') AS
     BiblioNumbers, title, author, frameworkcode
FROM biblio
WHERE frameworkcode=<<Enter the frameworkcode|biblio_framework>>

7) Save report
8) Run report
   -- The parameter entry page should have a drop down of
      framework codes.
9) Select a framework code, and click Run the report
   -- The displayed SQL should have a "frameworkcode=" portion
      matching the selected framework.
10) Run the koha qa test tool.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Test plan followed successfully.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>

C4/Reports/Guided.pm
reports/guided_reports.pl
t/db_dependent/ReportsGuided.t

index f793a25..bb283fa 100644 (file)
@@ -962,7 +962,8 @@ sub GetReservedAuthorisedValues {
                               'branches',
                               'itemtypes',
                               'cn_source',
-                              'categorycode' );
+                              'categorycode',
+                              'biblio_framework' );
 
    return \%reserved_authorised_values;
 }
index 9fe7387..981816d 100755 (executable)
@@ -29,7 +29,7 @@ use C4::Output;
 use C4::Dates qw/format_date/;
 use C4::Debug;
 use C4::Branch; # XXX subfield_is_koha_internal_p
-use C4::Koha qw/IsAuthorisedValueCategory/;
+use C4::Koha qw/IsAuthorisedValueCategory GetFrameworksLoop/;
 
 =head1 NAME
 
@@ -644,6 +644,16 @@ elsif ($phase eq 'Run this report'){
                             $authorised_lib{$itemtype} = $description;
                         }
                     }
+                    elsif ( $authorised_value eq "biblio_framework" ) {
+                        my $frameworks = GetFrameworksLoop();
+                        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};
+                        }
+                    }
                     elsif ( $authorised_value eq "cn_source" ) {
                         my $class_sources = GetClassSources();
                         my $default_source = C4::Context->preference("DefaultClassificationSource");
index 200dd86..e111617 100755 (executable)
@@ -44,7 +44,8 @@ $koha->mock(
         'branches' => 1,
         'itemtypes' => 1,
         'cn_source' => 1,
-        'categorycode' => 1
+        'categorycode' => 1,
+        'biblio_framework' => 1,
     );
 
     my $reserved_authorised_values = GetReservedAuthorisedValues();