[6.0-trunk] selecting 'Year', 'Month' etc causes python crash

Bug #700240 reported by Peter Glock
22
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Odoo Web Client
Fix Released
Medium
OpenERP R&D Web Team

Bug Description

Using Firefox browser on Mac OSX. Using 'Sales Analysis', selecting 'Year', 'Month' etc gives the following python error:

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/CherryPy-3.1.2-py2.7.egg/cherrypy/_cprequest.py in respond(self=<cherrypy._cprequest.Request object>, path_info='/openerp/listgrid/get')
    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 '/opt/local/Library/Fram.../CherryPy-3.1.2-py2.7.egg/cherrypy/__init__.pyc'>, cherrypy.response = <cherrypy._ThreadLocalProxy object>, cherrypy.response.body = [], self = <cherrypy._cprequest.Request object>, self.handler = <cherrypy._cpdispatch.LateParamPageHandler object>
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/CherryPy-3.1.2-py2.7.egg/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', 'listgrid', 'get'), self.kwargs = {'_terp_context': "{'lang': u'en_GB', 'tz': u'Europe/London', 'acti...716, 4720, 4717, 4714, 4713], 'active_id': False}", '_terp_count': '1', '_terp_domain': '[]', '_terp_editable': 'True', '_terp_filter_domain': '[]', '_terp_filters_context': '', '_terp_group_by_ctx': '[]', '_terp_id': 'False', '_terp_ids': '[4757, 4755, 4761, 4763, 4765, 4758, 4764, 4759,..., 4719, 4715, 4718, 4716, 4720, 4717, 4714, 4713]', '_terp_limit': '-1', ...}
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/openerp_web-6.0.0_rc2-py2.7.egg/openobject/tools/_expose.py in func_wrapper(*args=(<openobject.controllers._root.Root object>, 'openerp', 'listgrid', 'get'), **kw={'_terp_context': "{'lang': u'en_GB', 'tz': u'Europe/London', 'acti...716, 4720, 4717, 4714, 4713], 'active_id': False}", '_terp_count': '1', '_terp_domain': '[]', '_terp_editable': 'True', '_terp_filter_domain': '[]', '_terp_filters_context': '', '_terp_group_by_ctx': '[]', '_terp_id': 'False', '_terp_ids': '[4757, 4755, 4761, 4763, 4765, 4758, 4764, 4759,..., 4719, 4715, 4718, 4716, 4720, 4717, 4714, 4713]', '_terp_limit': '-1', ...})
    189 raise cherrypy.HTTPError(405)
    190
=> 191 res = func(*args, **kw)
    192 if format == 'json' or (allow_json and 'allow_json' in cherrypy.request.params):
    193 cherrypy.response.headers['Content-Type'] = 'text/javascript'
global res = '/opt/local/Library/Frameworks/Python.framework/V....7.egg/openobject/widgets/templates/textarea.mako', func = <function default>, args = (<openobject.controllers._root.Root object>, 'openerp', 'listgrid', 'get'), kw = {'_terp_context': "{'lang': u'en_GB', 'tz': u'Europe/London', 'acti...716, 4720, 4717, 4714, 4713], 'active_id': False}", '_terp_count': '1', '_terp_domain': '[]', '_terp_editable': 'True', '_terp_filter_domain': '[]', '_terp_filters_context': '', '_terp_group_by_ctx': '[]', '_terp_id': 'False', '_terp_ids': '[4757, 4755, 4761, 4763, 4765, 4758, 4764, 4759,..., 4719, 4715, 4718, 4716, 4720, 4717, 4714, 4713]', '_terp_limit': '-1', ...}
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/openerp_web-6.0.0_rc2-py2.7.egg/openobject/controllers/_root.py in default(self=<openobject.controllers._root.Root object>, *args=('openerp', 'listgrid', 'get'), **kw={'_terp_context': "{'lang': u'en_GB', 'tz': u'Europe/London', 'acti...716, 4720, 4717, 4714, 4713], 'active_id': False}", '_terp_count': '1', '_terp_domain': '[]', '_terp_editable': 'True', '_terp_filter_domain': '[]', '_terp_filters_context': '', '_terp_group_by_ctx': '[]', '_terp_id': 'False', '_terp_ids': '[4757, 4755, 4761, 4763, 4765, 4758, 4764, 4759,..., 4719, 4715, 4718, 4716, 4720, 4717, 4714, 4713]', '_terp_limit': '-1', ...})
     86 request.handler = cherrypy.NotFound()
     87
