Bugzilla – Attachment 37042 Details for
Bug 13880
Allow svc/report to be passed sql parameters for non-public reports
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 13880 - Allow svc/report to be passed sql parameters
Bug-13880---Allow-svcreport-to-be-passed-sql-param.patch (text/plain), 2.07 KB, created by
Kyle M Hall (khall)
on 2015-03-20 13:50:36 UTC
(
hide
)
Description:
Bug 13880 - Allow svc/report to be passed sql parameters
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2015-03-20 13:50:36 UTC
Size:
2.07 KB
patch
obsolete
>From 3028a1fdc192d6eb5ef68403ef9e14f39ec8a0e2 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Fri, 20 Mar 2015 09:48:05 -0400 >Subject: [PATCH] Bug 13880 - Allow svc/report to be passed sql parameters > >The same feature added to the opac svc/report in bug 9915 should be >added to the staff side. > >Test Plan: >1) Apply this patch >2) Create this report: > SELECT * FROM biblio WHERE biblionumber = <<biblionumber>> >3) Note the id of the report >4) Go to the URL >/cgi-bin/koha/svc/report?id=YOUR_REPORT_ID&sql_params=SOME_VALID_BIBLIONUMBER >5) Note you recieve a json response >--- > svc/report | 12 ++++++++++-- > 1 files changed, 10 insertions(+), 2 deletions(-) > >diff --git a/svc/report b/svc/report >index 8736aca..da1b9b3 100755 >--- a/svc/report >+++ b/svc/report >@@ -36,6 +36,8 @@ my $report_annotation = $query->param('annotated'); > my $report_rec = get_saved_report( $report_name ? { 'name' => $report_name } : { 'id' => $report_id } ); > if (!$report_rec) { die "There is no such report.\n"; } > >+my @sql_params = $query->param('sql_params'); >+ > my ( $template, $loggedinuser, $cookie ) = get_template_and_user( > { > template_name => "intranet-main.tt", >@@ -50,14 +52,20 @@ my $cache = Koha::Cache->get_instance(); > my $cache_active = $cache->is_cache_active; > my ($cache_key, $json_text); > if ($cache_active) { >- $cache_key = "intranet:report:".($report_name ? "name:$report_name" : "id:$report_id"); >+ $cache_key = "intranet:report:".($report_name ? "name:$report_name" : "id:$report_id") >+ . join( '-', @sql_params ); > $json_text = $cache->get_from_cache($cache_key); > } > > unless ($json_text) { > my $offset = 0; > my $limit = C4::Context->preference("SvcMaxReportRows") || 10; >- my ( $sth, $errors ) = execute_query( $report_rec->{savedsql}, $offset, $limit ); >+ my $sql = $report_rec->{savedsql}; >+ >+ # convert SQL parameters to placeholders >+ $sql =~ s/(<<.*?>>)/\?/g; >+ >+ my ( $sth, $errors ) = execute_query( $sql, $offset, $limit, \@sql_params ); > if ($sth) { > my $lines; > if ($report_annotation) { >-- >1.7.2.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 13880
:
37042
|
37390
|
38170