# BEGIN BPS TAGGED BLOCK {{{
#
# COPYRIGHT:
-#
-# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC
+#
+# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
# <jesse@bestpractical.com>
#
# (Except where explicitly superseded by other copyright notices)
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 or visit their web page on the internet at
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
#
#
# CONTRIBUTION SUBMISSION POLICY:
=head1 METHODS
-=begin testing
-
-ok (require RT::Scrips);
-
-=end testing
=cut
=head2 Apply
-Run through the relevant scrips.
+Run through the relevant scrips. Scrips will run in order based on
+description. (Most common use case is to prepend a number to the description,
+forcing the scrips to run in ascending alphanumerical order.)
=cut
foreach my $scrip (@{$self->Prepared}) {
+ $RT::Logger->debug(
+ "Committing scrip #". $scrip->id
+ ." on txn #". $self->{'TransactionObj'}->id
+ ." of ticket #". $self->{'TicketObj'}->id
+ );
$scrip->Commit( TicketObj => $self->{'TicketObj'},
TransactionObj => $self->{'TransactionObj'} );
else {
$self->{'TicketObj'} = RT::Ticket->new( $self->CurrentUser );
$self->{'TicketObj'}->Load( $args{'Ticket'} )
- || $RT::Logger->err("$self couldn't load ticket $args{'Ticket'}\n");
+ || $RT::Logger->err("$self couldn't load ticket $args{'Ticket'}");
}
if ( ( $self->{'TransactionObj'} = $args{'TransactionObj'} ) ) {
else {
$self->{'TransactionObj'} = RT::Transaction->new( $self->CurrentUser );
$self->{'TransactionObj'}->Load( $args{'Transaction'} )
- || $RT::Logger->err( "$self couldn't load transaction $args{'Transaction'}\n");
+ || $RT::Logger->err( "$self couldn't load transaction $args{'Transaction'}");
}
}
=head2 _FindScrips
-Find only the apropriate scrips for whatever we're doing now
+Find only the apropriate scrips for whatever we're doing now. Order them
+by their description. (Most common use case is to prepend a number to the
+description, forcing the scrips to display and run in ascending alphanumerical
+order.)
=cut
ENTRYAGGREGATOR => 'OR',
);
- $RT::Logger->debug("Found ".$self->Count. " scrips");
+ # Promise some kind of ordering
+ $self->OrderBy( FIELD => 'Description' );
+
+ # we call Count below, but later we always do search
+ # so just do search and get count from results
+ $self->_DoSearch if $self->{'must_redo_search'};
+
+ $RT::Logger->debug(
+ "Found ". $self->Count ." scrips for $args{'Stage'} stage"
+ ." with applicable type(s) $args{'Type'}"
+ );
}
# }}}