** Summary changed: - Creating a new pricelist from a sale ordre crashes + [trunk] Creating a new pricelist from a sale ordre crashes
-- You received this bug notification because you are a member of OpenERP SA's Web Client R&D, which is a bug assignee. https://bugs.launchpad.net/bugs/717185 Title: [trunk] Creating a new pricelist from a sale ordre crashes Status in OpenERP Web Client: Confirmed 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' _______________________________________________ Mailing list: https://launchpad.net/~openerp-dev-web Post to : [email protected] Unsubscribe : https://launchpad.net/~openerp-dev-web More help : https://help.launchpad.net/ListHelp

