c2c-oerpscenario team mailing list archive
-
c2c-oerpscenario team
-
Mailing list archive
-
Message #16136
[Bug 717185] Re: Creating a new pricelist from a sale ordre crashes
Hello Maurice,
I have tested your bug scenario at my end.
Following steps to reproduced it.
1) Open new Saleorder form.
2) Create new Pricelist. [From m2o Pricelist field],
3) Add new Pricelist version. [m2o field of product pricelist form ]
4) Add Products List prices Items [error occurs when clicking two times with the new button]
So, I am confirming this bug.
Thanks.
** Changed in: openobject-client-web
Importance: Undecided => Low
** Changed in: openobject-client-web
Status: New => Confirmed
** Changed in: openobject-client-web
Assignee: (unassigned) => OpenERP SA's Web Client R&D (openerp-dev-web)
--
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:
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'
References