Allow to pass the action which calls a wizard

issue3675
review3921002
This commit is contained in:
Sergi Almacellas Abellana
2014-02-28 20:31:46 +01:00
parent e9e1439d38
commit 31f224339c
+7 -1
View File
@@ -890,7 +890,8 @@ class Model(object):
class Wizard(object):
'Wizard class for Tryton wizards'
def __init__(self, name, models=None, config=None, context=None):
def __init__(self, name, models=None, action=None, config=None,
context=None):
if models:
assert len(set(type(x) for x in models)) == 1
super(Wizard, self).__init__()
@@ -904,6 +905,7 @@ class Wizard(object):
self.session_id, self.start_state, self.end_state = result
self.states = [self.start_state]
self.models = models
self.action = action
self.execute(self.start_state)
def execute(self, state):
@@ -921,6 +923,10 @@ class Wizard(object):
ctx['active_id'] = None
ctx['active_ids'] = None
ctx['active_model'] = None
if self.action:
ctx['action_id'] = self.action.id
else:
ctx['action_id'] = None
if self.form:
# Filter only modified values