[Rt-commit] rt branch, 4.2/ticket-limit-method, created. rt-4.1.5-243-gb375297

Alex Vandiver alexmv at bestpractical.com
Tue Jan 8 18:16:28 EST 2013


The branch, 4.2/ticket-limit-method has been created
        at  b37529704da220242d0cca0779c4e680edf0ef67 (commit)

- Log -----------------------------------------------------------------
commit b822080c7464ef6e2a1899de785ad1126f64d716
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Jan 8 17:57:05 2013 -0500

    Rename Limit in RT::Tickets to LimitField, so ->Limit acts as elsewhere
    
    The old-style LimitFoo methods now call LimitField, which goes through
    the Restrctions and Clauses machinery.  For compatibility with the rest
    of SearchBuilder, however, it is exceedingly useful to have ->Limit act
    immediately.

diff --git a/lib/RT.pm b/lib/RT.pm
index 467adf9..f7b0b52 100644
--- a/lib/RT.pm
+++ b/lib/RT.pm
@@ -828,6 +828,11 @@ A suggestion of what to use in place of the deprecated API
 Used if not the entire method is being removed, merely a manner of
 calling it; names the arguments which are deprecated.
 
+=item Message
+
+Overrides the auto-built phrasing of C<Calling function ____ is
+deprecated> with a custom message.
+
 =back
 
 =cut
@@ -838,6 +843,7 @@ sub Deprecated {
         Arguments => undef,
         Remove => undef,
         Instead => undef,
+        Message => undef,
         @_,
     );
 