=> 88 return request.handler()
     89
     90 def find_handler(self):
request = <cherrypy._ThreadLocalProxy object>, request.handler = <cherrypy._cpdispatch.LateParamPageHandler object>
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/CherryPy-3.1.2-py2.7.egg/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 get>, self.args = (), self.kwargs = {'_terp_context': "{'lang': u'en_GB', 'tz': u'Europe/London', 'acti...716, 4720, 4717, 4714, 4713], 'active_id': False}", '_terp_count': '1', '_terp_domain': '[]', '_terp_editable': 'True', '_terp_filter_domain': '[]', '_terp_filters_context': '', '_terp_group_by_ctx': '[]', '_terp_id': 'False', '_terp_ids': '[4757, 4755, 4761, 4763, 4765, 4758, 4764, 4759,..., 4719, 4715, 4718, 4716, 4720, 4717, 4714, 4713]', '_terp_limit': '-1', ...}
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/openerp_web-6.0.0_rc2-py2.7.egg/addons/openerp/controllers/utils.py in wrapper(*args=(), **kw={'_terp_context': "{'lang': u'en_GB', 'tz': u'Europe/London', 'acti...716, 4720, 4717, 4714, 4713], 'active_id': False}", '_terp_count': '1', '_terp_domain': '[]', '_terp_editable': 'True', '_terp_filter_domain': '[]', '_terp_filters_context': '', '_terp_group_by_ctx': '[]', '_terp_id': 'False', '_terp_ids': '[4757, 4755, 4761, 4763, 4765, 4758, 4764, 4759,..., 4719, 4715, 4718, 4716, 4720, 4717, 4714, 4713]', '_terp_limit': '-1', ...})
    118 # User is logged in; allow access
    119 clear_login_fields(kw)
=> 120 return fn(*args, **kw)
    121 else:
    122 action = kw.get('login_action', '')
fn = <bound method List.get of <openerp.controllers.listgrid.List object>>, args = (), kw = {'_terp_context': "{'lang': u'en_GB', 'tz': u'Europe/London', 'acti...716, 4720, 4717, 4714, 4713], 'active_id': False}", '_terp_count': '1', '_terp_domain': '[]', '_terp_editable': 'True', '_terp_filter_domain': '[]', '_terp_filters_context': '', '_terp_group_by_ctx': '[]', '_terp_id': 'False', '_terp_ids': '[4757, 4755, 4761, 4763, 4765, 4758, 4764, 4759,..., 4719, 4715, 4718, 4716, 4720, 4717, 4714, 4713]', '_terp_limit': '-1', ...}
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/openerp_web-6.0.0_rc2-py2.7.egg/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.listgrid.List object>,), **kw={'_terp_context': "{'lang': u'en_GB', 'tz': u'Europe/London', 'acti...716, 4720, 4717, 4714, 4713], 'active_id': False}", '_terp_count': '1', '_terp_domain': '[]', '_terp_editable': 'True', '_terp_filter_domain': '[]', '_terp_filters_context': '', '_terp_group_by_ctx': '[]', '_terp_id': 'False', '_terp_ids': '[4757, 4755, 4761, 4763, 4765, 4758, 4764, 4759,..., 4719, 4715, 4718, 4716, 4720, 4717, 4714, 4713]', '_terp_limit': '-1', ...})
    189 raise cherrypy.HTTPError(405)
    190
=> 191 res = func(*args, **kw)
    192 if format == 'json' or (allow_json and 'allow_json' in cherrypy.request.params):
    193 cherrypy.response.headers['Content-Type'] = 'text/javascript'
