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"); } } }, );