[Rt-commit] r5000 - in rtir/branches/1.9-EXPERIMENTAL: . etc
lib/RT/Action
ruz at bestpractical.com
ruz at bestpractical.com
Mon Apr 10 09:55:39 EDT 2006
Author: ruz
Date: Mon Apr 10 09:55:38 2006
New Revision: 5000
Added:
rtir/branches/1.9-EXPERIMENTAL/lib/RT/Action/RTIR_SetIncidentResolution.pm
Modified:
rtir/branches/1.9-EXPERIMENTAL/ (props changed)
rtir/branches/1.9-EXPERIMENTAL/etc/initialdata
rtir/branches/1.9-EXPERIMENTAL/etc/upgrade/1.9.0/content
Log:
r1272 at cubic-pc: cubic | 2006-04-10 17:48:55 +0400
* add scrip that set Incident's resolution field if there is no value allready
Modified: rtir/branches/1.9-EXPERIMENTAL/etc/initialdata
==============================================================================
--- rtir/branches/1.9-EXPERIMENTAL/etc/initialdata (original)
+++ rtir/branches/1.9-EXPERIMENTAL/etc/initialdata Mon Apr 10 09:55:38 2006
@@ -394,6 +394,10 @@
Description => 'Set the state of an Incident' , # loc
ExecModule => 'RTIR_SetIncidentState',
},
+ { Name => 'RTIR Set Incident Resolution', # loc
+ Description => 'Set the default resolution of an Incident' , # loc
+ ExecModule => 'RTIR_SetIncidentResolution',
+ },
);
@ScripConditions = (
@@ -577,6 +581,12 @@
ScripCondition => 'On Status Change',
ScripAction => 'RTIR Open Parent',
Template => 'Blank', },
+
+ { Description => "SetDefaultIncidentResolution",
+ Queue => 'Incidents',
+ ScripCondition => 'On Status Change',
+ ScripAction => 'RTIR Set Incident Resolution',
+ Template => 'Blank', },
);
@Templates = (
Modified: rtir/branches/1.9-EXPERIMENTAL/etc/upgrade/1.9.0/content
==============================================================================
--- rtir/branches/1.9-EXPERIMENTAL/etc/upgrade/1.9.0/content (original)
+++ rtir/branches/1.9-EXPERIMENTAL/etc/upgrade/1.9.0/content Mon Apr 10 09:55:38 2006
@@ -125,12 +125,21 @@
);
}
+ at ScripActions = (
+ { Name => 'RTIR Set Incident Resolution', # loc
+ Description => 'Set the default resolution of an Incident' , # loc
+ ExecModule => 'RTIR_SetIncidentResolution',
+ },
+);
+
+);
+
@Scrips = (
{ Description => "SetStartsDateOnQueueChange",
Queue => 'Incidents',
ScripCondition => 'On Queue Change',
ScripAction => 'RTIR Set Starts to Now',
- Template => 'Blank' },
+ Teemplate => 'Blank' },
{ Description => "SetStartsOnQueueChange",
Queue => [ 'Incident Reports', 'Investigations', 'Blocks' ],
ScripCondition => 'On Queue Change',
@@ -147,6 +156,11 @@
ScripCondition => 'On Queue Change',
ScripAction => 'RTIR Set Due Correspond',
Template => 'Blank' },
+ { Description => "SetDefaultIncidentResolution",
+ Queue => 'Incidents',
+ ScripCondition => 'On Status Change',
+ ScripAction => 'RTIR Set Incident Resolution',
+ Template => 'Blank', },
);
push @ACL, (
Added: rtir/branches/1.9-EXPERIMENTAL/lib/RT/Action/RTIR_SetIncidentResolution.pm
==============================================================================
--- (empty file)
+++ rtir/branches/1.9-EXPERIMENTAL/lib/RT/Action/RTIR_SetIncidentResolution.pm Mon Apr 10 09:55:38 2006
@@ -0,0 +1,48 @@
+package RT::Action::RTIR_SetIncidentResolution;
+
+use strict;
+use base 'RT::Action::RTIR';
+
+=head2 Prepare
+
+Always run this.
+
+=cut
+
+sub Prepare { return 1 }
+
+=head2 Commit
+
+Set the resolution if there is no value.
+
+=cut
+
+sub Commit {
+ my $self = shift;
+
+ my $t = $self->TicketObj;
+
+ my $status = $t->Status;
+ return 1 unless $t->QueueObj->IsInactiveStatus( $t->Status );
+
+ my $value = RT->Config->Get("_RTIR_Resolution_${status}_default");
+ return 1 unless $value;
+
+ my $cf = RT::CustomField->new( $self->TransactionObj->CurrentUser );
+ $cf->LoadByNameAndQueue( Queue => $t->QueueObj->Id, Name => '_RTIR_Resolution' );
+ return 1 unless $cf->Id;
+
+ return 1 if $t->FirstCustomFieldValue( $cf->id );
+
+ my ($res, $msg) = $t->AddCustomFieldValue( Field => $cf->id, Value => $value );
+ $RT::Logger->warning("Couldn't add custom field value: $msg") unless $res;
+ return 1;
+}
+
+eval "require RT::Action::RTIR_SetIncidentResolution_Vendor";
+die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/RTIR_SetIncidentResolution_Vendor.pm});
+eval "require RT::Action::RTIR_SetIncidentResolution_Local";
+die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/RTIR_SetIncidentResolution_Local.pm});
+
+1;
+
More information about the Rt-commit
mailing list