[rt-devel] Fwd: [rich+rt@lafferty.ca: [rt-users] Labeled
 priorities]
    Bruce Campbell 
    bruce_campbell at ripe.net
       
    Tue Feb 12 10:57:55 EST 2002
    
    
  
On Mon, 11 Feb 2002, Peter E. Popovich wrote:
> Don't laugh, but if you want to avoid re-implementing the wheel, take a look
> at keywords.
>
> Keywords aren't linked to priorities, but you get a supported pulldown in
> the UI, and don't have to tinker with the db schema. The task of synching
> numeric priorities to the keyword label can be done by a crontab (for
> prototyping purposes) or scrip (for final implementation).
Hrm...
Assuming that you'd like:
	OnSetKeyword SetPriorityFromKeyword with template KeywordPriorities
then you'd need to insert_condition for OnSetKeyword to set
ApplicableTransTypes to 'Keyword' with ExecModule of AnyTransaction, then:
	# SetPriorityFromKeyword.pm - RT ScripAction to set a priority based
	# on keyword
	package RT::Action::SetPriorityFromKeyword;
	require RT::Action::Generic;
	@ISA = qw(RT::Action::Generic);
	sub Prepare {
		# nothing really to do here
		my $self=shift;
		my $retval = undef;
		if( $self->TransactionObj->Type =~ /Keyword/ ){
			# protect against people putting this action in
			# a weird place
			$retval = 1;
		}
		return($retval);
	}
	sub Commit {
		my $self=shift;
		my $retval=undef;
		# Get the template.
		my @tsplit = split(/\n/, $self->$TemplateObj->Content);
		my %easy_chk = ();
		foreach my $thisline( @tsplit ){
			# template is ':' seperated, with 'keyword:priority'
			next unless( $thisline =~ /^\s*(\S+)\s*:\s*(\d+)\s*$/ );
			$easy_chk{"$1"} = $2;
		}
		# What did we set?  We check the 'Newvalue' field of our
		# Transaction.
		my $tmpval = $self->TransactionObj->NewValue();
		if( defined( $easy_chk{"$tmpval"} ) ){
			$retval = $self->TicketObj->SetPriority( $easy_chk{"$tmpval"} );
		}
		return( $retval );
	}
	1;
The above is me rambling, and may or may not work for you.  The template
should be a \n seperated list of 'keyword : priority_to_set'.
Regards,
-- 
                             Bruce Campbell                            RIPE
                   Systems/Network Engineer                             NCC
                 www.ripe.net - PGP562C8B1B                      Operations
    
    
More information about the Rt-devel
mailing list