[Rt-commit] r2796 - in rt/branches/QUEBEC-EXPERIMENTAL: .
html/Search lib/RT/Report lib/RT/Report/Tickets
jesse at bestpractical.com
jesse at bestpractical.com
Thu Apr 21 01:12:48 EDT 2005
Author: jesse
Date: Thu Apr 21 01:12:47 2005
New Revision: 2796
Added:
rt/branches/QUEBEC-EXPERIMENTAL/html/Search/Chart.png
rt/branches/QUEBEC-EXPERIMENTAL/lib/RT/Report/
rt/branches/QUEBEC-EXPERIMENTAL/lib/RT/Report/Tickets/
rt/branches/QUEBEC-EXPERIMENTAL/lib/RT/Report/Tickets.pm
rt/branches/QUEBEC-EXPERIMENTAL/lib/RT/Report/Tickets/Entry.pm
Modified:
rt/branches/QUEBEC-EXPERIMENTAL/ (props changed)
Log:
r14008 at hualien: jesse | 2005-04-21 01:09:31 -0400
* First pass at a new reporting toolkit. Robert dislikes the name "Entry.pm". Better ideas are appreciated
Added: rt/branches/QUEBEC-EXPERIMENTAL/html/Search/Chart.png
==============================================================================
--- (empty file)
+++ rt/branches/QUEBEC-EXPERIMENTAL/html/Search/Chart.png Thu Apr 21 01:12:47 2005
@@ -0,0 +1,42 @@
+<%args>
+$Query => "id > 0"
+$PrimaryGroupBy => 'Queue'
+$SecondaryGroupBy => undef
+</%args>
+<%init>
+my @keys;
+my @values;
+use GD::Graph::bars;
+use RT::Report::Tickets;
+
+my $chart =GD::Graph::bars->new(600 => 400);
+my $tix = RT::Report::Tickets->new($session{'CurrentUser'});
+
+my @groupby = (
+{ FIELD => $PrimaryGroupBy},
+#{ FIELD => $SecondaryGroupBy}
+);
+$tix->GroupByCols( @groupby);
+$tix->Column( FUNCTION => 'COUNT', FIELD => 'id' );
+$tix->Column( FIELD => $PrimaryGroupBy);
+#$tix->Column( FIELD => $SecondaryGroupBy);
+$tix->FromSQL($Query);
+while (my $entry = $tix->Next) {
+ my $q = RT::Queue->new($session{'CurrentUser'});
+ $q->Load($entry->__Value($PrimaryGroupBy)) ;
+ push @keys, $q->Name();
+ push @values, $entry->id;
+}
+
+ $chart->set(
+ x_label => $PrimaryGroupBy,
+ y_label => 'Tickets',
+ title => "$Query\n split by $PrimaryGroupBy",
+ ) or die $chart->error;
+
+
+my $plot = $chart->plot([[@keys], [@values]]) or die $chart->error;
+$r->content_type('image/png');
+$m->out($plot->png);
+$m->abort();
+</%init>
Added: rt/branches/QUEBEC-EXPERIMENTAL/lib/RT/Report/Tickets.pm
==============================================================================
--- (empty file)
+++ rt/branches/QUEBEC-EXPERIMENTAL/lib/RT/Report/Tickets.pm Thu Apr 21 01:12:47 2005
@@ -0,0 +1,19 @@
+package RT::Report::Tickets;
+use base qw/RT::Tickets/;
+use RT::Report::Tickets::Entry;
+
+
+# Gotta skip over RT::Tickets->Next, since it does all sorts of crazy magic we
+# don't want.
+sub Next {
+ my $self = shift;
+ $self->RT::SearchBuilder::Next(@_);
+
+}
+
+sub NewItem {
+ my $self = shift;
+ return RT::Report::Tickets::Entry->new($RT::SystemUser); # $self->CurrentUser);
+}
+
+1;
Added: rt/branches/QUEBEC-EXPERIMENTAL/lib/RT/Report/Tickets/Entry.pm
==============================================================================
--- (empty file)
+++ rt/branches/QUEBEC-EXPERIMENTAL/lib/RT/Report/Tickets/Entry.pm Thu Apr 21 01:12:47 2005
@@ -0,0 +1,8 @@
+package RT::Report::Tickets::Entry;
+use base qw/RT::Record/;
+
+# XXX TODO: how the heck do we acl a report?
+sub CurrentUserHasRight {1}
+
+
+1;
More information about the Rt-commit
mailing list