c2c-oerpscenario team mailing list archive
-
c2c-oerpscenario team
-
Mailing list archive
-
Message #08052
[Bug 668465] Re: [trunk] controllers form, bad contidion on save
** Changed in: openobject-client-web
Status: Fix Released => New
--
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to the OpenERP Project Group.
https://bugs.launchpad.net/bugs/668465
Title:
[trunk] controllers form, bad contidion on save
Status in OpenObject Web Client:
New
Bug description:
If you have a button, link with a action type url, when you press on button in NOT edit mode, original code launch a write,
Comment in code say "bypass save, for button action in non-editable view" but the condition is bad, and 2 else do same thing.
addons/openerp/controllers/form.py Class Form, Function save
Original code
# bypass save, for button action in non-editable view
if not (params.button and params.editable and params.id):
proxy = rpc.RPCProxy(params.model)
if not params.id:
ctx = dict((params.context or {}), **rpc.session.context)
id = proxy.create(data, ctx)
params.ids = (params.ids or []) + [int(id)]
params.id = int(id)
params.count += 1
else:
ctx = utils.context_with_concurrency_info(params.context, params.concurrency_info)
id = proxy.write([params.id], data, ctx)
elif params.button and params.editable and params.id:
proxy = rpc.RPCProxy(params.model)
ctx = utils.context_with_concurrency_info(params.context, params.concurrency_info)
id = proxy.write([params.id], data, ctx)
Fix: The fix do create if button, editable and no id in param, else do a write if button, editable and id in param
if params.button and params.editable and not params.id:
proxy = rpc.RPCProxy(params.model)
ctx = dict((params.context or {}), **rpc.session.context)
id = proxy.create(data, ctx)
params.ids = (params.ids or []) + [int(id)]
params.id = int(id)
params.count += 1
elif params.button and params.editable and params.id:
proxy = rpc.RPCProxy(params.model)
ctx = utils.context_with_concurrency_info(params.context, params.concurrency_info)
id = proxy.write([params.id], data, ctx)
References