← Back to team overview

c2c-oerpscenario team mailing list archive

[Bug 717185] [NEW] Creating a new pricelist from a sale ordre crashes

 

Public bug reported:

6.0.1

When creating a new sale order I create a new price list 
When I want to create a new "product Listprice item" the web client crashes

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
 /home/tempo/openerp-web-6.0.1/lib/cherrypy/_cprequest.py in respond(self=<cherrypy._cprequest.Request object at 0xa2771ec>, path_info='/openerp/openo2m/edit')
  604                     if self.handler:
  605                         self.stage = 'handler'
  606                         cherrypy.response.body = self.handler()
  607                     
  608                     self.stage = 'before_finalize'
global cherrypy = <module 'cherrypy' from '/home/tempo/openerp-web-6.0.1/lib/cherrypy/__init__.pyc'>, cherrypy.response = <cherrypy._ThreadLocalProxy object at 0xb751ae4c>, cherrypy.response.body = [], self = <cherrypy._cprequest.Request object at 0xa2771ec>, self.handler = <cherrypy._cpdispatch.LateParamPageHandler object at 0xa277bac>
 /home/tempo/openerp-web-6.0.1/lib/cherrypy/_cpdispatch.py in __call__(self=<cherrypy._cpdispatch.LateParamPageHandler object at 0xa27720c>)
   23     def __call__(self):
   24         try:
   25             return self.callable(*self.args, **self.kwargs)
   26         except TypeError, x:
   27             test_callable_spec(self.callable, self.args, self.kwargs)