global res = '/opt/local/Library/Frameworks/Python.framework/V....7.egg/openobject/widgets/templates/textarea.mako', func = <function get>, args = (<openerp.controllers.listgrid.List object>,), kw = {'_terp_context': "{'lang': u'en_GB', 'tz': u'Europe/London', 'acti...716, 4720, 4717, 4714, 4713], 'active_id': False}", '_terp_count': '1', '_terp_domain': '[]', '_terp_editable': 'True', '_terp_filter_domain': '[]', '_terp_filters_context': '', '_terp_group_by_ctx': '[]', '_terp_id': 'False', '_terp_ids': '[4757, 4755, 4761, 4763, 4765, 4758, 4764, 4759,..., 4719, 4715, 4718, 4716, 4720, 4717, 4714, 4713]', '_terp_limit': '-1', ...}
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/openerp_web-6.0.0_rc2-py2.7.egg/addons/openerp/controllers/listgrid.py in get(self=<openerp.controllers.listgrid.List object>, **kw={'_terp_context': "{'lang': u'en_GB', 'tz': u'Europe/London', 'acti...716, 4720, 4717, 4714, 4713], 'active_id': False}", '_terp_count': '1', '_terp_domain': '[]', '_terp_editable': 'True', '_terp_filter_domain': '[]', '_terp_filters_context': '', '_terp_group_by_ctx': '[]', '_terp_id': 'False', '_terp_ids': '[4757, 4755, 4761, 4763, 4765, 4758, 4764, 4759,..., 4719, 4715, 4718, 4716, 4720, 4717, 4714, 4713]', '_terp_limit': '-1', ...})
    288 frm = res['form']
    289 else:
=> 290 frm = form.Form().create_form(params)
    291
    292 if params.view_type == 'graph':
