[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