[Rt-commit] rt branch, 4.4/default-class, created. rt-4.2.11-164-gf0a9807
? sunnavy
sunnavy at bestpractical.com
Sun Aug 16 11:16:24 EDT 2015
The branch, 4.4/default-class has been created
at f0a9807a30fac757fdb4e460e55ffd4a5b4672a0 (commit)
- Log -----------------------------------------------------------------
commit f0a9807a30fac757fdb4e460e55ffd4a5b4672a0
Author: sunnavy <sunnavy at bestpractical.com>
Date: Sun Aug 16 22:53:45 2015 +0800
create 'General' class by default
diff --git a/etc/initialdata b/etc/initialdata
index 21c8888..d3ebb01 100644
--- a/etc/initialdata
+++ b/etc/initialdata
@@ -912,3 +912,11 @@ Hour: { $SubscriptionObj->SubValue('Hour') }
},
},
);
+
+ at Classes = (
+ {
+ Name => 'General',
+ Description => 'The default class',
+ HotList => 1,
+ },
+);
diff --git a/etc/upgrade/4.3.9/content b/etc/upgrade/4.3.9/content
new file mode 100644
index 0000000..fe79c7f
--- /dev/null
+++ b/etc/upgrade/4.3.9/content
@@ -0,0 +1,20 @@
+use strict;
+use warnings;
+
+our @Initial = (
+ sub {
+ my $class = RT::Class->new( RT->SystemUser );
+ $class->Load( 'General' );
+ return if $class->id;
+ my ( $ret, $msg ) = $class->Create( Name => 'General', Description => 'The default class', HotList => 1 );
+ if ( $ret ) {
+ my ($ret, $msg) = $class->AddToObject(RT::Queue->new(RT->SystemUser));
+ if ( !$ret ) {
+ RT->Logger->error("Failed to apply class 'General' globally: $msg");
+ }
+ }
+ else {
+ RT->Logger->error("Failed to create class 'General': $msg");
+ }
+ },
+);
diff --git a/lib/RT/Handle.pm b/lib/RT/Handle.pm
index e11a2a0..f5a5d50 100644
--- a/lib/RT/Handle.pm
+++ b/lib/RT/Handle.pm
@@ -828,9 +828,9 @@ sub InsertData {
);
# Slurp in stuff to insert from the datafile. Possible things to go in here:-
- our (@Groups, @Users, @Members, @ACL, @Queues, @ScripActions, @ScripConditions,
+ our (@Groups, @Users, @Members, @ACL, @Queues, @Classes, @ScripActions, @ScripConditions,
@Templates, @CustomFields, @Scrips, @Attributes, @Initial, @Final);
- local (@Groups, @Users, @Members, @ACL, @Queues, @ScripActions, @ScripConditions,
+ local (@Groups, @Users, @Members, @ACL, @Queues, @Classes, @ScripActions, @ScripConditions,
@Templates, @CustomFields, @Scrips, @Attributes, @Initial, @Final);
local $@;
@@ -997,6 +997,45 @@ sub InsertData {
}
$RT::Logger->debug("done.");
}
+ if ( @Classes ) {
+ $RT::Logger->debug("Creating classes...");
+ for my $item (@Classes) {
+ my $attributes = delete $item->{ Attributes };
+ # Back-compat for the old "Queue" argument
+ if ( exists $item->{'Queue'} ) {
+ $item->{'ApplyTo'} = delete $item->{'Queue'};
+ }
+
+ my $apply_to = delete $item->{'ApplyTo'};
+ my $new_entry = RT::Class->new(RT->SystemUser);
+ my ( $return, $msg ) = $new_entry->Create(%$item);
+ unless ( $return ) {
+ $RT::Logger->error( $msg );
+ } else {
+ $RT::Logger->debug( $return ."." );
+ if ( !$apply_to ) {
+ ( $return, $msg) = $new_entry->AddToObject( RT::Queue->new(RT->SystemUser) );
+ $RT::Logger->error( $msg ) unless $return;
+ } else {
+ $apply_to = [ $apply_to ] unless ref $apply_to;
+ for my $name ( @{ $apply_to } ) {
+ my $queue = RT::Queue->new( RT->SystemUser );
+ $queue->Load( $name );
+ if ( $queue->id ) {
+ ( $return, $msg) = $new_entry->AddToObject( $queue );
+ $RT::Logger->error( $msg ) unless $return;
+ }
+ else {
+ $RT::Logger->error( "Could not find RT::Queue $name to apply " . $new_entry->Name . " to" );
+ }
+ }
+ }
+ $_->{Object} = $new_entry for @{$attributes || []};
+ push @Attributes, @{$attributes || []};
+ }
+ }
+ $RT::Logger->debug("done.");
+ }
if ( @CustomFields ) {
$RT::Logger->debug("Creating custom fields...");
for my $item ( @CustomFields ) {
-----------------------------------------------------------------------
More information about the rt-commit
mailing list