self = <cherrypy._cpdispatch.LateParamPageHandler object at 0xa27720c>, self.callable = <bound method Root.default of <openobject.controllers._root.Root object at 0x985e2cc>>, self.args = ('openerp', 'openo2m', 'edit'), self.kwargs = {'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...}
 /home/tempo/openerp-web-6.0.1/openobject/tools/_expose.py in func_wrapper(*args=(<openobject.controllers._root.Root object at 0x985e2cc>, 'openerp', 'openo2m', 'edit'), **kw={'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...})
  180                 raise cherrypy.HTTPError(405)
  181 
  182             res = func(*args, **kw)
  183             if format == 'json' or (allow_json and 'allow_json' in cherrypy.request.params):
  184                 cherrypy.response.headers['Content-Type'] = 'text/javascript'
global res = '/home/tempo/openerp-web-6.0.1/openobject/widgets/templates/jssource.mako', func = <function default at 0x9898dbc>, args = (<openobject.controllers._root.Root object at 0x985e2cc>, 'openerp', 'openo2m', 'edit'), kw = {'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...}
 /home/tempo/openerp-web-6.0.1/openobject/controllers/_root.py in default(self=<openobject.controllers._root.Root object at 0x985e2cc>, *args=('openerp', 'openo2m', 'edit'), **kw={'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...})
   85             request.handler = cherrypy.NotFound()
   86 
   87         return request.handler()
   88 
   89     def find_handler(self):
request = <cherrypy._ThreadLocalProxy object at 0xb751ae0c>, request.handler = <cherrypy._cpdispatch.LateParamPageHandler object at 0xa277bac>
 /home/tempo/openerp-web-6.0.1/lib/cherrypy/_cpdispatch.py in __call__(self=<cherrypy._cpdispatch.LateParamPageHandler object at 0xa277bac>)
   23     def __call__(self):
   24         try:
   25             return self.callable(*self.args, **self.kwargs)
   26         except TypeError, x:
   27             test_callable_spec(self.callable, self.args, self.kwargs)
self = <cherrypy._cpdispatch.LateParamPageHandler object at 0xa277bac>, self.callable = <function edit at 0xa79925c>, self.args = (), self.kwargs = {'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...}
 /home/tempo/openerp-web-6.0.1/addons/openerp/controllers/utils.py in wrapper(*args=(), **kw={'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...})
  110             # User is logged in; allow access
  111             clear_login_fields(kw)
  112             return fn(*args, **kw)
  113         else:
  114             action = kw.get('login_action', '')
fn = <bound method OpenO2M.edit of <openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>>, args = (), kw = {'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...}
 /home/tempo/openerp-web-6.0.1/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>,), **kw={'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...})
  180                 raise cherrypy.HTTPError(405)
  181 
  182             res = func(*args, **kw)
  183             if format == 'json' or (allow_json and 'allow_json' in cherrypy.request.params):
  184                 cherrypy.response.headers['Content-Type'] = 'text/javascript'
global res = '/home/tempo/openerp-web-6.0.1/openobject/widgets/templates/jssource.mako', func = <function edit at 0x9b58684>, args = (<openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>,), kw = {'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...}
 /home/tempo/openerp-web-6.0.1/addons/openerp/controllers/openo2m.py in edit(self=<openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>, **kw={'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...})
  146     def edit(self, **kw):
  147         params, data = TinyDict.split(kw)
  148         return self.create(params)
  149     
  150     @expose('json', methods=('POST',))
self = <openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>, self.create = <function create at 0xa2724fc>, params = {'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []}
 /home/tempo/openerp-web-6.0.1/addons/openerp/controllers/utils.py in wrapper(*args=({'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []},), **kw={})
  110             # User is logged in; allow access
  111             clear_login_fields(kw)
  112             return fn(*args, **kw)
  113         else:
  114             action = kw.get('login_action', '')
fn = <bound method OpenO2M.create of <openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>>, args = ({'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []},), kw = {}
 /home/tempo/openerp-web-6.0.1/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>, {'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []}), **kw={})
  180                 raise cherrypy.HTTPError(405)
  181 
  182             res = func(*args, **kw)
  183             if format == 'json' or (allow_json and 'allow_json' in cherrypy.request.params):
  184                 cherrypy.response.headers['Content-Type'] = 'text/javascript'
global res = '/home/tempo/openerp-web-6.0.1/openobject/widgets/templates/jssource.mako', func = <function create at 0x9b584fc>, args = (<openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>, {'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []}), kw = {}
 /home/tempo/openerp-web-6.0.1/addons/openerp/controllers/openo2m.py in create(self=<openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>, params={'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []}, tg_errors=None)
   87             form = cherrypy.request.terp_form
   88         else:
   89             form = self.create_form(params, tg_errors)
   90 
   91         return dict(form=form, params=params)
form undefined, self = <openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>, self.create_form = <bound method OpenO2M.create_form of <openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>>, params = {'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []}, tg_errors = None
 /home/tempo/openerp-web-6.0.1/addons/openerp/controllers/openo2m.py in create_form(self=<openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>, params={'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []}, tg_errors=None)
   49         form = tw.form_view.ViewForm(vp, name="view_form", action="/openerp/openo2m/save")
   50         cherrypy.request.terp_validators = {}
   51         wid = form.screen.widget.get_widgets_by_name(params.o2m)[0]
   52 
   53         # save view_params for later phazes
wid undefined, form = ViewForm, form.screen = Screen, form.screen.widget = Form, form.screen.widget.get_widgets_by_name = <bound method Form.get_widgets_by_name of Form>, params = {'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []}, params.o2m = 'version_id/items_id'

<type 'exceptions.IndexError'>: list index out of range
      args = ('list index out of range',)
      message = 'list index out of range'

** Affects: openobject-client-web
     Importance: Undecided
         Status: 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/717185

Title:
  Creating a new pricelist from a sale ordre crashes

Status in OpenERP Web Client:
  New

Bug description:
  6.0.1

  When creating a new sale order I create a new price list 
  When I want to create a new "product Listprice item" the web client crashes

  A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
   /home/tempo/openerp-web-6.0.1/lib/cherrypy/_cprequest.py in respond(self=<cherrypy._cprequest.Request object at 0xa2771ec>, path_info='/openerp/openo2m/edit')
    604                     if self.handler:
    605                         self.stage = 'handler'
    606                         cherrypy.response.body = self.handler()
    607                     
    608                     self.stage = 'before_finalize'
  global cherrypy = <module 'cherrypy' from '/home/tempo/openerp-web-6.0.1/lib/cherrypy/__init__.pyc'>, cherrypy.response = <cherrypy._ThreadLocalProxy object at 0xb751ae4c>, cherrypy.response.body = [], self = <cherrypy._cprequest.Request object at 0xa2771ec>, self.handler = <cherrypy._cpdispatch.LateParamPageHandler object at 0xa277bac>
   /home/tempo/openerp-web-6.0.1/lib/cherrypy/_cpdispatch.py in __call__(self=<cherrypy._cpdispatch.LateParamPageHandler object at 0xa27720c>)
     23     def __call__(self):
     24         try:
     25             return self.callable(*self.args, **self.kwargs)
     26         except TypeError, x:
     27             test_callable_spec(self.callable, self.args, self.kwargs)
  self = <cherrypy._cpdispatch.LateParamPageHandler object at 0xa27720c>, self.callable = <bound method Root.default of <openobject.controllers._root.Root object at 0x985e2cc>>, self.args = ('openerp', 'openo2m', 'edit'), self.kwargs = {'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...}
   /home/tempo/openerp-web-6.0.1/openobject/tools/_expose.py in func_wrapper(*args=(<openobject.controllers._root.Root object at 0x985e2cc>, 'openerp', 'openo2m', 'edit'), **kw={'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...})
    180                 raise cherrypy.HTTPError(405)
    181 
    182             res = func(*args, **kw)
    183             if format == 'json' or (allow_json and 'allow_json' in cherrypy.request.params):
    184                 cherrypy.response.headers['Content-Type'] = 'text/javascript'
  global res = '/home/tempo/openerp-web-6.0.1/openobject/widgets/templates/jssource.mako', func = <function default at 0x9898dbc>, args = (<openobject.controllers._root.Root object at 0x985e2cc>, 'openerp', 'openo2m', 'edit'), kw = {'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...}
   /home/tempo/openerp-web-6.0.1/openobject/controllers/_root.py in default(self=<openobject.controllers._root.Root object at 0x985e2cc>, *args=('openerp', 'openo2m', 'edit'), **kw={'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...})
     85             request.handler = cherrypy.NotFound()
     86 
     87         return request.handler()
     88 
     89     def find_handler(self):
  request = <cherrypy._ThreadLocalProxy object at 0xb751ae0c>, request.handler = <cherrypy._cpdispatch.LateParamPageHandler object at 0xa277bac>
   /home/tempo/openerp-web-6.0.1/lib/cherrypy/_cpdispatch.py in __call__(self=<cherrypy._cpdispatch.LateParamPageHandler object at 0xa277bac>)
     23     def __call__(self):
     24         try:
     25             return self.callable(*self.args, **self.kwargs)
     26         except TypeError, x:
     27             test_callable_spec(self.callable, self.args, self.kwargs)
  self = <cherrypy._cpdispatch.LateParamPageHandler object at 0xa277bac>, self.callable = <function edit at 0xa79925c>, self.args = (), self.kwargs = {'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...}
   /home/tempo/openerp-web-6.0.1/addons/openerp/controllers/utils.py in wrapper(*args=(), **kw={'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...})
    110             # User is logged in; allow access
    111             clear_login_fields(kw)
    112             return fn(*args, **kw)
    113         else:
    114             action = kw.get('login_action', '')
  fn = <bound method OpenO2M.edit of <openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>>, args = (), kw = {'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...}
   /home/tempo/openerp-web-6.0.1/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>,), **kw={'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...})
    180                 raise cherrypy.HTTPError(405)
    181 
    182             res = func(*args, **kw)
    183             if format == 'json' or (allow_json and 'allow_json' in cherrypy.request.params):
    184                 cherrypy.response.headers['Content-Type'] = 'text/javascript'
  global res = '/home/tempo/openerp-web-6.0.1/openobject/widgets/templates/jssource.mako', func = <function edit at 0x9b58684>, args = (<openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>,), kw = {'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...}
   /home/tempo/openerp-web-6.0.1/addons/openerp/controllers/openo2m.py in edit(self=<openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>, **kw={'_terp_editable': '1', '_terp_o2m': 'version_id/items_id', '_terp_o2m_model': 'product.pricelist.item', '_terp_parent_id': '2', '_terp_parent_model': 'product.pricelist.version', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': "{'lang': u'en_US', 'tz': False, 'search_view': 5...t': 'web', 'active_ids': [261], 'active_id': 261}", '_terp_view_params/_terp_id': '14', '_terp_view_params/_terp_ids': '[14, 1]', '_terp_view_params/_terp_model': 'sale.order', ...})
    146     def edit(self, **kw):
    147         params, data = TinyDict.split(kw)
    148         return self.create(params)
    149     
    150     @expose('json', methods=('POST',))
  self = <openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>, self.create = <function create at 0xa2724fc>, params = {'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []}
   /home/tempo/openerp-web-6.0.1/addons/openerp/controllers/utils.py in wrapper(*args=({'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []},), **kw={})
    110             # User is logged in; allow access
    111             clear_login_fields(kw)
    112             return fn(*args, **kw)
    113         else:
    114             action = kw.get('login_action', '')
  fn = <bound method OpenO2M.create of <openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>>, args = ({'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []},), kw = {}
   /home/tempo/openerp-web-6.0.1/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>, {'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []}), **kw={})
    180                 raise cherrypy.HTTPError(405)
    181 
    182             res = func(*args, **kw)
    183             if format == 'json' or (allow_json and 'allow_json' in cherrypy.request.params):
    184                 cherrypy.response.headers['Content-Type'] = 'text/javascript'
  global res = '/home/tempo/openerp-web-6.0.1/openobject/widgets/templates/jssource.mako', func = <function create at 0x9b584fc>, args = (<openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>, {'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []}), kw = {}
   /home/tempo/openerp-web-6.0.1/addons/openerp/controllers/openo2m.py in create(self=<openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>, params={'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []}, tg_errors=None)
     87             form = cherrypy.request.terp_form
     88         else:
     89             form = self.create_form(params, tg_errors)
     90 
     91         return dict(form=form, params=params)
  form undefined, self = <openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>, self.create_form = <bound method OpenO2M.create_form of <openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>>, params = {'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []}, tg_errors = None
   /home/tempo/openerp-web-6.0.1/addons/openerp/controllers/openo2m.py in create_form(self=<openerp.controllers.openo2m.OpenO2M object at 0xa277dcc>, params={'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []}, tg_errors=None)
     49         form = tw.form_view.ViewForm(vp, name="view_form", action="/openerp/openo2m/save")
     50         cherrypy.request.terp_validators = {}
     51         wid = form.screen.widget.get_widgets_by_name(params.o2m)[0]
     52 
     53         # save view_params for later phazes
  wid undefined, form = ViewForm, form.screen = Screen, form.screen.widget = Form, form.screen.widget.get_widgets_by_name = <bound method Form.get_widgets_by_name of Form>, params = {'_terp_view_type': 'form', '_terp_o2m': 'versio...: 'product.pricelist.item', '_terp_view_ids': []}, params.o2m = 'version_id/items_id'

  <type 'exceptions.IndexError'>: list index out of range
        args = ('list index out of range',)
        message = 'list index out of range'





Follow ups

References