RT 4.2.11, ticket#13852
[freeside.git] / rt / etc / upgrade / 4.2.2 / content
diff --git a/rt/etc/upgrade/4.2.2/content b/rt/etc/upgrade/4.2.2/content
new file mode 100644 (file)
index 0000000..762289a
--- /dev/null
@@ -0,0 +1,59 @@
+use strict;
+use warnings;
+
+our @Initial = (
+    sub {
+        use RT::CustomFields;
+        my $cfs = RT::CustomFields->new(RT->SystemUser);
+        $cfs->{'find_disabled_rows'} = 1;
+        $cfs->Limit( FIELD => 'LookupType', VALUE => 'RT::FM::Class-RT::FM::Article' );
+        while ( my $cf = $cfs->Next ) {
+            my ($ret, $msg) = $cf->__Set( Field => 'LookupType', Value => 'RT::Class-RT::Article' );
+            RT->Logger->warning("Update Custom Field LookupType for CF.".$cf->Id." $msg");
+        }
+        return 1;
+    },
+
+    sub {
+        use RT::ObjectCustomFieldValues;
+        my $ocfvs = RT::ObjectCustomFieldValues->new(RT->System);
+        $ocfvs->{'find_expired_rows'} = 1;
+        $ocfvs->Limit( FIELD => 'ObjectType', VALUE => 'RT::FM::Article' );
+        while ( my $ocfv = $ocfvs->Next ) {
+            my ($ret, $msg) = $ocfv->__Set( Field => 'ObjectType', Value => 'RT::Article' );
+            RT->Logger->warning("Updated CF ".$ocfv->__Value('CustomField')." Value for Article ".$ocfv->__Value('ObjectId'));
+        }
+        return 1;
+    },
+
+    sub {
+        require RT::Scrips;
+        my $scrips = RT::Scrips->new( RT->SystemUser );
+        $scrips->{'find_disabled_rows'} = 1;
+        $scrips->Limit( FIELD => 'Disabled', VALUE => 1 );;
+        while ( my $scrip = $scrips->Next ) {
+            my $id = $scrip->Template;
+            if ( $id =~ /\D/ ) {
+                $RT::Logger->info('Template column for scrip #'. $scrip->id .' already contains characters');
+                next;
+            }
+
+            my $name;
+
+            my $template = RT::Template->new( RT->SystemUser );
+            $template->Load( $id );
+            unless ( $template->id ) {
+                $RT::Logger->error("Scrip #". $scrip->id ." has template set to #$id, but it's not in DB, setting it 'Blank'");
+                $name = 'Blank';
+            } else {
+                $name = $template->Name;
+            }
+
+            my ($status, $msg) = $scrip->_Set( Field => 'Template', Value => $name );
+            unless ( $status ) {
+                $RT::Logger->error("Couldn't set template: $msg");
+            }
+        }
+    },
+);
+