[Rt-commit] rt branch, 4.0/report-tickets-with-transactions-join, created. rt-4.0.5-82-gbd8cefc

? sunnavy sunnavy at bestpractical.com
Sun Mar 18 01:51:29 EDT 2012


The branch, 4.0/report-tickets-with-transactions-join has been created
        at  bd8cefc1e0b8d7a3e3ddadac71132ef92bd9a161 (commit)

- Log -----------------------------------------------------------------
commit 43f25021470fba8b81775eb8defb2060dc559ac7
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Sun Mar 18 11:20:04 2012 +0800

    use RT::Ticket as ObjectType when joining Transactions in RT::Report::Tickets
    
    see also #19595

diff --git a/lib/RT/Report/Tickets/Entry.pm b/lib/RT/Report/Tickets/Entry.pm
index f3eeb4d..87754c4 100644
--- a/lib/RT/Report/Tickets/Entry.pm
+++ b/lib/RT/Report/Tickets/Entry.pm
@@ -83,6 +83,10 @@ sub LabelValue {
     return $value;
 }
 
+sub ObjectType {
+    return 'RT::Ticket';
+}
+
 RT::Base->_ImportOverlays();
 
 1;
diff --git a/lib/RT/SearchBuilder.pm b/lib/RT/SearchBuilder.pm
index f79bc0a..aa2e25a 100644
--- a/lib/RT/SearchBuilder.pm
+++ b/lib/RT/SearchBuilder.pm
@@ -105,10 +105,14 @@ sub JoinTransactions {
         TABLE2 => 'Transactions',
         FIELD2 => 'ObjectId',
     );
+
+    my $item = $self->NewItem;
+    my $object_type = $item->can('ObjectType') ? $item->ObjectType : ref $item;
+
     $self->RT::SearchBuilder::Limit(
         LEFTJOIN => $alias,
         FIELD    => 'ObjectType',
-        VALUE    => ref $self->NewItem,
+        VALUE    => $object_type,
     );
     $self->{'_sql_aliases'}{'transactions'} = $alias
         unless $args{'New'};

commit bd8cefc1e0b8d7a3e3ddadac71132ef92bd9a161
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Sun Mar 18 11:23:19 2012 +0800

    test RT::Report::Tickets with transactions join

diff --git a/t/api/report_tickets.t b/t/api/report_tickets.t
new file mode 100644
index 0000000..4144c60
--- /dev/null
+++ b/t/api/report_tickets.t
@@ -0,0 +1,15 @@
+use strict;
+use warnings;
+use RT::Test tests => 5;
+
+use RT::Report::Tickets;
+
+my $ticket = RT::Test->create_ticket( Queue => 'General', Subject => 'test' );
+
+my $tickets = RT::Report::Tickets->new( RT->SystemUser );
+$tickets->FromSQL('Updated <= "tomorrow"');
+is( $tickets->Count, 1, "search with transaction join and positive results" );
+
+$tickets->FromSQL('Updated < "yesterday"');
+is( $tickets->Count, 0, "search with transaction join and 0 results" );
+

-----------------------------------------------------------------------


More information about the Rt-commit mailing list