Search code examples
pythonodooodoo-8openerp-8

ValueError: "undefined get method !" while evaluating u'action_ship_create()' in Odoo


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.


Solution

  • 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.