[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