Rt --limit-keyword=<keyword_select>/<keyword>

Attached is a patch to enable limiting by keyword in the CLI.

Works by applying the limit to the most recently specified queue limit,
eg:

rt --summary --limit-queue=myqueue --limit-keyword=select/keyword

bje

rt-limit-keyword (2.89 KB)

Thanks! this will be in 2.0.12pre um. whatever the next prerelease is :wink: Thanks.On Tue, Feb 26, 2002 at 12:12:45PM +1000, Byron Ellacott wrote:

Attached is a patch to enable limiting by keyword in the CLI.

Works by applying the limit to the most recently specified queue limit,
eg:

rt --summary --limit-queue=myqueue --limit-keyword=select/keyword


bje

Index: rt

RCS file: /usr/local/cvs/fsck/rt2/bin/rt,v
retrieving revision 1.1.1.1
diff -c -4 -r1.1.1.1 rt
*** rt 2002/01/10 05:51:48 1.1.1.1
— rt 2002/02/26 02:06:24


*** 53,60 ****
— 53,61 ----
@limit_memberof,
@limit_hasmember,
@limit_refersto,
@limit_referredtoby,

  •  @limit_keyword,
     
     @limit_due,
     @limit_starts,
     @limit_started,
    

*** 112,119 ****
— 113,121 ----
“limit-body=s”, @limit_body,
“limit-created=s” => @limit_created,
“limit-due=s” => @limit_due,
“limit-last-updated=s” => @limit_lastupdated,

  •    "limit-keyword=s" => \@limit_keyword,
    
       "limit-member-of=s" => \@limit_memberof,
       "limit-has-member=s" => \@limit_hasmember,
       "limit-depended-on-by=s" => \@limit_dependedonby,
    

*** 189,196 ****
— 191,199 ----
starts is less than ends
–limit-requestor=[!]|
–limit-subject=[!]
–limit-body=[!]

  •   --limit-keyword=[!]<select>/<keyword>
        
       Links
          --limit-member-of=<ticketid>
          --limit-has-member=<ticketid>
    

*** 382,389 ****
— 385,393 ----
my $Tickets = new RT::Tickets($CurrentUser);

  # {{{ Limit our search
  my $value;			#to use when iterating through restrictions
  • my $queue_id;		#to use when limiting by keyword
    
    # {{{ limit on id
    
    foreach $value (@id) {
    

*** 441,450 ****
— 445,486 ----
}
$RT::Logger->debug ("Limiting queue to $op ".$queue_obj->Name);
$Tickets->LimitQueue(VALUE => $queue_obj->Name,
OPERATOR => $op);

  •     $queue_id=$queue_obj->id;
    }	
    }	
    
  • # {{{ limit on keyword
    
  • foreach $value (@limit_keyword) {
    
  • if ($value =~ /^(\W?)(.*?)\/(.*)$/i) {
    
  •     my $op = $1;
    
  •     my $select = $2;
    
  •     my $keyword = $3;
    
  •     $op = ParseBooleanOp($op);
    
  •     # load the keyword select
    
  •     my $keyselect = RT::KeywordSelect->new($RT::SystemUser);
    
  •     unless ($keyselect->LoadByName(Name=>$select, Queue=>$queue_id)) {
    
  • 	$RT::Logger->debug("KeywordSelect '$select' not found");
    
  • 	print STDERR "KeywordSelect '$select' not fount\n";
    
  • 	exit(-1);
    
  •     }
    
  •     # load the keyword
    
  •     my $k = RT::Keyword->new($RT::SystemUser);
    
  •     unless ($k->LoadByNameAndParentId($keyword, $keyselect->Keyword)) {
    
  • 	$RT::Logger->debug("Keyword '$keyword' not found");
    
  • 	print STDERR "Keyword '$keyword' not found\n";
    
  • 	exit(-1);
    
  •     }
    
  •     $Tickets->LimitKeyword(OPERATOR => $op,
    
  •                            KEYWORDSELECT => $keyselect->id,
    
  • 			   KEYWORD => $k->id);
    
  •     $RT::Logger->debug ("Limiting keyword to $op ".$k->Path);
    
  • }
    
  • }
    # }}}
    # {{{ limit on owner
    foreach $value (@limit_owner) {
    if ($value =~ /^(\W?)(.*?)$/i) {
    

http://www.bestpractical.com/products/rt – Trouble Ticketing. Free.

Attached is a patch to enable limiting by keyword in the CLI.

Thanks. Applied.