← Back to team overview

c2c-oerpscenario team mailing list archive

[Bug 783870] [NEW] Problem with base_contact module (cherrypy error)

 

Public bug reported:

Hi, Ubu 10.4 Openerp v. 6.0.2
On a new installation I add only base_contact module, when I add new job under address of a partner, I see correctly the name of the contact but when I click on it I have the cherrypy error (no error on server logs), with GTK client works.
Note: the error is on a new DB yet created, I have unfortunately the same error on a DBs created on v. 6.0 that I have regularly update (both web-client and server), in 6.0 works fine...
Thanks

If this helps, this is the text of error:

<type 'exceptions.IndexError'>	Python 2.6.6: /usr/bin/python
Tue May 17 10:31:48 2011
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/administrator/Launchpad/openerp/web/lib/cherrypy/_cprequest.py in respond(self=<cherrypy._cprequest.Request object>, 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/administrator/Launchpad/openerp/web/lib/cherrypy/__init__.pyc'>, cherrypy.response = <cherrypy._ThreadLocalProxy object>, cherrypy.response.body = [], self = <cherrypy._cprequest.Request object>, self.handler = <cherrypy._cpdispatch.LateParamPageHandler object>
 /home/administrator/Launchpad/openerp/web/lib/cherrypy/_cpdispatch.py in __call__(self=<cherrypy._cpdispatch.LateParamPageHandler object>)
   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>, self.callable = <bound method Root.default of <openobject.controllers._root.Root object>>, self.args = ('openerp', 'openo2m', 'edit'), self.kwargs = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
 /home/administrator/Launchpad/openerp/web/openobject/tools/_expose.py in func_wrapper(*args=(<openobject.controllers._root.Root object>, 'openerp', 'openo2m', 'edit'), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
  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/administrator/Launchpad/openerp/web/openobject/controllers/templates/base.mako', func = <function default>, args = (<openobject.controllers._root.Root object>, 'openerp', 'openo2m', 'edit'), kw = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
 /home/administrator/Launchpad/openerp/web/openobject/controllers/_root.py in default(self=<openobject.controllers._root.Root object>, *args=('openerp', 'openo2m', 'edit'), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
   85             request.handler = cherrypy.NotFound()
   86
   87         return request.handler()
   88
   89     def find_handler(self):
request = <cherrypy._ThreadLocalProxy object>, request.handler = <cherrypy._cpdispatch.LateParamPageHandler object>
 /home/administrator/Launchpad/openerp/web/lib/cherrypy/_cpdispatch.py in __call__(self=<cherrypy._cpdispatch.LateParamPageHandler object>)
   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>, self.callable = <function edit>, self.args = (), self.kwargs = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
 /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/utils.py in wrapper(*args=(), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
  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>>, args = (), kw = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
 /home/administrator/Launchpad/openerp/web/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.openo2m.OpenO2M object>,), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
  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/administrator/Launchpad/openerp/web/openobject/controllers/templates/base.mako', func = <function edit>, args = (<openerp.controllers.openo2m.OpenO2M object>,), kw = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
 /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/openo2m.py in edit(self=<openerp.controllers.openo2m.OpenO2M object>, **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
  150     def edit(self, **kw):
  151         params, data = TinyDict.split(kw)
  152         return self.create(params)
  153
  154     @expose('json', methods=('POST',))
self = <openerp.controllers.openo2m.OpenO2M object>, self.create = <function create>, params = {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}
 /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/utils.py in wrapper(*args=({'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_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>>, args = ({'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []},), kw = {}
 /home/administrator/Launchpad/openerp/web/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.openo2m.OpenO2M object>, {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_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/administrator/Launchpad/openerp/web/openobject/controllers/templates/base.mako', func = <function create>, args = (<openerp.controllers.openo2m.OpenO2M object>, {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}), kw = {}
 /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/openo2m.py in create(self=<openerp.controllers.openo2m.OpenO2M object>, params={'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, tg_errors=None)
   91             form = cherrypy.request.terp_form
   92         else:
   93             form = self.create_form(params, tg_errors)
   94
   95         return dict(form=form, params=params)
form undefined, self = <openerp.controllers.openo2m.OpenO2M object>, self.create_form = <bound method OpenO2M.create_form of <openerp.controllers.openo2m.OpenO2M object>>, params = {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, tg_errors = None
 /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/openo2m.py in create_form(self=<openerp.controllers.openo2m.OpenO2M object>, params={'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, tg_errors=None)
   53             params.o2m = '.'.join(params.o2m.split('/')[-1:])
   54
   55         wid = form.screen.widget.get_widgets_by_name(params.o2m)[0]
   56
   57         # 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': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, params.o2m = 'job_ids'

<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

** Description changed:

- Hi, Ubu 10.4 Openerp v. 6.0.1
+ Hi, Ubu 10.4 Openerp v. 6.0.2
  On a new installation I add only base_contact module, when I add new job under address of a partner, I see correctly the name of the contact but whet I click on it I have the cherrypy error (no error on server logs), with GTK client works.
  Note: the error is on a new DB yet created, I have unfortunately the same error on a DBs created on v. 6.0 that I have regularly update (both web-client and server), in 6.0 works fine...
  Thanks
  
  If this helps, this is the text of error:
  
  <type 'exceptions.IndexError'>	Python 2.6.6: /usr/bin/python
  Tue May 17 10:31:48 2011
  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/administrator/Launchpad/openerp/web/lib/cherrypy/_cprequest.py in respond(self=<cherrypy._cprequest.Request object>, 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'
+  /home/administrator/Launchpad/openerp/web/lib/cherrypy/_cprequest.py in respond(self=<cherrypy._cprequest.Request object>, 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/administrator/Launchpad/openerp/web/lib/cherrypy/__init__.pyc'>, cherrypy.response = <cherrypy._ThreadLocalProxy object>, cherrypy.response.body = [], self = <cherrypy._cprequest.Request object>, self.handler = <cherrypy._cpdispatch.LateParamPageHandler object>
-  /home/administrator/Launchpad/openerp/web/lib/cherrypy/_cpdispatch.py in __call__(self=<cherrypy._cpdispatch.LateParamPageHandler object>)
-    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)
+  /home/administrator/Launchpad/openerp/web/lib/cherrypy/_cpdispatch.py in __call__(self=<cherrypy._cpdispatch.LateParamPageHandler object>)
+    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>, self.callable = <bound method Root.default of <openobject.controllers._root.Root object>>, self.args = ('openerp', 'openo2m', 'edit'), self.kwargs = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
-  /home/administrator/Launchpad/openerp/web/openobject/tools/_expose.py in func_wrapper(*args=(<openobject.controllers._root.Root object>, 'openerp', 'openo2m', 'edit'), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
-   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'
+  /home/administrator/Launchpad/openerp/web/openobject/tools/_expose.py in func_wrapper(*args=(<openobject.controllers._root.Root object>, 'openerp', 'openo2m', 'edit'), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
+   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/administrator/Launchpad/openerp/web/openobject/controllers/templates/base.mako', func = <function default>, args = (<openobject.controllers._root.Root object>, 'openerp', 'openo2m', 'edit'), kw = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
-  /home/administrator/Launchpad/openerp/web/openobject/controllers/_root.py in default(self=<openobject.controllers._root.Root object>, *args=('openerp', 'openo2m', 'edit'), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
-    85             request.handler = cherrypy.NotFound()
-    86 
-    87         return request.handler()
-    88 
-    89     def find_handler(self):
+  /home/administrator/Launchpad/openerp/web/openobject/controllers/_root.py in default(self=<openobject.controllers._root.Root object>, *args=('openerp', 'openo2m', 'edit'), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
+    85             request.handler = cherrypy.NotFound()
+    86
+    87         return request.handler()
+    88
+    89     def find_handler(self):
  request = <cherrypy._ThreadLocalProxy object>, request.handler = <cherrypy._cpdispatch.LateParamPageHandler object>
-  /home/administrator/Launchpad/openerp/web/lib/cherrypy/_cpdispatch.py in __call__(self=<cherrypy._cpdispatch.LateParamPageHandler object>)
-    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)
+  /home/administrator/Launchpad/openerp/web/lib/cherrypy/_cpdispatch.py in __call__(self=<cherrypy._cpdispatch.LateParamPageHandler object>)
+    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>, self.callable = <function edit>, self.args = (), self.kwargs = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
-  /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/utils.py in wrapper(*args=(), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
-   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', '')
+  /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/utils.py in wrapper(*args=(), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
+   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>>, args = (), kw = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
-  /home/administrator/Launchpad/openerp/web/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.openo2m.OpenO2M object>,), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
-   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'
+  /home/administrator/Launchpad/openerp/web/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.openo2m.OpenO2M object>,), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
+   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/administrator/Launchpad/openerp/web/openobject/controllers/templates/base.mako', func = <function edit>, args = (<openerp.controllers.openo2m.OpenO2M object>,), kw = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
-  /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/openo2m.py in edit(self=<openerp.controllers.openo2m.OpenO2M object>, **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
-   150     def edit(self, **kw):
-   151         params, data = TinyDict.split(kw)
-   152         return self.create(params)
-   153     
-   154     @expose('json', methods=('POST',))
+  /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/openo2m.py in edit(self=<openerp.controllers.openo2m.OpenO2M object>, **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
+   150     def edit(self, **kw):
+   151         params, data = TinyDict.split(kw)
+   152         return self.create(params)
+   153
+   154     @expose('json', methods=('POST',))
  self = <openerp.controllers.openo2m.OpenO2M object>, self.create = <function create>, params = {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}
-  /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/utils.py in wrapper(*args=({'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_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', '')
+  /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/utils.py in wrapper(*args=({'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_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>>, args = ({'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []},), kw = {}
-  /home/administrator/Launchpad/openerp/web/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.openo2m.OpenO2M object>, {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_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'
+  /home/administrator/Launchpad/openerp/web/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.openo2m.OpenO2M object>, {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_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/administrator/Launchpad/openerp/web/openobject/controllers/templates/base.mako', func = <function create>, args = (<openerp.controllers.openo2m.OpenO2M object>, {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}), kw = {}
-  /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/openo2m.py in create(self=<openerp.controllers.openo2m.OpenO2M object>, params={'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, tg_errors=None)
-    91             form = cherrypy.request.terp_form
-    92         else:
-    93             form = self.create_form(params, tg_errors)
-    94 
-    95         return dict(form=form, params=params)
+  /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/openo2m.py in create(self=<openerp.controllers.openo2m.OpenO2M object>, params={'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, tg_errors=None)
+    91             form = cherrypy.request.terp_form
+    92         else:
+    93             form = self.create_form(params, tg_errors)
+    94
+    95         return dict(form=form, params=params)
  form undefined, self = <openerp.controllers.openo2m.OpenO2M object>, self.create_form = <bound method OpenO2M.create_form of <openerp.controllers.openo2m.OpenO2M object>>, params = {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, tg_errors = None
-  /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/openo2m.py in create_form(self=<openerp.controllers.openo2m.OpenO2M object>, params={'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, tg_errors=None)
-    53             params.o2m = '.'.join(params.o2m.split('/')[-1:])
-    54 
-    55         wid = form.screen.widget.get_widgets_by_name(params.o2m)[0]
-    56 
-    57         # save view_params for later phazes
+  /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/openo2m.py in create_form(self=<openerp.controllers.openo2m.OpenO2M object>, params={'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, tg_errors=None)
+    53             params.o2m = '.'.join(params.o2m.split('/')[-1:])
+    54
+    55         wid = form.screen.widget.get_widgets_by_name(params.o2m)[0]
+    56
+    57         # 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': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, params.o2m = 'job_ids'
  
  <type 'exceptions.IndexError'>: list index out of range
-       args = ('list index out of range',)
-       message = 'list index out of range'
+       args = ('list index out of range',)
+       message = 'list index out of range'

** Description changed:

  Hi, Ubu 10.4 Openerp v. 6.0.2
- On a new installation I add only base_contact module, when I add new job under address of a partner, I see correctly the name of the contact but whet I click on it I have the cherrypy error (no error on server logs), with GTK client works.
+ On a new installation I add only base_contact module, when I add new job under address of a partner, I see correctly the name of the contact but when I click on it I have the cherrypy error (no error on server logs), with GTK client works.
  Note: the error is on a new DB yet created, I have unfortunately the same error on a DBs created on v. 6.0 that I have regularly update (both web-client and server), in 6.0 works fine...
  Thanks
  
  If this helps, this is the text of error:
  
  <type 'exceptions.IndexError'>	Python 2.6.6: /usr/bin/python
  Tue May 17 10:31:48 2011
  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/administrator/Launchpad/openerp/web/lib/cherrypy/_cprequest.py in respond(self=<cherrypy._cprequest.Request object>, 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/administrator/Launchpad/openerp/web/lib/cherrypy/__init__.pyc'>, cherrypy.response = <cherrypy._ThreadLocalProxy object>, cherrypy.response.body = [], self = <cherrypy._cprequest.Request object>, self.handler = <cherrypy._cpdispatch.LateParamPageHandler object>
   /home/administrator/Launchpad/openerp/web/lib/cherrypy/_cpdispatch.py in __call__(self=<cherrypy._cpdispatch.LateParamPageHandler object>)
     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>, self.callable = <bound method Root.default of <openobject.controllers._root.Root object>>, self.args = ('openerp', 'openo2m', 'edit'), self.kwargs = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
   /home/administrator/Launchpad/openerp/web/openobject/tools/_expose.py in func_wrapper(*args=(<openobject.controllers._root.Root object>, 'openerp', 'openo2m', 'edit'), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
    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/administrator/Launchpad/openerp/web/openobject/controllers/templates/base.mako', func = <function default>, args = (<openobject.controllers._root.Root object>, 'openerp', 'openo2m', 'edit'), kw = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
   /home/administrator/Launchpad/openerp/web/openobject/controllers/_root.py in default(self=<openobject.controllers._root.Root object>, *args=('openerp', 'openo2m', 'edit'), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
     85             request.handler = cherrypy.NotFound()
     86
     87         return request.handler()
     88
     89     def find_handler(self):
  request = <cherrypy._ThreadLocalProxy object>, request.handler = <cherrypy._cpdispatch.LateParamPageHandler object>
   /home/administrator/Launchpad/openerp/web/lib/cherrypy/_cpdispatch.py in __call__(self=<cherrypy._cpdispatch.LateParamPageHandler object>)
     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>, self.callable = <function edit>, self.args = (), self.kwargs = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
   /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/utils.py in wrapper(*args=(), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
    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>>, args = (), kw = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
   /home/administrator/Launchpad/openerp/web/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.openo2m.OpenO2M object>,), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
    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/administrator/Launchpad/openerp/web/openobject/controllers/templates/base.mako', func = <function edit>, args = (<openerp.controllers.openo2m.OpenO2M object>,), kw = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
   /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/openo2m.py in edit(self=<openerp.controllers.openo2m.OpenO2M object>, **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
    150     def edit(self, **kw):
    151         params, data = TinyDict.split(kw)
    152         return self.create(params)
    153
    154     @expose('json', methods=('POST',))
  self = <openerp.controllers.openo2m.OpenO2M object>, self.create = <function create>, params = {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}
   /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/utils.py in wrapper(*args=({'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_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>>, args = ({'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []},), kw = {}
   /home/administrator/Launchpad/openerp/web/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.openo2m.OpenO2M object>, {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_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/administrator/Launchpad/openerp/web/openobject/controllers/templates/base.mako', func = <function create>, args = (<openerp.controllers.openo2m.OpenO2M object>, {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}), kw = {}
   /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/openo2m.py in create(self=<openerp.controllers.openo2m.OpenO2M object>, params={'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, tg_errors=None)
     91             form = cherrypy.request.terp_form
     92         else:
     93             form = self.create_form(params, tg_errors)
     94
     95         return dict(form=form, params=params)
  form undefined, self = <openerp.controllers.openo2m.OpenO2M object>, self.create_form = <bound method OpenO2M.create_form of <openerp.controllers.openo2m.OpenO2M object>>, params = {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, tg_errors = None
   /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/openo2m.py in create_form(self=<openerp.controllers.openo2m.OpenO2M object>, params={'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, tg_errors=None)
     53             params.o2m = '.'.join(params.o2m.split('/')[-1:])
     54
     55         wid = form.screen.widget.get_widgets_by_name(params.o2m)[0]
     56
     57         # 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': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, params.o2m = 'job_ids'
  
  <type 'exceptions.IndexError'>: list index out of range
        args = ('list index out of range',)
        message = 'list index out of range'

-- 
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/783870

Title:
  Problem with base_contact module (cherrypy error)

Status in OpenERP Web Client:
  New

Bug description:
  Hi, Ubu 10.4 Openerp v. 6.0.2
  On a new installation I add only base_contact module, when I add new job under address of a partner, I see correctly the name of the contact but when I click on it I have the cherrypy error (no error on server logs), with GTK client works.
  Note: the error is on a new DB yet created, I have unfortunately the same error on a DBs created on v. 6.0 that I have regularly update (both web-client and server), in 6.0 works fine...
  Thanks

  If this helps, this is the text of error:

  <type 'exceptions.IndexError'>	Python 2.6.6: /usr/bin/python
  Tue May 17 10:31:48 2011
  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/administrator/Launchpad/openerp/web/lib/cherrypy/_cprequest.py in respond(self=<cherrypy._cprequest.Request object>, 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/administrator/Launchpad/openerp/web/lib/cherrypy/__init__.pyc'>, cherrypy.response = <cherrypy._ThreadLocalProxy object>, cherrypy.response.body = [], self = <cherrypy._cprequest.Request object>, self.handler = <cherrypy._cpdispatch.LateParamPageHandler object>
   /home/administrator/Launchpad/openerp/web/lib/cherrypy/_cpdispatch.py in __call__(self=<cherrypy._cpdispatch.LateParamPageHandler object>)
     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>, self.callable = <bound method Root.default of <openobject.controllers._root.Root object>>, self.args = ('openerp', 'openo2m', 'edit'), self.kwargs = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
   /home/administrator/Launchpad/openerp/web/openobject/tools/_expose.py in func_wrapper(*args=(<openobject.controllers._root.Root object>, 'openerp', 'openo2m', 'edit'), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
    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/administrator/Launchpad/openerp/web/openobject/controllers/templates/base.mako', func = <function default>, args = (<openobject.controllers._root.Root object>, 'openerp', 'openo2m', 'edit'), kw = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
   /home/administrator/Launchpad/openerp/web/openobject/controllers/_root.py in default(self=<openobject.controllers._root.Root object>, *args=('openerp', 'openo2m', 'edit'), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
     85             request.handler = cherrypy.NotFound()
     86
     87         return request.handler()
     88
     89     def find_handler(self):
  request = <cherrypy._ThreadLocalProxy object>, request.handler = <cherrypy._cpdispatch.LateParamPageHandler object>
   /home/administrator/Launchpad/openerp/web/lib/cherrypy/_cpdispatch.py in __call__(self=<cherrypy._cpdispatch.LateParamPageHandler object>)
     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>, self.callable = <function edit>, self.args = (), self.kwargs = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
   /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/utils.py in wrapper(*args=(), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
    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>>, args = (), kw = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
   /home/administrator/Launchpad/openerp/web/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.openo2m.OpenO2M object>,), **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
    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/administrator/Launchpad/openerp/web/openobject/controllers/templates/base.mako', func = <function edit>, args = (<openerp.controllers.openo2m.OpenO2M object>,), kw = {'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...}
   /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/openo2m.py in edit(self=<openerp.controllers.openo2m.OpenO2M object>, **kw={'_terp_editable': '0', '_terp_o2m': 'address/job_ids', '_terp_o2m_id': '2143', '_terp_o2m_model': 'res.partner.job', '_terp_parent_id': '5989', '_terp_parent_model': 'res.partner.address', '_terp_parent_view_id': 'False', '_terp_view_params/_terp_context': '{}', '_terp_view_params/_terp_id': '5989', '_terp_view_params/_terp_model': 'res.partner.address', ...})
    150     def edit(self, **kw):
    151         params, data = TinyDict.split(kw)
    152         return self.create(params)
    153
    154     @expose('json', methods=('POST',))
  self = <openerp.controllers.openo2m.OpenO2M object>, self.create = <function create>, params = {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}
   /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/utils.py in wrapper(*args=({'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_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>>, args = ({'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []},), kw = {}
   /home/administrator/Launchpad/openerp/web/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.openo2m.OpenO2M object>, {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_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/administrator/Launchpad/openerp/web/openobject/controllers/templates/base.mako', func = <function create>, args = (<openerp.controllers.openo2m.OpenO2M object>, {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}), kw = {}
   /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/openo2m.py in create(self=<openerp.controllers.openo2m.OpenO2M object>, params={'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, tg_errors=None)
     91             form = cherrypy.request.terp_form
     92         else:
     93             form = self.create_form(params, tg_errors)
     94
     95         return dict(form=form, params=params)
  form undefined, self = <openerp.controllers.openo2m.OpenO2M object>, self.create_form = <bound method OpenO2M.create_form of <openerp.controllers.openo2m.OpenO2M object>>, params = {'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, tg_errors = None
   /home/administrator/Launchpad/openerp/web/addons/openerp/controllers/openo2m.py in create_form(self=<openerp.controllers.openo2m.OpenO2M object>, params={'_terp_view_type': 'form', '_terp_o2m': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, tg_errors=None)
     53             params.o2m = '.'.join(params.o2m.split('/')[-1:])
     54
     55         wid = form.screen.widget.get_widgets_by_name(params.o2m)[0]
     56
     57         # 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': 'job_id..._model': 'res.partner.job', '_terp_view_ids': []}, params.o2m = 'job_ids'

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


Follow ups

References