CustomActionQchange: Difference between revisions
Jump to navigation
Jump to search
m (minor update) |
(→Code) |
||
| Line 11: | Line 11: | ||
Running on RT version 4.4.1 | Running on RT version 4.4.1 | ||
==Code== | == Code == | ||
<pre> | |||
# BEGIN BPS TAGGED BLOCK {{{ | |||
# | |||
# COPYRIGHT: | |||
# | |||
# 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., 51 Franklin Street, Fifth Floor, Boston, MA | |||
# 02110-1301 or visit their web page on the internet at | |||
# <nowiki>http://www.gnu.org/licenses/old-licenses/gpl-2.0.html</nowiki>. | |||
# | |||
# | |||
# 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 | |||
# you are the copyright holder for those contributions and you grant | |||
# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, | |||
# 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 }}} | |||
package RT::Action::QChange; | |||
use strict; | |||
use warnings; | |||
use base qw(RT::Action::Notify); | |||
use Email::Address; | |||
=head1 Notify Owner or AdminCc | |||
If the owner of this ticket is Nobody, notify the AdminCcs. Otherwise, only notify the Owner. | |||
=cut | |||
sub Prepare { | |||
my $self = shift; | |||
return 1; | |||
} | |||
my $self; | |||
sub Commit { | |||
my $self = shift; | |||
my $argument = $self->Argument; | |||
unless ( $argument ) { | |||
RT::Logger->error("Argument is mandatory for Test action"); | |||
return 0; | |||
} | |||
my ($status, $msg) = $self->TicketObj->SetQueue("$argument"); | |||
if ( not $status ) { | |||
RT::Logger->error("Could not reassign queue: $msg"); | |||
return 0; | |||
} | |||
RT::Base->_ImportOverlays(); | |||
return 1; | |||
} | |||
1; | |||
</pre> | |||
Latest revision as of 16:03, 4 November 2016
Below is a custom action module for adding RT::Action:Qchange via crontool that can be called for via a query similar to this "--action RT::Action::QChange --action-arg YOURNEWQUEUE --template 'blank'"
Example rt-crontool --transaction last --search RT::Search::FromSQL --search-arg "Queue = 'SLA’ AND (Status='new' OR Status='open')" --condition RT::Condition::Overdue --action RT::Action::QChange --action-arg QUEUE --template 'SLA-escalation'
Create the file in a place where RT can call it (notice not to put it at a place that will be overwritten at an RT upgrade, ex /opt/rt4/lib/RT/Action/Qchange.pm
This script was created by Andy Smith.
Running on RT version 4.4.1
Code
# BEGIN BPS TAGGED BLOCK {{{
#
# COPYRIGHT:
#
# 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., 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
# you are the copyright holder for those contributions and you grant
# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
# 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 }}}
package RT::Action::QChange;
use strict;
use warnings;
use base qw(RT::Action::Notify);
use Email::Address;
=head1 Notify Owner or AdminCc
If the owner of this ticket is Nobody, notify the AdminCcs. Otherwise, only notify the Owner.
=cut
sub Prepare {
my $self = shift;
return 1;
}
my $self;
sub Commit {
my $self = shift;
my $argument = $self->Argument;
unless ( $argument ) {
RT::Logger->error("Argument is mandatory for Test action");
return 0;
}
my ($status, $msg) = $self->TicketObj->SetQueue("$argument");
if ( not $status ) {
RT::Logger->error("Could not reassign queue: $msg");
return 0;
}
RT::Base->_ImportOverlays();
return 1;
}
1;