Hi all,
I’m using RT 4.2.8 and would like to prevent ticket resolution in which
the owner is “Nobody”.
For that I’m doing two steps:
-
- Change the custom condition of scrip “On Resolve Notify
Requestors” to not notify requesters if Owner is ‘Nobody’:*
- Change the custom condition of scrip “On Resolve Notify
Description: On Resolve Notify Requestors
Condition: User Defined
Action: Notify Requestors
Template: resolved in HTML
Custom condition:
if((
($self->TransactionObj->Type eq ‘Status’) or
($self->TransactionObj->Type eq ‘Set’ and
$self->TransactionObj->Field eq ‘Status’)
) and
$self->TransactionObj->NewValue eq ‘resolved’
) {
if($self->TicketObj->Owner == $RT::Nobody->id) {
$RT::Logger->debug(“Do not notify requestors if Owner
is Nobody”);
return 0;
} else {
return 1;
}
}
return 0;
- Create scrip to change status from resolved to it’s old value:
Description: On Resolve Check Owner
Condition: On Resolve
Action: User Defined
Template: Blank
-
Custom action commits code:* # get actor ID my $Actor = $self->TransactionObj->Creator; # if actor is RT_SystemUser then get out of here return 1 if $Actor == $RT::SystemUser->id; return 1 unless $self->TicketObj->Owner == $RT::Nobody->id; my ($status, $msg) =
$self->TicketObj->SetStatus($self->TransactionObj->OldValue);
unless($status) {
$RT::Logger->error(“Error when setting new status: $msg”);
return undef;
}
$RT::Logger->debug("Status changed");
return 1;
/(The scrips above are divided just for separation of concerns purposes)/
It works, but the message that appears confuses the user: “Status
changed from ‘open’ to ‘resolved’”. But in fact, the status of the
ticket is “open” (setted in scrip above).
Actually I would like to “lock” the screen, warning the user that it is
necessary to assign an owner before resolving the ticket.
Someone suggests a better solution? How could I lock the screen and
display a message to the user?
I tried using the plugin “MandatoryOnTransition” for this purpose, but
does not work because it just considers empty fields, and the owner is
set to “Nobody”, not empty:
Set (% MandatoryOnTransition,
’’ => {
’ -> Resolved’ => [‘TimeWorked’, ‘Owner’],
},
);
Please help me.
Thanks in advance.
Murillo Azambuja Gonçalves