frm undefined, global form = <module 'openerp.controllers.form' from '/opt/lo...2-py2.7.egg/addons/openerp/controllers/form.pyc'>, form.Form = <class 'openerp.controllers.form.Form'>, ).create_form = <unbound method Form.create_form>, params = {'_terp_offset': 0, '_terp_filters_context': '',...source': '_terp_list', '_terp_filter_domain': []}
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/openerp_web-6.0.0_rc2-py2.7.egg/addons/openerp/controllers/form.py in create_form(self=<openerp.controllers.form.Form object>, params={'_terp_offset': 0, '_terp_filters_context': '',...source': '_terp_list', '_terp_filter_domain': []}, tg_errors=None)
    193 params.view_type = params.view_type or params.view_mode[0]
    194
=> 195 return tw.form_view.ViewForm(params, name="view_form", action="/openerp/form/save")
    196
    197 @expose(template="/openerp/controllers/templates/form.mako")
global tw = <module 'openerp.widgets' from '/opt/local/Libra...2-py2.7.egg/addons/openerp/widgets/__init__.pyc'>, tw.form_view = <module 'openerp.widgets.form_view' from '/opt/l...-py2.7.egg/addons/openerp/widgets/form_view.pyc'>, tw.form_view.ViewForm = <class 'openerp.widgets.form_view.ViewForm'>, params = {'_terp_offset': 0, '_terp_filters_context': '',...source': '_terp_list', '_terp_filter_domain': []}, name undefined, action undefined
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/openerp_web-6.0.0_rc2-py2.7.egg/addons/openerp/widgets/form_view.py in __init__(self=ViewForm, params={'_terp_offset': 0, '_terp_filters_context': '',...source': '_terp_list', '_terp_filter_domain': []}, **kw={'action': '/openerp/form/save', 'name': 'view_form'})
     96
     97 self.screen = Screen(prefix='', hastoolbar=True, hassubmenu=True, editable=editable, readonly=readonly,
=> 98 selectable=params.selectable or 2)
     99
    100 if self.screen.widget and self.screen.view_type in ['form', 'tree']:
selectable undefined, params = {'_terp_offset': 0, '_terp_filters_context': '',...source': '_terp_list', '_terp_filter_domain': []}, params.selectable = None
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/openerp_web-6.0.0_rc2-py2.7.egg/addons/openerp/widgets/screen.py in __init__(self=Screen, params={'_terp_offset': 0, '_terp_filters_context': '',...source': '_terp_list', '_terp_filter_domain': []}, prefix='', name='', views_preloaded={}, hastoolbar=True, hassubmenu=True, editable=True, readonly=False, selectable=2, nolinks=1, **kw={})
    109 self.kalendar = params.kalendar
    110 if self.view_mode:
=> 111 self.add_view_id(self.view_id, self.view_type)
    112
    113 def add_view_id(self, view_id, view_type):
self = Screen, self.add_view_id = <bound method Screen.add_view_id of Screen>, self.view_id = 623, self.view_type = 'tree'
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/openerp_web-6.0.0_rc2-py2.7.egg/addons/openerp/widgets/screen.py in add_view_id(self=Screen, view_id=623, view_type='tree')
    123 view = cache.fields_view_get(self.model, view_id, view_type, ctx, self.hastoolbar, self.hassubmenu)
    124
=> 125 self.add_view(view, view_type)
    126
    127 def add_view(self, view, view_type='form'):
self = Screen, self.add_view = <bound method Screen.add_view of Screen>, view = {'arch': u'<tree string="Sales Analysis">\n <...c_account_id" invisible="1"/>\n </tree>', 'field_parent': False, 'fields': {'analytic_account_id': {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'analytic_account_id', 'readonly': True, 'relation': u'account.analytic.account', 'selectable': True, 'string': u'Analytic Account', 'type': u'many2one', 'views': {}}, 'categ_id': {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'categ_id', 'readonly': True, 'relation': u'product.category', 'selectable': True, 'string': u'Category of Product', 'type': u'many2one', 'views': {}}, 'company_id': {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'company_id', 'readonly': True, 'relation': u'res.company', 'selectable': True, 'string': u'Company', 'type': u'many2one', 'views': {}}, 'date': {'invisible': u'1', 'name': u'date', 'readonly': True, 'selectable': True, 'string': u'Date Order', 'type': u'date', 'views': {}}, 'day': {'invisible': u'1', 'name': u'day', 'readonly': True, 'selectable': True, 'size': 128, 'string': u'Day', 'type': u'char', 'views': {}}, 'delay': {'digits': (16, 2), 'name': u'delay', 'readonly': True, 'selectable': True, 'string': u'Commitment Delay', 'sum': u'Commitment Delay', 'type': u'float', 'views': {}}, 'month': {'invisible': u'1', 'name': u'month', 'readonly': True, 'selectable': True, 'selection': [(u'01', u'January'), (u'02', u'February'), (u'03', u'March'), (u'04', u'April'), (u'05', u'May'), (u'06', u'June'), (u'07', u'July'), (u'08', u'August'), (u'09', u'September'), (u'10', u'October'), (u'11', u'November'), (u'12', u'December')], 'string': u'Month', 'type': u'selection', 'views': {}}, 'nbr': {'name': u'nbr', 'readonly': True, 'selectable': True, 'string': u'# of Lines', 'sum': u'# of Lines', 'type': u'integer', 'views': {}}, 'partner_id': {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'partner_id', 'readonly': True, 'relation': u'res.partner', 'selectable': True, 'string': u'Partner', 'type': u'many2one', 'views': {}}, 'price_total': {'name': u'price_total', 'readonly': True, 'selectable': True, 'string': u'Total Price', 'sum': u'Total Price', 'type': u'float', 'views': {}}, ...}, 'model': u'sale.report', 'name': u'sale.report.tree', 'toolbar': {'action': [], 'print': [], 'relate': []}, 'type': u'tree', 'view_id': 623}, view_type = 'tree'
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/openerp_web-6.0.0_rc2-py2.7.egg/addons/openerp/widgets/screen.py in add_view(self=Screen, view={'arch': u'<tree string="Sales Analysis">\n <...c_account_id" invisible="1"/>\n </tree>', 'field_parent': False, 'fields': {'analytic_account_id': {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'analytic_account_id', 'readonly': True, 'relation': u'account.analytic.account', 'selectable': True, 'string': u'Analytic Account', 'type': u'many2one', 'views': {}}, 'categ_id': {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'categ_id', 'readonly': True, 'relation': u'product.category', 'selectable': True, 'string': u'Category of Product', 'type': u'many2one', 'views': {}}, 'company_id': {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'company_id', 'readonly': True, 'relation': u'res.company', 'selectable': True, 'string': u'Company', 'type': u'many2one', 'views': {}}, 'date': {'invisible': u'1', 'name': u'date', 'readonly': True, 'selectable': True, 'string': u'Date Order', 'type': u'date', 'views': {}}, 'day': {'invisible': u'1', 'name': u'day', 'readonly': True, 'selectable': True, 'size': 128, 'string': u'Day', 'type': u'char', 'views': {}}, 'delay': {'digits': (16, 2), 'name': u'delay', 'readonly': True, 'selectable': True, 'string': u'Commitment Delay', 'sum': u'Commitment Delay', 'type': u'float', 'views': {}}, 'month': {'invisible': u'1', 'name': u'month', 'readonly': True, 'selectable': True, 'selection': [(u'01', u'January'), (u'02', u'February'), (u'03', u'March'), (u'04', u'April'), (u'05', u'May'), (u'06', u'June'), (u'07', u'July'), (u'08', u'August'), (u'09', u'September'), (u'10', u'October'), (u'11', u'November'), (u'12', u'December')], 'string': u'Month', 'type': u'selection', 'views': {}}, 'nbr': {'name': u'nbr', 'readonly': True, 'selectable': True, 'string': u'# of Lines', 'sum': u'# of Lines', 'type': u'integer', 'views': {}}, 'partner_id': {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'partner_id', 'readonly': True, 'relation': u'res.partner', 'selectable': True, 'string': u'Partner', 'type': u'many2one', 'views': {}}, 'price_total': {'name': u'price_total', 'readonly': True, 'selectable': True, 'string': u'Total Price', 'sum': u'Total Price', 'type': u'float', 'views': {}}, ...}, 'model': u'sale.report', 'name': u'sale.report.tree', 'toolbar': {'action': [], 'print': [], 'relate': []}, 'type': u'tree', 'view_id': 623}, view_type='tree')
    131
    132 from _views import get_view_widget
=> 133 self.widget = get_view_widget(view_type, self)
    134
    135 self.string = (self.widget or '') and self.widget.string
self = Screen, self.widget = None, get_view_widget = <function get_view_widget>, view_type = 'tree'
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/openerp_web-6.0.0_rc2-py2.7.egg/addons/openerp/widgets/_views.py in get_view_widget(kind='tree', screen=Screen)
    135 raise Exception("view '%s' not supported." % kind)
    136
=> 137 return view(screen)
    138
    139 def get_registered_views():
view = <openerp.widgets._views.ListView object>, screen = Screen
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/openerp_web-6.0.0_rc2-py2.7.egg/addons/openerp/widgets/_views.py in __call__(self=<openerp.widgets._views.ListView object>, screen=Screen)
    102 offset=screen.offset, limit=screen.limit,
    103 count=screen.count, nolinks=screen.link,
=> 104 group_by_ctx=screen.group_by_ctx)
    105 else:
    106 widget = listgrid.List(screen.name or '_terp_list',
group_by_ctx undefined, screen = Screen, screen.group_by_ctx = []
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/openerp_web-6.0.0_rc2-py2.7.egg/addons/openerp/widgets/listgroup.py in __init__(self=ListGroup, name='_terp_list', model='sale.report', view={'arch': u'<tree string="Sales Analysis">\n <...c_account_id" invisible="1"/>\n </tree>', 'field_parent': False, 'fields': {'analytic_account_id': {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'analytic_account_id', 'readonly': True, 'relation': u'account.analytic.account', 'selectable': True, 'string': u'Analytic Account', 'type': u'many2one', 'views': {}}, 'categ_id': {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'categ_id', 'readonly': True, 'relation': u'product.category', 'selectable': True, 'string': u'Category of Product', 'type': u'many2one', 'views': {}}, 'company_id': {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'company_id', 'readonly': True, 'relation': u'res.company', 'selectable': True, 'string': u'Company', 'type': u'many2one', 'views': {}}, 'date': {'invisible': u'1', 'name': u'date', 'readonly': True, 'selectable': True, 'string': u'Date Order', 'type': u'date', 'views': {}}, 'day': {'invisible': u'1', 'name': u'day', 'readonly': True, 'selectable': True, 'size': 128, 'string': u'Day', 'type': u'char', 'views': {}}, 'delay': {'digits': (16, 2), 'name': u'delay', 'readonly': True, 'selectable': True, 'string': u'Commitment Delay', 'sum': u'Commitment Delay', 'type': u'float', 'views': {}}, 'month': {'invisible': u'1', 'name': u'month', 'readonly': True, 'selectable': True, 'selection': [(u'01', u'January'), (u'02', u'February'), (u'03', u'March'), (u'04', u'April'), (u'05', u'May'), (u'06', u'June'), (u'07', u'July'), (u'08', u'August'), (u'09', u'September'), (u'10', u'October'), (u'11', u'November'), (u'12', u'December')], 'string': u'Month', 'type': u'selection', 'views': {}}, 'nbr': {'name': u'nbr', 'readonly': True, 'selectable': True, 'string': u'# of Lines', 'sum': u'# of Lines', 'type': u'integer', 'views': {}}, 'partner_id': {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'partner_id', 'readonly': True, 'relation': u'res.partner', 'selectable': True, 'string': u'Partner', 'type': u'many2one', 'views': {}}, 'price_total': {'name': u'price_total', 'readonly': True, 'selectable': True, 'string': u'Total Price', 'sum': u'Total Price', 'type': u'float', 'views': {}}, ...}, 'model': u'sale.report', 'name': u'sale.report.tree', 'toolbar': {'action': [], 'print': [], 'relate': []}, 'type': u'tree', 'view_id': 623}, ids=None, domain=[('date', '<=', False), ('date', '>=', False), ('date', '<=', False), ('date', '>=', False)], context={'active_id': False, 'active_ids': [4757, 4755, 4761, 4763, 4765, 4758, 4764, 4759, 4762, 4756, 4766, 4760, 4747, 4753, 4746, 4750, 4749, 4752, 4751, 4754, ...], 'active_model': False, 'client': 'web', 'group_by_no_leaf': 1, 'lang': u'en_GB', 'search_view': 625, 'tz': u'Europe/London'}, **kw={'count': 1, 'editable': True, 'group_by_ctx': [], 'limit': -1, 'nolinks': 1, 'offset': 0, 'selectable': 2, 'view_mode': ['tree', 'graph']})
    194 self.group_by_ctx = self.context.get('group_by')
    195
=> 196 self.group_by_ctx, self.hiddens, self.headers = parse(self.group_by_ctx, self.hiddens, self.headers, None, self.group_by_ctx)
    197
    198 self.grp_records = proxy.read_group(self.context.get('__domain', []) + (self.domain or []),
self = ListGroup, self.group_by_ctx = None, self.hiddens = [(u'date', {'invisible': u'1', 'name': u'date', 'readonly': True, 'selectable': True, 'string': u'Date Order', 'type': u'date', 'views': {}}), (u'user_id', {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'user_id', 'readonly': True, 'relation': u'res.users', 'selectable': True, 'string': u'Salesman', 'type': u'many2one', 'views': {}}), (u'year', {'invisible': u'1', 'name': u'year', 'readonly': True, 'selectable': True, 'size': 4, 'string': u'Year', 'type': u'char', 'views': {}}), (u'day', {'invisible': u'1', 'name': u'day', 'readonly': True, 'selectable': True, 'size': 128, 'string': u'Day', 'type': u'char', 'views': {}}), (u'month', {'invisible': u'1', 'name': u'month', 'readonly': True, 'selectable': True, 'selection': [(u'01', u'January'), (u'02', u'February'), (u'03', u'March'), (u'04', u'April'), (u'05', u'May'), (u'06', u'June'), (u'07', u'July'), (u'08', u'August'), (u'09', u'September'), (u'10', u'October'), (u'11', u'November'), (u'12', u'December')], 'string': u'Month', 'type': u'selection', 'views': {}}), (u'shop_id', {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'shop_id', 'readonly': True, 'relation': u'sale.shop', 'selectable': True, 'string': u'Shop', 'type': u'many2one', 'views': {}}), (u'company_id', {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'company_id', 'readonly': True, 'relation': u'res.company', 'selectable': True, 'string': u'Company', 'type': u'many2one', 'views': {}}), (u'partner_id', {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'partner_id', 'readonly': True, 'relation': u'res.partner', 'selectable': True, 'string': u'Partner', 'type': u'many2one', 'views': {}}), (u'product_id', {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'product_id', 'readonly': True, 'relation': u'product.product', 'selectable': True, 'string': u'Product', 'type': u'many2one', 'views': {}}), (u'categ_id', {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'categ_id', 'readonly': True, 'relation': u'product.category', 'selectable': True, 'string': u'Category of Product', 'type': u'many2one', 'views': {}}), (u'uom_name', {'invisible': u"not context.get('set_visible',False)", 'name': u'uom_name', 'readonly': True, 'selectable': True, 'size': 128, 'string': u'Reference UoM', 'type': u'char', 'views': {}}), (u'state', {'invisible': u'1', 'name': u'state', 'readonly': True, 'selectable': True, 'selection': [(u'draft', u'Quotation'), (u'waiting_date', u'Waiting Schedule'), (u'manual', u'Manual In Progress'), (u'progress', u'In Progress'), (u'shipping_except', u'Shipping Exception'), (u'invoice_except', u'Invoice Exception'), (u'done', u'Done'), (u'cancel', u'Cancelled')], 'string': u'Order State', 'type': u'selection', 'views': {}}), (u'analytic_account_id', {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'analytic_account_id', 'readonly': True, 'relation': u'account.analytic.account', 'selectable': True, 'string': u'Analytic Account', 'type': u'many2one', 'views': {}})], self.headers = [(u'nbr', {'name': u'nbr', 'readonly': True, 'selectable': True, 'string': u'# of Lines', 'sum': u'# of Lines', 'type': u'integer', 'views': {}}), (u'product_uom_qty', {'name': u'product_uom_qty', 'readonly': True, 'selectable': True, 'string': u'# of Qty', 'sum': u'# of Qty', 'type': u'float', 'views': {}}), (u'shipped_qty_1', {'name': u'shipped_qty_1', 'readonly': True, 'selectable': True, 'string': u'Shipped Qty', 'sum': u'Shipped Qty', 'type': u'integer', 'views': {}}), (u'price_total', {'name': u'price_total', 'readonly': True, 'selectable': True, 'string': u'Total Price', 'sum': u'Total Price', 'type': u'float', 'views': {}}), (u'delay', {'digits': (16, 2), 'name': u'delay', 'readonly': True, 'selectable': True, 'string': u'Commitment Delay', 'sum': u'Commitment Delay', 'type': u'float', 'views': {}})], global parse = <function parse>, builtin None = None
 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/openerp_web-6.0.0_rc2-py2.7.egg/addons/openerp/widgets/listgroup.py in parse(group_by=None, hiddens=[(u'date', {'invisible': u'1', 'name': u'date', 'readonly': True, 'selectable': True, 'string': u'Date Order', 'type': u'date', 'views': {}}), (u'user_id', {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'user_id', 'readonly': True, 'relation': u'res.users', 'selectable': True, 'string': u'Salesman', 'type': u'many2one', 'views': {}}), (u'year', {'invisible': u'1', 'name': u'year', 'readonly': True, 'selectable': True, 'size': 4, 'string': u'Year', 'type': u'char', 'views': {}}), (u'day', {'invisible': u'1', 'name': u'day', 'readonly': True, 'selectable': True, 'size': 128, 'string': u'Day', 'type': u'char', 'views': {}}), (u'month', {'invisible': u'1', 'name': u'month', 'readonly': True, 'selectable': True, 'selection': [(u'01', u'January'), (u'02', u'February'), (u'03', u'March'), (u'04', u'April'), (u'05', u'May'), (u'06', u'June'), (u'07', u'July'), (u'08', u'August'), (u'09', u'September'), (u'10', u'October'), (u'11', u'November'), (u'12', u'December')], 'string': u'Month', 'type': u'selection', 'views': {}}), (u'shop_id', {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'shop_id', 'readonly': True, 'relation': u'sale.shop', 'selectable': True, 'string': u'Shop', 'type': u'many2one', 'views': {}}), (u'company_id', {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'company_id', 'readonly': True, 'relation': u'res.company', 'selectable': True, 'string': u'Company', 'type': u'many2one', 'views': {}}), (u'partner_id', {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'partner_id', 'readonly': True, 'relation': u'res.partner', 'selectable': True, 'string': u'Partner', 'type': u'many2one', 'views': {}}), (u'product_id', {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'product_id', 'readonly': True, 'relation': u'product.product', 'selectable': True, 'string': u'Product', 'type': u'many2one', 'views': {}}), (u'categ_id', {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'categ_id', 'readonly': True, 'relation': u'product.category', 'selectable': True, 'string': u'Category of Product', 'type': u'many2one', 'views': {}}), (u'uom_name', {'invisible': u"not context.get('set_visible',False)", 'name': u'uom_name', 'readonly': True, 'selectable': True, 'size': 128, 'string': u'Reference UoM', 'type': u'char', 'views': {}}), (u'state', {'invisible': u'1', 'name': u'state', 'readonly': True, 'selectable': True, 'selection': [(u'draft', u'Quotation'), (u'waiting_date', u'Waiting Schedule'), (u'manual', u'Manual In Progress'), (u'progress', u'In Progress'), (u'shipping_except', u'Shipping Exception'), (u'invoice_except', u'Invoice Exception'), (u'done', u'Done'), (u'cancel', u'Cancelled')], 'string': u'Order State', 'type': u'selection', 'views': {}}), (u'analytic_account_id', {'context': {}, 'domain': [], 'invisible': u'1', 'name': u'analytic_account_id', 'readonly': True, 'relation': u'account.analytic.account', 'selectable': True, 'string': u'Analytic Account', 'type': u'many2one', 'views': {}})], headers=[(u'nbr', {'name': u'nbr', 'readonly': True, 'selectable': True, 'string': u'# of Lines', 'sum': u'# of Lines', 'type': u'integer', 'views': {}}), (u'product_uom_qty', {'name': u'product_uom_qty', 'readonly': True, 'selectable': True, 'string': u'# of Qty', 'sum': u'# of Qty', 'type': u'float', 'views': {}}), (u'shipped_qty_1', {'name': u'shipped_qty_1', 'readonly': True, 'selectable': True, 'string': u'Shipped Qty', 'sum': u'Shipped Qty', 'type': u'integer', 'views': {}}), (u'price_total', {'name': u'price_total', 'readonly': True, 'selectable': True, 'string': u'Total Price', 'sum': u'Total Price', 'type': u'float', 'views': {}}), (u'delay', {'digits': (16, 2), 'name': u'delay', 'readonly': True, 'selectable': True, 'string': u'Commitment Delay', 'sum': u'Commitment Delay', 'type': u'float', 'views': {}})], group_level=None, groups=None)
     45 group_by = group_by.split(',')
     46
=> 47 for grp in range(len(group_by)):
     48 if 'group_' in group_by[grp]:
     49 if group_by[grp].count('group_') > 1:
grp undefined, builtin range = <built-in function range>, builtin len = <built-in function len>, group_by = None

<type 'exceptions.TypeError'>: object of type 'NoneType' has no len()
      args = ("object of type 'NoneType' has no len()",)
      message = "object of type 'NoneType' has no len()"

Changed in openobject-client-web:
status: New → Triaged
Revision history for this message
Paulius Sladkevičius @ hbee (komsas) wrote :

Same problem on the Ubuntu 10.04.

Changed in openobject-client-web:
assignee: nobody → OpenERP SA's Web Client R&D (openerp-dev-web)
importance: Undecided → Medium
status: Triaged → Confirmed
Changed in openobject-client-web:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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