Vo Minh Thu (OpenERP) has proposed merging lp:~openerp-dev/openobject-server/trunk-methflow into lp:openobject-server.
Requested reviews: OpenERP Core Team (openerp) For more details, see: https://code.launchpad.net/~openerp-dev/openobject-server/trunk-methflow/+merge/146823 -- https://code.launchpad.net/~openerp-dev/openobject-server/trunk-methflow/+merge/146823 Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-server/trunk-methflow.
=== added file 'doc/workflows.rst' --- doc/workflows.rst 1970-01-01 00:00:00 +0000 +++ doc/workflows.rst 2013-02-06 11:06:26 +0000 @@ -0,0 +1,13 @@ +.. _workflows: + +Workflows +========= + +- Low-level workflow functions (i.e. the openerp.workflow "service"). + Useful when looking-up a model and its records is not necessary, i.e. when + working with raw model name and record ids is preferred (less hit to the + database). Cannot really be used as it would bypass the ORM methods. +- Model-level (ORM) methods. +- XML-RPC endpoint and methods. + +- Blah Model.signal_xxxx() === modified file 'openerp/osv/orm.py' --- openerp/osv/orm.py 2012-12-27 17:28:25 +0000 +++ openerp/osv/orm.py 2013-02-06 11:06:26 +0000 @@ -3928,6 +3928,24 @@ result[res_id] = wf_service.trg_validate(uid, self._name, res_id, signal, cr) return result + def create_workflow(self, cr, uid, ids): + wf_service = netsvc.LocalService("workflow") + for res_id in ids: + wf_service.trg_create(uid, self._name, res_id, cr) + return True + + def delete_workflow(self, cr, uid, ids): + wf_service = netsvc.LocalService("workflow") + for res_id in ids: + wf_service.trg_create(uid, self._name, res_id, cr) + return True + + def redirect_workflow(self, cr, uid, old_new_ids): + wf_service = netsvc.LocalService("workflow") + for old_id, new_id in old_new_ids: + wf_service.trg_redirect(uid, self._name, old_id, new_id, cr) + return True + def unlink(self, cr, uid, ids, context=None): """ Delete records with given ids @@ -5251,6 +5269,20 @@ """ stuff to do right after the registry is built """ pass + def __getattr__(self, name): + if name.startswith('signal_'): + signal_name = name[len('signal_'):] + assert signal_name + def handle_workflow_signal(cr, uid, ids): + workflow_service = netsvc.LocalService("workflow") + res = {} + for id in ids: + # TODO consolidate trg_validate() and the functions it calls to work on a list of IDs. + res[id] = workflow_service.trg_validate(uid, self._name, id, signal_name, cr) + return res + return handle_workflow_signal + return super(BaseModel, self).__getattr__(name) + # keep this import here, at top it will cause dependency cycle errors import expression
_______________________________________________ Mailing list: https://launchpad.net/~openerp-dev-gtk Post to : openerp-dev-gtk@lists.launchpad.net Unsubscribe : https://launchpad.net/~openerp-dev-gtk More help : https://help.launchpad.net/ListHelp