-# {{{ BEGIN BPS TAGGED BLOCK
-#
+# BEGIN BPS TAGGED BLOCK {{{
+#
# COPYRIGHT:
-#
-# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC
-# <jesse@bestpractical.com>
-#
+#
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# <sales@bestpractical.com>
+#
# (Except where explicitly superseded by other copyright notices)
-#
-#
+#
+#
# LICENSE:
-#
+#
# This work is made available to you under the terms of Version 2 of
# the GNU General Public License. A copy of that license should have
# been provided with this software, but in any event can be snarfed
# from www.gnu.org.
-#
+#
# This work is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
-#
+#
# 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:
-#
+#
# (The following paragraph is not intended to limit the rights granted
# to you to modify and distribute this software under the terms of
# the GNU General Public License and is only of importance to you if
# you choose to contribute your changes and enhancements to the
# community by submitting them to Best Practical Solutions, LLC.)
-#
+#
# By intentionally submitting any modifications, corrections or
# derivatives to this work, or any other work intended for use with
# Request Tracker, to Best Practical Solutions, LLC, you confirm that
# royalty-free, perpetual, license to use, copy, create derivative
# works based on those contributions, and sublicense and distribute
# those contributions and any derivatives thereof.
-#
-# }}} END BPS TAGGED BLOCK
+#
+# END BPS TAGGED BLOCK }}}
+
=head1 NAME
RT::Action::EscalatePriority
In this way, priority is either increased or decreased toward the final priority
as the ticket heads toward its due date.
+Alternately, if you don't set a due date, the Priority will be incremented by 1
+until it reaches the Final Priority. If a ticket without a due date has a Priority
+greater than Final Priority, it will be decremented by 1.
=cut
package RT::Action::EscalatePriority;
-require RT::Action::Generic;
+use base 'RT::Action';
use strict;
-use vars qw/@ISA/;
-@ISA=qw(RT::Action::Generic);
+use warnings;
#Do what we need to do and send it out.
#What does this type of Action does
-# {{{ sub Describe
sub Describe {
my $self = shift;
return (ref $self . " will move a ticket's priority toward its final priority.");
}
-# }}}
-# {{{ sub Prepare
sub Prepare {
my $self = shift;
# we've got a due date. now there are other things we should do
else {
- my $diff_in_seconds = $due->Diff(time());
+ my $arg = $self->Argument || '';
+ my $now = time();
+ if ( $arg =~ /CurrentTime:\s*(\d+)/i ) {
+ $now = $1;
+ }
+ my $diff_in_seconds = $due->Diff($now);
my $diff_in_days = int( $diff_in_seconds / 86400);
#if we haven't hit the due date yet
}
return 1;
}
-# }}}
sub Commit {
my $self = shift;
my ($val, $msg) = $self->TicketObj->SetPriority($self->{'prio'});
unless ($val) {
- $RT::Logger->debug($self . " $msg\n");
+ $RT::Logger->debug($self . " $msg");
}
}
-eval "require RT::Action::EscalatePriority_Vendor";
-die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/EscalatePriority_Vendor.pm});
-eval "require RT::Action::EscalatePriority_Local";
-die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/EscalatePriority_Local.pm});
+RT::Base->_ImportOverlays();
1;