wrong call instance.WorkflowInstance

Bug #1297631 reported by Ivan Yelizariev
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Odoo Server (MOVED TO GITHUB)
New
Undecided
Unassigned

Bug Description

There is a wrong call at file server/openerp/workflow/workitem.py:
             inst = instance.WorkflowInstance(self.session, self.record)

while defenition for instance.WorkflowInstance (file server/openerp/workflow/instance.py) is follow:

class WorkflowInstance(object):
    def __init__(self, session, record, values):

Error is happen when there is subflow activity without action field

 2014-03-26 05:36:09,356 10341 ERROR itprojects_LOCAL openerp.http: Exception during JSON request handling.
Traceback (most recent call last):
  File "/mnt/files/src/openerp-server/server/openerp/http.py", line 362, in dispatch
    response["result"] = self._call_function(**self.params)
  File "/mnt/files/src/openerp-server/server/openerp/http.py", line 223, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/mnt/files/src/openerp-server/server/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/mnt/files/src/openerp-server/server/openerp/http.py", line 220, in checked_call
    return self.endpoint(*a, **kw)
  File "/mnt/files/src/openerp-server/server/openerp/http.py", line 559, in __call__
    return self.method(*args, **kw)
  File "/mnt/files/src/openerp-server/server/openerp/http.py", line 266, in response_wrap
    response = f(*args, **kw)
  File "/mnt/files/src/openerp-server/web/addons/web/controllers/main.py", line 1229, in call_button
    action = self._call_kw(model, method, args, {})
  File "/mnt/files/src/openerp-server/web/addons/web/controllers/main.py", line 1217, in _call_kw
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/mnt/files/src/openerp-server/addons/sale/sale.py", line 562, in action_button_confirm
    self.signal_order_confirm(cr, uid, ids)
  File "/mnt/files/src/openerp-server/server/openerp/osv/orm.py", line 5083, in <lambda>
    self.signal_workflow(*args, signal=signal_name, **kwargs))
  File "/mnt/files/src/openerp-server/server/openerp/osv/orm.py", line 3617, in signal_workflow
    result[res_id] = workflow.trg_validate(uid, self._name, res_id, signal, cr)
  File "/mnt/files/src/openerp-server/server/openerp/workflow/__init__.py", line 85, in trg_validate
    return WorkflowService.new(cr, uid, res_type, res_id).validate(signal)
  File "/mnt/files/src/openerp-server/server/openerp/workflow/service.py", line 91, in validate
    res2 = wi.validate(signal)
  File "/mnt/files/src/openerp-server/server/openerp/workflow/instance.py", line 75, in validate
    wi.process(signal=signal, force_running=force_running, stack=stack)
  File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 121, in process
    ok = self._split_test(activity['split_mode'], signal, stack)
  File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 249, in _split_test
    self._join_test(t[0], t[1], stack)
  File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 258, in _join_test
    WorkflowItem.create(self.session, self.record, activity, inst_id, stack=stack)
  File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 96, in create
    workflow_item.process(stack=stack)
  File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 121, in process
    ok = self._split_test(activity['split_mode'], signal, stack)
  File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 249, in _split_test
    self._join_test(t[0], t[1], stack)
  File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 258, in _join_test
    WorkflowItem.create(self.session, self.record, activity, inst_id, stack=stack)
  File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 96, in create
    workflow_item.process(stack=stack)
  File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 121, in process
    ok = self._split_test(activity['split_mode'], signal, stack)
  File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 249, in _split_test
    self._join_test(t[0], t[1], stack)
  File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 258, in _join_test
    WorkflowItem.create(self.session, self.record, activity, inst_id, stack=stack)
  File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 96, in create
    workflow_item.process(stack=stack)
  File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 117, in process
    if not self._execute(activity, stack):
  File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 196, in _execute
    inst = instance.WorkflowInstance(self.session, self.record)
TypeError: __init__() takes exactly 4 arguments (3 given)

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.