[Rt-commit] rt branch, 4.2/move-open-on-setstarted-to-scrip, created. rt-4.1.8-514-gf8bd5ae

Todd Wade todd at bestpractical.com
Thu May 30 00:11:55 EDT 2013


The branch, 4.2/move-open-on-setstarted-to-scrip has been created
        at  f8bd5aeb226ead9454ce66449d866febf3166c05 (commit)

- Log -----------------------------------------------------------------
commit f8bd5aeb226ead9454ce66449d866febf3166c05
Author: Todd Wade <todd at bestpractical.com>
Date:   Thu May 30 00:06:49 2013 -0400

    Move the code that opens a ticket on SetStarted to a Scrip
    
    This commit resolves a TODO from RT::Ticket that moves code that
    sets a ticket status to open to a Scrip for upgrading users. The
    functionality is removed for new installs.
    
    See issues#17474

diff --git a/docs/UPGRADING-4.2 b/docs/UPGRADING-4.2
index 2a5bc12..23ca8c1 100644
--- a/docs/UPGRADING-4.2
+++ b/docs/UPGRADING-4.2
@@ -129,3 +129,7 @@ UPGRADING FROM RT 4.0.0 and greater
   and granting Everyone the OwnTicket right is a common cause of
   performance problems.  Unprivileged Owners (if they exist) may still
   be set using the Autocompleter.
+
+* The functionality that changed the ticket status to Open when the Started
+  date is set has been moved to a Scrip. If you do not depend on this
+  functionality, the Scrip can be deleted.
diff --git a/etc/upgrade/4.1.14/content b/etc/upgrade/4.1.14/content
new file mode 100644
index 0000000..68a5b3a
--- /dev/null
+++ b/etc/upgrade/4.1.14/content
@@ -0,0 +1,32 @@
+use strict;
+use warnings;
+
+our @Scrips = ({
+    Description            => 'On SetStarted Open Ticket',
+    ScripCondition         => 'User Defined',
+    ScripAction            => 'User Defined',
+    Template               => 'Blank',
+
+    CustomIsApplicableCode => <<'    END_OF_CUSTOMISAPPLICABLECODE',
+return 0 unless $self->TransactionObj->Type eq "Set";
+return 0 unless $self->TransactionObj->Field eq "Started";
+return 1;
+    END_OF_CUSTOMISAPPLICABLECODE
+
+    CustomPrepareCode      => <<'    END_OF_CUSTOMPREPARECODE',
+my $ticket = $self->TicketObj;
+
+# We need $TicketAsSystem, in case the current user doesn't have ShowTicket
+my $TicketAsSystem = RT::Ticket->new(RT->SystemUser);
+$TicketAsSystem->Load( $ticket->Id );
+# Now that we're starting, open this ticket
+my $next = $TicketAsSystem->FirstActiveStatus;
+
+$ticket->SetStatus( $next ) if defined $next;
+
+return 1;
+    END_OF_CUSTOMPREPARECODE
+
+});
+
+1;
diff --git a/lib/RT/Ticket.pm b/lib/RT/Ticket.pm
index bcfcfcbe..50a6f8d 100644
--- a/lib/RT/Ticket.pm
+++ b/lib/RT/Ticket.pm
@@ -1345,16 +1345,6 @@ sub SetStarted {
         $time_obj->SetToNow();
     }
 
-    # We need $TicketAsSystem, in case the current user doesn't have
-    # ShowTicket
-    my $TicketAsSystem = RT::Ticket->new(RT->SystemUser);
-    $TicketAsSystem->Load( $self->Id );
-    # Now that we're starting, open this ticket
-    # TODO: do we really want to force this as policy? it should be a scrip
-    my $next = $TicketAsSystem->FirstActiveStatus;
-
-    $self->SetStatus( $next ) if defined $next;
-
     return ( $self->_Set( Field => 'Started', Value => $time_obj->ISO ) );
 
 }

-----------------------------------------------------------------------


More information about the Rt-commit mailing list