|
@@ -1186,17 +1186,16 @@ class ModelAction(ModelObject, ogl.DividedShape):
|
|
:param options: dictionary with flags and params (gtask)
|
|
:param options: dictionary with flags and params (gtask)
|
|
"""
|
|
"""
|
|
self.isValid = True
|
|
self.isValid = True
|
|
- self.isParameterized = False
|
|
|
|
-
|
|
|
|
|
|
+
|
|
for f in options['flags']:
|
|
for f in options['flags']:
|
|
if f.get('parameterized', False):
|
|
if f.get('parameterized', False):
|
|
- self.IsParameterized = True
|
|
|
|
|
|
+ self.isParameterized = True
|
|
break
|
|
break
|
|
-
|
|
|
|
|
|
+
|
|
for p in options['params']:
|
|
for p in options['params']:
|
|
if self.isValid and p.get('required', False) and \
|
|
if self.isValid and p.get('required', False) and \
|
|
- p.get('value', '') == '' and \
|
|
|
|
- p.get('default', '') == '':
|
|
|
|
|
|
+ p.get('value', '') == '' and \
|
|
|
|
+ p.get('default', '') == '':
|
|
self.isValid = False
|
|
self.isValid = False
|
|
if not self.isParameterized and p.get('parameterized', False):
|
|
if not self.isParameterized and p.get('parameterized', False):
|
|
self.isParameterized = True
|
|
self.isParameterized = True
|
|
@@ -1212,7 +1211,23 @@ class ModelAction(ModelObject, ogl.DividedShape):
|
|
def IsParameterized(self):
|
|
def IsParameterized(self):
|
|
"""Check if action is parameterized"""
|
|
"""Check if action is parameterized"""
|
|
return self.isParameterized
|
|
return self.isParameterized
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ def GetParameterizedParams(self):
|
|
|
|
+ """Return parameterized flags and options"""
|
|
|
|
+ param = { 'flags': [], 'params' : [] }
|
|
|
|
+
|
|
|
|
+ options = self.GetParams()
|
|
|
|
+
|
|
|
|
+ for f in options['flags']:
|
|
|
|
+ if f.get('parameterized', False):
|
|
|
|
+ param['flags'].append(f)
|
|
|
|
+
|
|
|
|
+ for p in options['params']:
|
|
|
|
+ if p.get('parameterized', False):
|
|
|
|
+ param['params'].append(p)
|
|
|
|
+
|
|
|
|
+ return param
|
|
|
|
+
|
|
def FindData(self, name):
|
|
def FindData(self, name):
|
|
"""Find data item by name"""
|
|
"""Find data item by name"""
|
|
for rel in self.GetRelations():
|
|
for rel in self.GetRelations():
|
|
@@ -1329,10 +1344,10 @@ class ModelData(ModelObject, ogl.EllipseShape):
|
|
action = rel.GetTo()
|
|
action = rel.GetTo()
|
|
else:
|
|
else:
|
|
action = rel.GetFrom()
|
|
action = rel.GetFrom()
|
|
-
|
|
|
|
|
|
+
|
|
task = GUI(show = None).ParseCommand(cmd = action.GetLog(string = False))
|
|
task = GUI(show = None).ParseCommand(cmd = action.GetLog(string = False))
|
|
task.set_param(rel.GetLabel(), self.value)
|
|
task.set_param(rel.GetLabel(), self.value)
|
|
- action.SetParams(params = task.get_options())
|
|
|
|
|
|
+ action.MergeParams(task.get_options())
|
|
|
|
|
|
def GetPropDialog(self):
|
|
def GetPropDialog(self):
|
|
"""Get properties dialog"""
|
|
"""Get properties dialog"""
|