@@ -856,7 +862,9 @@ sub Deprecated {
     $stack =~ s/^.*?\n//; # Strip off call to ->Deprecated
 
     my $msg;
-    if ($args{Arguments}) {
+    if ($args{Message}) {
+        $msg = $args{Message};
+    } elsif ($args{Arguments}) {
         $msg = "Calling $function with $args{Arguments} is deprecated";
     } else {
         $msg = "The $function is deprecated";
diff --git a/lib/RT/Record.pm b/lib/RT/Record.pm
index ee9181d..5aab674 100644
--- a/lib/RT/Record.pm
+++ b/lib/RT/Record.pm
@@ -1058,12 +1058,9 @@ sub HasUnresolvedDependencies {
     my $deps = $self->UnresolvedDependencies;
 
     if ($args{Type}) {
-        $deps->Limit( FIELD => 'Type', 
-              OPERATOR => '=',
-              VALUE => $args{Type}); 
-    }
-    else {
-	    $deps->IgnoreType;
+        $deps->LimitType( VALUE => $args{Type} );
+    } else {
+        $deps->IgnoreType;
     }
 
     if ($deps->Count > 0) {
diff --git a/lib/RT/Ticket.pm b/lib/RT/Ticket.pm
index 6f8cb63..f6ef1d6 100644
--- a/lib/RT/Ticket.pm
+++ b/lib/RT/Ticket.pm
@@ -2168,11 +2168,11 @@ sub Merged {
         if $MERGE_CACHE{'merged'}{ $id };
 
     my $mergees = RT::Tickets->new( $self->CurrentUser );
-    $mergees->Limit(
+    $mergees->LimitField(
         FIELD    => 'EffectiveId',
         VALUE    => $id,
     );
-    $mergees->Limit(
+    $mergees->LimitField(
         FIELD    => 'id',
         OPERATOR => '!=',
         VALUE    => $id,
diff --git a/lib/RT/Tickets.pm b/lib/RT/Tickets.pm
index 2efa234..3eb2e11 100644
--- a/lib/RT/Tickets.pm
+++ b/lib/RT/Tickets.pm
@@ -2009,16 +2009,27 @@ sub OrderByCols {
 }
 
 
+sub Limit {
+    my $self = shift;
+    $self->{'must_redo_search'} = 1;
+    delete $self->{'raw_rows'};
+    delete $self->{'count_all'};
+    if ($self->{'restriction_index'} > 1) {
+        RT->Deprecated( Message => "Mixing old-style LimitFoo methods with Limit is deprecated" );
+        $self->LimitField(@_);
+    }
+    $self->SUPER::Limit(@_);
+}
 
 
-=head2 Limit
+=head2 LimitField
 
 Takes a paramhash with the fields FIELD, OPERATOR, VALUE and DESCRIPTION
 Generally best called from LimitFoo methods
 
 =cut
 
-sub Limit {
+sub LimitField {
     my $self = shift;
     my %args = (
         FIELD       => undef,
@@ -2090,7 +2101,7 @@ sub LimitQueue {
 
     #TODO check for a valid queue here
 
-    $self->Limit(
+    $self->LimitField(
         FIELD       => 'Queue',
         VALUE       => $args{'VALUE'},
         OPERATOR    => $args{'OPERATOR'},
@@ -2122,7 +2133,7 @@ sub LimitStatus {
         OPERATOR => '=',
         @_
     );
-    $self->Limit(
+    $self->LimitField(
         FIELD       => 'Status',
         VALUE       => $args{'VALUE'},
         OPERATOR    => $args{'OPERATOR'},
@@ -2208,12 +2219,12 @@ sub LimitType {
         VALUE    => undef,
         @_
     );
-    $self->Limit(
+    $self->LimitField(
         FIELD       => 'Type',
         VALUE       => $args{'VALUE'},
         OPERATOR    => $args{'OPERATOR'},
         DESCRIPTION => join( ' ',
-            $self->loc('Type'), $args{'OPERATOR'}, $args{'Limit'}, ),
+            $self->loc('Type'), $args{'OPERATOR'}, $args{'VALUE'}, ),
     );
 }
 
@@ -2232,7 +2243,7 @@ VALUE is a string to search for in the subject of the ticket.
 sub LimitSubject {
     my $self = shift;
     my %args = (@_);
-    $self->Limit(
+    $self->LimitField(
         FIELD       => 'Subject',
         VALUE       => $args{'VALUE'},
         OPERATOR    => $args{'OPERATOR'},
@@ -2261,7 +2272,7 @@ sub LimitId {
         @_
     );
 
-    $self->Limit(
+    $self->LimitField(
         FIELD       => 'id',
         VALUE       => $args{'VALUE'},
         OPERATOR    => $args{'OPERATOR'},
@@ -2283,7 +2294,7 @@ VALUE is a value to match the ticket's priority against
 sub LimitPriority {
     my $self = shift;
     my %args = (@_);
-    $self->Limit(
+    $self->LimitField(
         FIELD       => 'Priority',
         VALUE       => $args{'VALUE'},
         OPERATOR    => $args{'OPERATOR'},
@@ -2307,7 +2318,7 @@ VALUE is a value to match the ticket's initial priority against
 sub LimitInitialPriority {
     my $self = shift;
     my %args = (@_);
-    $self->Limit(
+    $self->LimitField(
         FIELD       => 'InitialPriority',
         VALUE       => $args{'VALUE'},
         OPERATOR    => $args{'OPERATOR'},
@@ -2330,7 +2341,7 @@ VALUE is a value to match the ticket's final priority against
 sub LimitFinalPriority {
     my $self = shift;
     my %args = (@_);
-    $self->Limit(
+    $self->LimitField(
         FIELD       => 'FinalPriority',
         VALUE       => $args{'VALUE'},
         OPERATOR    => $args{'OPERATOR'},
@@ -2353,7 +2364,7 @@ VALUE is a value to match the ticket's TimeWorked attribute
 sub LimitTimeWorked {
     my $self = shift;
     my %args = (@_);
-    $self->Limit(
+    $self->LimitField(
         FIELD       => 'TimeWorked',
         VALUE       => $args{'VALUE'},
         OPERATOR    => $args{'OPERATOR'},
@@ -2376,7 +2387,7 @@ VALUE is a value to match the ticket's TimeLeft attribute
 sub LimitTimeLeft {
     my $self = shift;
     my %args = (@_);
-    $self->Limit(
+    $self->LimitField(
         FIELD       => 'TimeLeft',
         VALUE       => $args{'VALUE'},
         OPERATOR    => $args{'OPERATOR'},
@@ -2401,7 +2412,7 @@ VALUE is a string to search for in the body of the ticket
 sub LimitContent {
     my $self = shift;
     my %args = (@_);
-    $self->Limit(
+    $self->LimitField(
         FIELD       => 'Content',
         VALUE       => $args{'VALUE'},
         OPERATOR    => $args{'OPERATOR'},
@@ -2424,7 +2435,7 @@ VALUE is a string to search for in the body of the ticket
 sub LimitFilename {
     my $self = shift;
     my %args = (@_);
-    $self->Limit(
+    $self->LimitField(
         FIELD       => 'Filename',
         VALUE       => $args{'VALUE'},
         OPERATOR    => $args{'OPERATOR'},
@@ -2446,7 +2457,7 @@ VALUE is a content type to search ticket attachments for
 sub LimitContentType {
     my $self = shift;
     my %args = (@_);
-    $self->Limit(
+    $self->LimitField(
         FIELD       => 'ContentType',
         VALUE       => $args{'VALUE'},
         OPERATOR    => $args{'OPERATOR'},
@@ -2479,7 +2490,7 @@ sub LimitOwner {
     $owner->Load( $args{'VALUE'} );
 
     # FIXME: check for a valid $owner
-    $self->Limit(
+    $self->LimitField(
         FIELD       => 'Owner',
         VALUE       => $args{'VALUE'},
         OPERATOR    => $args{'OPERATOR'},
@@ -2520,7 +2531,7 @@ sub LimitWatcher {
         $watcher_type = "Watcher";
     }
 
-    $self->Limit(
+    $self->LimitField(
         FIELD       => $watcher_type,
         VALUE       => $args{'VALUE'},
         OPERATOR    => $args{'OPERATOR'},
@@ -2556,7 +2567,7 @@ sub LimitLinkedTo {
         @_
     );
 
-    $self->Limit(
+    $self->LimitField(
         FIELD       => 'LinkedTo',
         BASE        => undef,
         TARGET      => $args{'TARGET'},
@@ -2599,7 +2610,7 @@ sub LimitLinkedFrom {
     my $type = $args{'TYPE'};
     $type = $fromToMap{$type} if exists( $fromToMap{$type} );
 
-    $self->Limit(
+    $self->LimitField(
         FIELD       => 'LinkedTo',
         TARGET      => undef,
         BASE        => $args{'BASE'},
@@ -2721,7 +2732,7 @@ sub LimitDate {
             . $args{'VALUE'} . " GMT";
     }
 
-    $self->Limit(%args);
+    $self->LimitField(%args);
 
 }
 
@@ -2795,7 +2806,7 @@ sub LimitTransactionDate {
             . $args{'VALUE'} . " GMT";
     }
 
-    $self->Limit(%args);
+    $self->LimitField(%args);
 
 }
 
@@ -2869,7 +2880,7 @@ sub LimitCustomField {
     @rest = ( ENTRYAGGREGATOR => 'AND' )
         if ( $CF->Type eq 'SelectMultiple' );
 
-    $self->Limit(
+    $self->LimitField(
         VALUE => $args{VALUE},
         FIELD => "CF"
             .(defined $args{'QUEUE'}? ".{$args{'QUEUE'}}" : '' )
diff --git a/share/html/Approvals/Elements/PendingMyApproval b/share/html/Approvals/Elements/PendingMyApproval
index c4e19a8..36c1fa6 100644
--- a/share/html/Approvals/Elements/PendingMyApproval
+++ b/share/html/Approvals/Elements/PendingMyApproval
@@ -87,7 +87,7 @@ my $created_before = RT::Date->new( $session{'CurrentUser'} );
 my $created_after = RT::Date->new( $session{'CurrentUser'} );
 
 foreach ($tickets, $group_tickets) {
-    $_->Limit( FIELD      => 'Type', VALUE => 'approval' );
+    $_->LimitType( VALUE => 'approval' );
 
     if ( $ARGS{'ShowResolved'} ) {
 	$_->LimitStatus( VALUE => 'resolved' );
diff --git a/share/html/Ticket/Elements/ShowDependencyStatus b/share/html/Ticket/Elements/ShowDependencyStatus
index 4de49ee..2d7a620 100644
--- a/share/html/Ticket/Elements/ShowDependencyStatus
+++ b/share/html/Ticket/Elements/ShowDependencyStatus
@@ -66,12 +66,12 @@ $Ticket
 <%init>
 # normal tickets
 my $deps = $Ticket->UnresolvedDependencies;
-$deps->Limit( FIELD => 'Type', VALUE => 'ticket' );
+$deps->LimitType( VALUE => 'ticket' );
 my $depends = $deps->Count || 0;
 
 # approvals
 $deps = $Ticket->UnresolvedDependencies;
-$deps->Limit( FIELD => 'Type', VALUE => 'approval' );
+$deps->LimitType( VALUE => 'approval' );
 my $approvals = $deps->Count || 0;
 
 return unless $depends or $approvals;

commit b37529704da220242d0cca0779c4e680edf0ef67
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Jan 8 18:14:37 2013 -0500

    Catch mixing of LimitFoo and Limit methods

diff --git a/lib/RT/Tickets.pm b/lib/RT/Tickets.pm
index 3eb2e11..e4096af 100644
--- a/lib/RT/Tickets.pm
+++ b/lib/RT/Tickets.pm
@@ -2044,6 +2044,11 @@ sub LimitField {
         )
         if ( !defined $args{'DESCRIPTION'} );
 
+
+    if ($self->_isLimited > 1) {
+        RT->Deprecated( Message => "Mixing old-style LimitFoo methods with Limit is deprecated" );
+    }
+
     my $index = $self->_NextIndex;
 
 # make the TicketRestrictions hash the equivalent of whatever we just passed in;

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


More information about the Rt-commit mailing list