[Rt-commit] rt branch, 4.2/updated-by-ticketsql, created. rt-4.2.1-32-g87a1ac0

Alex Vandiver alexmv at bestpractical.com
Mon Nov 25 22:12:47 EST 2013


The branch, 4.2/updated-by-ticketsql has been created
        at  87a1ac0ad12ea5a1ff74b052b5a2200f9622dfb4 (commit)

- Log -----------------------------------------------------------------
commit 87a1ac0ad12ea5a1ff74b052b5a2200f9622dfb4
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Fri Mar 22 16:20:38 2013 +0400

    UpdatedBy TicketSQL keyword
    
    Allows to search tickets that were updated by a user at some point.
    When combined with Updated also limits by time span.

diff --git a/lib/RT/Tickets.pm b/lib/RT/Tickets.pm
index 6400267..0f3308e 100644
--- a/lib/RT/Tickets.pm
+++ b/lib/RT/Tickets.pm
@@ -155,6 +155,7 @@ our %FIELD_METADATA = (
     TransactionCF    => [ 'CUSTOMFIELD' => 'Transaction' ], #loc_left_pair
     QueueCF          => [ 'CUSTOMFIELD' => 'Queue' ], #loc_left_pair
     Updated          => [ 'TRANSDATE', ], #loc_left_pair
+    UpdatedBy        => [ 'TRANSCREATOR', ], #loc_left_pair
     OwnerGroup       => [ 'MEMBERSHIPFIELD' => 'Owner', ], #loc_left_pair
     RequestorGroup   => [ 'MEMBERSHIPFIELD' => 'Requestor', ], #loc_left_pair
     CCGroup          => [ 'MEMBERSHIPFIELD' => 'Cc', ], #loc_left_pair
@@ -185,6 +186,7 @@ our %dispatch = (
     TRANSFIELD      => \&_TransLimit,
     TRANSCONTENT    => \&_TransContentLimit,
     TRANSDATE       => \&_TransDateLimit,
+    TRANSCREATOR    => \&_TransCreatorLimit,
     WATCHERFIELD    => \&_WatcherLimit,
     MEMBERSHIPFIELD => \&_WatcherMembershipLimit,
     CUSTOMFIELD     => \&_CustomFieldLimit,
@@ -764,6 +766,21 @@ sub _TransDateLimit {
     $sb->_CloseParen;
 }
 
+sub _TransCreatorLimit {
+    my ( $sb, $field, $op, $value, @rest ) = @_;
+    $op = "!=" if $op eq "<>";
+    die "Invalid Operation: $op for $field" unless $op eq "=" or $op eq "!=";
+
+    # See the comments for TransLimit, they apply here too
+    my $txn_alias = $sb->JoinTransactions;
+    if ( defined $value && $value !~ /^\d+$/ ) {
+        my $u = RT::User->new( $sb->CurrentUser );
+        $u->Load($value);
+        $value = $u->id || 0;
+    }
+    $sb->_SQLLimit( ALIAS => $txn_alias, FIELD => 'Creator', OPERATOR => $op, VALUE => $value, @rest );
+}
+
 =head2 _TransLimit
 
 Limit based on the ContentType or the Filename of a transaction.
diff --git a/share/html/Search/Elements/PickBasics b/share/html/Search/Elements/PickBasics
index 71c86ee..9c6461d 100644
--- a/share/html/Search/Elements/PickBasics
+++ b/share/html/Search/Elements/PickBasics
@@ -114,6 +114,7 @@ my @lines = (
                 Owner => loc('Owner'),
                 Creator => loc('Creator'),
                 LastUpdatedBy => loc('Last updated by'),
+                UpdatedBy => loc('Updated by'),
             ],
         },
         Op => {

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


More information about the rt-commit mailing list