From a2772da7ef0c0fc64b19addf80f2ac85423e84f3 Mon Sep 17 00:00:00 2001
From: "mga@tinyerp.com" <>
Date: Thu, 14 Aug 2008 11:30:47 +0530
Subject: [PATCH] * Change View for the Server Action * implement action for
the workflow * remove extended from the partner property
bzr revid: mga@tinyerp.com-20080814060047-e0e3mdsx3vuvpth9
---
bin/addons/base/ir/ir.xml | 20 +++++++----
bin/addons/base/ir/ir_actions.py | 36 +++++++++++++++++---
bin/addons/base/ir/ir_ui_view.py | 2 +-
bin/addons/base/res/partner/partner_view.xml | 2 +-
4 files changed, 47 insertions(+), 13 deletions(-)
diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml
index 964ea69b676..d68c126bf60 100644
--- a/bin/addons/base/ir/ir.xml
+++ b/bin/addons/base/ir/ir.xml
@@ -1043,13 +1043,19 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bin/addons/base/ir/ir_actions.py b/bin/addons/base/ir/ir_actions.py
index 46386af1383..c31b33de6fc 100644
--- a/bin/addons/base/ir/ir_actions.py
+++ b/bin/addons/base/ir/ir_actions.py
@@ -255,6 +255,25 @@ class act_url(osv.osv):
}
act_url()
+def _get_fields(self, cr, uid, context={}):
+
+ return [('key','Email Value')]
+
+def model_get(self, cr, uid, context={}):
+ wkf_pool = self.pool.get('workflow')
+ ids = wkf_pool.search(cr, uid, [])
+ osvs = wkf_pool.read(cr, uid, ids, ['osv'])
+
+ res = []
+ mpool = self.pool.get('ir.model')
+ for osv in osvs:
+ model = osv.get('osv')
+ id = mpool.search(cr, uid, [('model','=',model)])
+ name = mpool.read(cr, uid, id)[0]['name']
+ res.append((model, name))
+
+ return res
+
#
# Actions that are run on the server side
#
@@ -274,15 +293,16 @@ class actions_server(osv.osv):
('object_write','Write Object'),
('client_action','Client Action'),
('other','Others Actions'),
- ], 'Action State', required=True, size=32),
+ ], 'Action State', required=True, size=32, change_default=True),
'code': fields.text('Python Code'),
'sequence': fields.integer('Sequence'),
'model_id': fields.many2one('ir.model', 'Model', required=True),
'trigger_name': fields.char('Trigger Name', size=128),
- 'trigger_object': fields.char('Trigger Object', size=128),
- 'trigger_object_id': fields.char('Trigger Object ID', size=128),
+ 'trigger_obj_id': fields.reference('Trigger On', selection=model_get, size=128),
+ #'trigger_object': fields.char('Trigger Object', size=128),
+ #'trigger_object_id': fields.char('Trigger Object ID', size=128),
'message': fields.text('Message', translate=True),
- 'address': fields.char('Email Address', size=128),
+ 'address': fields.selection(_get_fields ,'Email / SMS', size=128),
'child_ids': fields.one2many('ir.actions.actions', 'parent_id', 'Others Actions'),
'usage': fields.char('Action Usage', size=32),
'type': fields.char('Report Type', size=32, required=True),
@@ -301,6 +321,7 @@ class actions_server(osv.osv):
# If you plan to return an action, assign: action = {...}
"""
}
+
#
# Context should contains:
# ids : original ids
@@ -331,11 +352,18 @@ class actions_server(osv.osv):
logger.notifyChannel('email', netsvc.LOG_INFO, 'Email successfully send to : %s' % (action.address))
else:
logger.notifyChannel('email', netsvc.LOG_ERROR, 'Failed to send email to : %s' % (action.address))
+ if action.state == 'trigger':
+ #wf_service = netsvc.LocalService("workflow")
+ print action.trigger_obj_id
+ #wf_service.trg_validate(uid, )
if action.state == 'sms':
if tools.sms_send(user, password, api_id, text, to) == True:
logger.notifyChannel('sms', netsvc.LOG_INFO, 'SMS successfully send to : %s' % (action.address))
else:
logger.notifyChannel('sms', netsvc.LOG_ERROR, 'Failed to send SMS to : %s' % (action.address))
+ if action.state == 'other':
+ print 'Actions to be Execute', action.child_ids
+
return False
actions_server()
diff --git a/bin/addons/base/ir/ir_ui_view.py b/bin/addons/base/ir/ir_ui_view.py
index f015478a568..7066d429bd4 100644
--- a/bin/addons/base/ir/ir_ui_view.py
+++ b/bin/addons/base/ir/ir_ui_view.py
@@ -116,7 +116,7 @@ class view(osv.osv):
return result
- return super(view, self).write(cr, uid, ids, vals, context)
+ return super(view, self).write(cr, uid, ids, vals, context)
view()
class view_sc(osv.osv):
diff --git a/bin/addons/base/res/partner/partner_view.xml b/bin/addons/base/res/partner/partner_view.xml
index ba485352921..8f16f953615 100644
--- a/bin/addons/base/res/partner/partner_view.xml
+++ b/bin/addons/base/res/partner/partner_view.xml
@@ -279,7 +279,7 @@
-
+