Reviewers: ,
Description:
[trytond] Fix records built as argument by trigger_action
Please review this at http://codereview.tryton.org/690002/
Affected files:
M trytond/ir/trigger.py
M trytond/test/__init__.py
M trytond/test/trigger.py
M trytond/tests/test_trigger.py
Index: trytond/ir/trigger.py
===================================================================
--- a/trytond/ir/trigger.py
+++ b/trytond/ir/trigger.py
@@ -161,7 +161,8 @@
"""
pool = Pool()
TriggerLog = pool.get('ir.trigger.log')
- Model = pool.get(trigger.action_model.model)
+ Model = pool.get(trigger.model.model)
+ ActionModel = pool.get(trigger.action_model.model)
cursor = Transaction().cursor
ids = map(int, records)
@@ -221,7 +222,7 @@
records = Model.browse(ids)
if records:
- getattr(Model, trigger.action_function)(records, trigger)
+ getattr(ActionModel, trigger.action_function)(records, trigger)
if trigger.limit_number or trigger.minimum_delay:
for record in records:
TriggerLog.create({
Index: trytond/test/__init__.py
===================================================================
--- a/trytond/test/__init__.py
+++ b/trytond/test/__init__.py
@@ -115,6 +115,7 @@
ExportDataTarget2,
ExportDataRelation,
Triggered,
+ TriggerAction,
TestAccess,
TestWizardStart,
WorkflowedModel,
Index: trytond/test/trigger.py
===================================================================
--- a/trytond/test/trigger.py
+++ b/trytond/test/trigger.py
@@ -3,7 +3,7 @@
from trytond.model import ModelSQL, fields
__all__ = [
- 'Triggered',
+ 'Triggered', 'TriggerAction',
]
TRIGGER_LOGS = []
@@ -14,6 +14,11 @@
__name__ = 'test.triggered'
name = fields.Char('Name')
+
+class TriggerAction(ModelSQL):
+ 'Trigger Action Model'
+ __name__ = 'test.trigger_action'
+
@staticmethod
def trigger(records, trigger):
'''
Index: trytond/tests/test_trigger.py
===================================================================
--- a/trytond/tests/test_trigger.py
+++ b/trytond/tests/test_trigger.py
@@ -52,13 +52,16 @@
model, = self.model.search([
('model', '=', 'test.triggered'),
])
+ action_model, = self.model.search([
+ ('model', '=', 'test.trigger_action'),
+ ])
values = {
'name': 'Test',
'model': model.id,
'on_time': True,
'condition': 'True',
- 'action_model': model.id,
+ 'action_model': action_model.id,
'action_function': 'test',
}
self.assert_(self.trigger.create(values))
@@ -92,13 +95,17 @@
model, = self.model.search([
('model', '=', 'test.triggered'),
])
+ action_model, = self.model.search([
+ ('model', '=', 'test.trigger_action'),
+ ])
+
trigger = self.trigger.create({
'name': 'Test',
'model': model.id,
'on_create': True,
'condition': 'True',
- 'action_model': model.id,
+ 'action_model': action_model.id,
'action_function': 'trigger',
})
@@ -162,13 +169,16 @@
model, = self.model.search([
('model', '=', 'test.triggered'),
])
+ action_model, = self.model.search([
+ ('model', '=', 'test.trigger_action'),
+ ])
trigger = self.trigger.create({
'name': 'Test',
'model': model.id,
'on_write': True,
'condition': 'True',
- 'action_model': model.id,
+ 'action_model': action_model.id,
'action_function': 'trigger',
})
@@ -272,6 +282,9 @@
model, = self.model.search([
('model', '=', 'test.triggered'),
])
+ action_model, = self.model.search([
+ ('model', '=', 'test.trigger_action'),
+ ])
triggered = self.triggered.create({
'name': 'Test',
@@ -282,7 +295,7 @@
'model': model.id,
'on_delete': True,
'condition': 'True',
- 'action_model': model.id,
+ 'action_model': action_model.id,
'action_function': 'trigger',
})
@@ -360,13 +373,16 @@
model, = self.model.search([
('model', '=', 'test.triggered'),
])
+ action_model, = self.model.search([
+ ('model', '=', 'test.trigger_action'),
+ ])
trigger = self.trigger.create({
'name': 'Test',
'model': model.id,
'on_time': True,
'condition': 'True',
- 'action_model': model.id,
+ 'action_model': action_model.id,
'action_function': 'trigger',
})
--
--
[email protected] mailing list
---
You received this message because you are subscribed to the Google Groups "tryton-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.