I have custom module in which override method of sale module.
Method name is action_ship_create()
Here is my code:
def action_ship_create(self, cr, uid, ids, context=None):
res = super(sale_order, self).action_ship_create(cr, uid, ids, context=context)
#logic for passing value
return res
Make a Sale Order with Order Policy = 'picking' and hit Confirm Sale button. And I faced this error:
Exception during JSON request handling.
Traceback (most recent call last):
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 517, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 538, in dispatch
result = self._call_function(**self.params)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 294, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/service/model.py", line 113, in wrapper
return f(dbname, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 291, in checked_call
return self.endpoint(*a, **kw)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 754, in __call__
return self.method(*args, **kw)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 387, in response_wrap
response = f(*args, **kw)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/web/controllers/main.py", line 953, in call_button
action = self._call_kw(model, method, args, {})
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/web/controllers/main.py", line 941, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/portal_sale/portal_sale.py", line 67, in action_button_confirm
return super(sale_order, self).action_button_confirm(cr, uid, ids, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/sale/sale.py", line 598, in action_button_confirm
self.signal_workflow(cr, uid, ids, 'order_confirm')
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/models.py", line 3483, in signal_workflow
result[res_id] = workflow.trg_validate(uid, self._name, res_id, signal, cr)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/__init__.py", line 85, in trg_validate
return WorkflowService.new(cr, uid, res_type, res_id).validate(signal)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/service.py", line 91, in validate
res2 = wi.validate(signal)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/instance.py", line 75, in validate
wi.process(signal=signal, force_running=force_running, stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 120, in process
ok = self._split_test(activity['split_mode'], signal, stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 248, in _split_test
self._join_test(t[0], t[1], stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 257, in _join_test
WorkflowItem.create(self.session, self.record, activity, inst_id, stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 95, in create
workflow_item.process(stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 120, in process
ok = self._split_test(activity['split_mode'], signal, stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 248, in _split_test
self._join_test(t[0], t[1], stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 257, in _join_test
WorkflowItem.create(self.session, self.record, activity, inst_id, stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 95, in create
workflow_item.process(stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 120, in process
ok = self._split_test(activity['split_mode'], signal, stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 248, in _split_test
self._join_test(t[0], t[1], stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 257, in _join_test
WorkflowItem.create(self.session, self.record, activity, inst_id, stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 95, in create
workflow_item.process(stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 116, in process
if not self._execute(activity, stack):
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 162, in _execute
returned_action = self.wkf_expr_execute(activity)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 313, in wkf_expr_execute
return self.wkf_expr_eval_expr(activity['action'])
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 291, in wkf_expr_eval_expr
result = eval(line, env, nocopy=True)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/tools/safe_eval.py", line 313, in safe_eval
return eval(c, globals_dict, locals_dict)
File "", line 1, in <module>
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 235, in wrapper
return new_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 552, in new_api
result = method(self._model, cr, uid, self.ids, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/playaround/test_sale_stock/sale.py", line 222, in action_ship_create
ret = super(sale_order, self).action_ship_create(cr, uid, ids, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/sale/sale.py", line 724, in action_ship_create
procurement_obj.run(cr, uid, proc_ids, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/stock/procurement.py", line 219, in run
self.pool.get('stock.move').action_confirm(cr, uid, move_to_confirm_ids, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/stock/stock.py", line 2126, in action_confirm
self._picking_assign(cr, uid, move_ids, procurement_group, location_from, location_to, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/stock/stock.py", line 2062, in _picking_assign
return self.write(cr, uid, move_ids, {'picking_id': pick}, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/purchase/stock.py", line 36, in write
res = super(stock_move, self).write(cr, uid, ids, vals, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/stock/stock.py", line 1937, in write
return super(stock_move, self).write(cr, uid, ids, vals, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 360, in old_api
result = method(recs, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/models.py", line 3700, in write
self._write(old_vals)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 235, in wrapper
return new_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 552, in new_api
result = method(self._model, cr, uid, self.ids, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/models.py", line 3942, in _write
self.pool[model_name]._store_set_values(cr, user, todo, fields_to_recompute, context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/models.py", line 4337, in _store_set_values
result = column.get(cr, self, ids, f, SUPERUSER_ID, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/osv/fields.py", line 196, in get
raise Exception(_('undefined get method !'))
ValueError: "undefined get method !" while evaluating
u'action_ship_create()'
Any idea or clue will be appreciate.
As per @AnderiBoyanov suggestion, we debug with import pdb; pdb.set_trace()
and found that something wrong with my selection field on stock.picking
So we just improved that selection field on stock.picking and also improved on stock.move
After upgrading module, it's work fine.