[Rt-commit] rt branch, 3.8-trunk, updated. rt-3.8.6-159-g8df0cd7

Ruslan Zakirov ruz at bestpractical.com
Thu Dec 10 18:09:45 EST 2009


The branch, 3.8-trunk has been updated
       via  8df0cd7b71bfd977940dbe4a73df65694d0e38d2 (commit)
      from  6dfb39e1075859e464656a25cf6a2af67fc7eb28 (commit)

Summary of changes:
 lib/RT/Tickets_Overlay.pm |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

- Log -----------------------------------------------------------------
commit 8df0cd7b71bfd977940dbe4a73df65694d0e38d2
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Fri Dec 11 02:06:28 2009 +0300

    add HasAttribute and HasNoAttribute to the tisql
    
    git-svn-id: svn+ssh://svn.bestpractical.com/svn/bps-public/rt/branches/3.6-RELEASE@19720 e417ac7c-1bcc-0310-8ffa-8f5827389a85
    
    Conflicts:
    
    	lib/RT/Tickets_Overlay.pm

diff --git a/lib/RT/Tickets_Overlay.pm b/lib/RT/Tickets_Overlay.pm
index d80afac..26dafd7 100755
--- a/lib/RT/Tickets_Overlay.pm
+++ b/lib/RT/Tickets_Overlay.pm
@@ -143,6 +143,8 @@ our %FIELD_METADATA = (
     CCGroup          => [ 'MEMBERSHIPFIELD' => 'Cc', ], #loc_left_pair
     AdminCCGroup     => [ 'MEMBERSHIPFIELD' => 'AdminCc', ], #loc_left_pair
     WatcherGroup     => [ 'MEMBERSHIPFIELD', ], #loc_left_pair
+    HasAttribute     => [ 'HASATTRIBUTE', 1 ],
+    HasNoAttribute     => [ 'HASATTRIBUTE', 0 ],
 );
 
 # Mapping of Field Type to Function
@@ -158,6 +160,7 @@ our %dispatch = (
     WATCHERFIELD    => \&_WatcherLimit,
     MEMBERSHIPFIELD => \&_WatcherMembershipLimit,
     CUSTOMFIELD     => \&_CustomFieldLimit,
+    HASATTRIBUTE    => \&_HasAttributeLimit,
 );
 our %can_bundle = ();# WATCHERFIELD => "yes", );
 
@@ -195,6 +198,11 @@ my %DefaultEA = (
         'NOT LIKE' => 'AND'
     },
 
+    HASATTRIBUTE => {
+        '='        => 'AND',
+        '!='       => 'AND',
+    },
+
     CUSTOMFIELD => 'OR',
 );
 
@@ -1528,6 +1536,40 @@ sub _CustomFieldLimit {
     }
 }
 
+sub _HasAttributeLimit {
+    my ( $self, $field, $op, $value, %rest ) = @_;
+
+    my $alias = $self->Join(
+        TYPE   => 'LEFT',
+        ALIAS1 => 'main',
+        FIELD1 => 'id',
+        TABLE2 => 'Attributes',
+        FIELD2 => 'ObjectId',
+    );
+    $self->SUPER::Limit(
+        LEFTJOIN        => $alias,
+        FIELD           => 'ObjectType',
+        VALUE           => 'RT::Ticket',
+        ENTRYAGGREGATOR => 'AND'
+    );
+    $self->SUPER::Limit(
+        LEFTJOIN        => $alias,
+        FIELD           => 'Name',
+        OPERATOR        => $op,
+        VALUE           => $value,
+        ENTRYAGGREGATOR => 'AND'
+    );
+    $self->_SQLLimit(
+        %rest,
+        ALIAS      => $alias,
+        FIELD      => 'id',
+        OPERATOR   => $FIELD_METADATA{$field}->[1]? 'IS NOT': 'IS',
+        VALUE      => 'NULL',
+        QUOTEVALUE => 0,
+    );
+}
+
+
 # End Helper Functions
 
 # End of SQL Stuff -------------------------------------------------

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


More information about the Rt-commit mailing list