[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