* Change View for the Server Action

* implement action for the workflow
* remove extended from the partner property

bzr revid: mga@tinyerp.com-20080814060047-e0e3mdsx3vuvpth9
This commit is contained in:
mga@tinyerp.com 2008-08-14 11:30:47 +05:30
parent 920d70c47b
commit a2772da7ef
4 changed files with 47 additions and 13 deletions

View File

@ -1043,13 +1043,19 @@
<field name="state" select="1"/>
<field name="model_id" select="1"/>
<field name="sequence" select="2"/>
<field name="code" colspan="4"/>
<field name="trigger_name" select="2"/>
<field name="trigger_object" select="2"/>
<field name="trigger_object_id"/>
<field name="message" select="2" colspan="4"/>
<field name="address" select="2"/>
<field name="child_ids" colspan="4"/>
<separator colspan="4" string="Python code"/>
<field name="code" colspan="4" attrs="{'readonly':[('state','!=','python')]}"/>
<separator colspan="4" string="Trigger Configuration"/>
<field name="trigger_obj_id" select="2" colspan="4" attrs="{'readonly':[('state','!=','trigger')]}"/>
<field name="trigger_name" select="2" attrs="{'readonly':[('state','!=','trigger')]}"/>
<!-- <field name="trigger_object_id" attrs="{'readonly':[('state','!=','trigger')]}"/>-->
<separator colspan="4" string="Email Configuration"/>
<field name="address" select="2" attrs="{'readonly':[('state','=','python'),('state','=','dummy'),('state','=','trigger'), ('state','=','object_create'), ('state','=','object_write'), ('state','=','client_action'), ('state','=','other')]}"/>
<field name="message" select="2" colspan="4" attrs="{'readonly':[('state','=','python'),('state','=','dummy'),('state','=','trigger'), ('state','=','object_create'), ('state','=','object_write'), ('state','=','client_action'), ('state','=','other')]}"/>
<separator colspan="4" string="Other Actions Configuration"/>
<field name="child_ids" colspan="4" attrs="{'readonly':[('state','!=','other')]}"/>
<field name="usage"/>
<field name="type"/>
</form>

View File

@ -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()

View File

@ -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):

View File

@ -279,7 +279,7 @@
<page string="Event History">
<field colspan="4" name="events" nolabel="1" widget="one2many_list"/>
</page>
<page groups="base.group_extended" string="Properties">
<page string="Properties">
<properties/>
</page>
</notebook>