This can not be done here.
In some queues those responsible for sending transactions (including tickets resolution) are not directly involved in the work of tickets.

Even I used the scrip "AutoSetOwner <http://requesttracker.wikia.com/wiki/AutoSetOwner>" as a basis to create mine.

Anyway thanks for your answer.
Would have another suggestion?

Murillo Azambuja Gonçalves
____________________________________________________

On 07/16/2015 11:37 AM, Matt Zagrabelny wrote:
Hi,

I didn't read everything in your email. :)

Have you considered a lifecycle where only the Owner is granted the
right to resolve the ticket?

-m

On Thu, Jul 16, 2015 at 9:34 AM, Murillo Azambuja Gonçalves
<[email protected]> wrote:
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':

         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

Reply via email to