Trap trying to instance bad workflow activities.

Remove the ProcessRecurringPayments activity from the user's config.
This commit is contained in:
Colin Kuskie 2008-11-17 02:51:41 +00:00
parent 4bfb2d200c
commit 4e91f3d500
4 changed files with 31 additions and 1 deletions

View file

@ -19,6 +19,7 @@
- fixed #8971: UserList shows accounts that have been self-deactivated (Bernd Kalbfuß-Zimmermann)
- fixed #4199: Default values of user profile fields are not filled in correctly when shown by the UserList asset (Bernd Kalbfuß-Zimmerman)
- fixed #9068: field.inTab
- fixed #8845: Workflows refusing to show edit screen
7.6.3
- improved performance of file uploads

View file

@ -36,6 +36,7 @@ addVersionTagMode($session);
addPosMode($session);
fixFriendsGroups( $session );
upgradeAccount( $session );
removeProcessRecurringPaymentsFromConfig( $session );
finish($session); # this line required
@ -58,6 +59,23 @@ sub addPosMode {
print qq{Finished\n} if !$quiet;
}
#----------------------------------------------------------------------------
sub removeProcessRecurringPaymentsFromConfig {
my $session = shift;
print qq{\tRemoving old ProcessRecurringPayments workflow activity from config...} if !$quiet;
my $config = $session->config();
my $workflowActivities = $config->get('workflowActivities');
my @noObjects = ();
foreach my $activity (@{ $workflowActivities->{'None'}}) {
push @noObjects, $activity unless
$activity eq 'WebGUI::Workflow::Activity::ProcessRecurringPayments';
}
$workflowActivities->{'None'} = [ @noObjects ];
$config->set('workflowActivities', $workflowActivities);
}
#----------------------------------------------------------------------------
# This method add support for versionTagMode
#

View file

@ -217,7 +217,12 @@ sub www_editWorkflow {
foreach my $class (@{$workflowActivities->{$workflow->get("type")}}) {
my $activity = WebGUI::Workflow::Activity->newByPropertyHashRef($session, {className=>$class});
next unless defined $activity;
$addmenu .= '<a href="'.$session->url->page("op=editWorkflowActivity;className=".$class.";workflowId=".$workflow->getId).'">'.$activity->getName."</a><br />\n";
if ($activity->can('getName')) {
$addmenu .= '<a href="'.$session->url->page("op=editWorkflowActivity;className=".$class.";workflowId=".$workflow->getId).'">'.$activity->getName."</a><br />\n";
}
else {
$addmenu .= sprintf $i18n->get('bad workflow activity code'), $class;
}
}
$addmenu .= '</div>';
my $f = WebGUI::HTMLForm->new($session);

View file

@ -262,6 +262,12 @@ our $I18N = {
lastUpdated => 0,
},
'bad workflow activity code' => {
message => q|Syntax error found in %s, unable to edit this activity.|,
context => q|Error message in the edit workflow screen, when an activity cannot be instanciated.|,
lastUpdated => 1226814463,
},
};
1;