workflow activitied pick up new default values

This commit is contained in:
Graham Knop 2007-10-16 20:55:53 +00:00
parent 39ad82133a
commit ac5675cf18
2 changed files with 14 additions and 7 deletions

View file

@ -3,6 +3,7 @@
- fix: Cannot delete private message (Diona Kidd, Knowmad Technologies)
- fix: Delete this entry link in data form header broken
- fix: Image uploads fail when not using preload.perl
- fix: Workflow activities don't pick up new default values
7.4.10
- fix: Graphs aren't sized properly using GraphicsMagick

View file

@ -297,15 +297,21 @@ sub new {
my $main = $session->db->getRow("WorkflowActivity","activityId", $activityId);
return undef unless $main->{activityId};
$class = $main->{className};
my $cmd = "use ".$class;
eval ($cmd);
if ($@) {
$session->errorHandler->error("Couldn't compile workflow activity package: ".$class.". Root cause: ".$@);
return undef;
}
(my $module = "$class.pm") =~ s{'|::}{/}g;
unless (eval { require $module; 1 }) {
$session->errorHandler->error("Couldn't compile workflow activity package: ".$class.". Root cause: ".$@);
return undef;
}
my $sub = $session->db->buildHashRef("select name,value from WorkflowActivityData where activityId=?",[$activityId]);
my %data = (%{$main}, %{$sub});
bless {_session=>$session, _id=>$activityId, _data=>\%data}, $class;
for my $definition (reverse @{$class->definition($session)}) {
for my $property (keys %{$definition->{properties}}) {
if(!defined $data{$property} || $data{$property} eq '' && $definition->{properties}{$property}{defaultValue}) {
$data{$property} = $definition->{properties}{$property}{defaultValue};
}
}
}
bless {_session=>$session, _id=>$activityId, _data=>\%data}, $class;
}
#-------------------------------------------------------------------