3

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.

Bhavesh Odedra
  • 10,990
  • 12
  • 33
  • 58
  • Unfortunately I cannot reproduce your problem. But I think it's not in the redefinition of the `action_ship_create` method. It's mote likely that the problem comes from a redefinition of some field of some object in the `stock` module... – Andrei Boyanov Sep 14 '15 at 11:44
  • If you are familiar with the pdb debugger insert `import pdb; pdb.set_trace()` just before the line 196 in */home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/osv/fields.py* and you'll be able to debug what object and field are firing the exception... – Andrei Boyanov Sep 14 '15 at 11:47
  • Thanks @AndreiBoyanov, it will work fine if i change the part of custom module. Yes for sure it will not of redefine of method but can not find of root problem of it. – Bhavesh Odedra Sep 14 '15 at 14:21
  • May you give the entire Python code of your customization module if it's not too long? – Andrei Boyanov Sep 14 '15 at 14:30
  • And also try to only delete the new `action_ship_record()` method to see if it works without it. – Andrei Boyanov Sep 14 '15 at 14:32
  • If I remove *action_ship_record()* method from module than still give me same error. – Bhavesh Odedra Sep 14 '15 at 14:34
  • @AndreiBoyanov & Odedra your comments helps me a lot thanks – DASADIYA CHAITANYA Aug 30 '16 at 09:14

1 Answers1

1

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.

Bhavesh Odedra
  • 10,990
  • 12
  • 33
  • 58