← Back to team overview

openerp-india team mailing list archive

[Bug 717561] Re: removing account_analytic_plans breaks "journal items" view

 

just for information, having come across this as well in 6.1, comment
#12 works fine (or use pgadmin3 since it, for us at least, was only one
single entry to delete).

-- 
You received this bug notification because you are a member of OpenERP
Indian Team, which is subscribed to OpenERP Addons.
https://bugs.launchpad.net/bugs/717561

Title:
  removing account_analytic_plans breaks "journal items" view

Status in OpenERP Addons (modules):
  Invalid

Bug description:
  Standard stable 6.0.1 package for server, addons and web server.

  When I remove the account_analytic_plans module, I can no longer access the menu Accounting/entries/Journal Items (and others).
  In GTK client, no message (which should deserve by itself a bug...), menu just dont open.
  In web client, I get the following message:

  <type 'exceptions.KeyError'>	Python 2.6.5: /usr/bin/python
  Sat Feb 12 12:26:59 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.
   /usr/local/lib/python2.6/dist-packages/CherryPy-3.1.2-py2.6.egg/cherrypy/_cprequest.py in respond(self=<cherrypy._cprequest.Request object>, path_info='/openerp/execute')
    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 '/usr/local/lib/python2..../CherryPy-3.1.2-py2.6.egg/cherrypy/__init__.pyc'>, cherrypy.response = <cherrypy._ThreadLocalProxy object>, cherrypy.response.body = [], self = <cherrypy._cprequest.Request object>, self.handler = <cherrypy._cpdispatch.LateParamPageHandler object>
   /usr/local/lib/python2.6/dist-packages/CherryPy-3.1.2-py2.6.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', 'execute'), self.kwargs = {'action': {'auto_refresh': 0, 'auto_search': True, 'context': u"{'search_default_posted': 1}", 'display_menu_tip': True, 'domain': '[]', 'filter': False, 'groups_id': [], 'help': u'This view can be used by accountants in order to...is account and the counterpart "Account Payable".', 'id': 177, 'limit': 80, ...}, 'data': {'context': {'client': 'web', 'department_id': False, 'lang': u'en_US', 'project_id': False, 'search_default_posted': 1, 'section_id': False, 'tz': False}, 'id': 191, 'ids': [191], 'model': 'ir.ui.menu', 'report_type': 'pdf'}, 'payload': 'eJxtU02PEzEM_StWL9mVqooKrRa47QGk5cIKygmtRmnG0wYy...hjdU5biPrBRsmzvN_vyyL6l1IdauFb7sJUGZGkNfj8S_ys3Bm'}
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/openobject/tools/_expose.py in func_wrapper(*args=(<openobject.controllers._root.Root object>, 'openerp', 'execute'), **kw={'_': '1297484856259', 'payload': 'eJxtU02PEzEM_StWL9mVqooKrRa47QGk5cIKygmtRmnG0wYy...hjdU5biPrBRsmzvN_vyyL6l1IdauFb7sJUGZGkNfj8S_ys3Bm'})
    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 = '/usr/local/lib/python2.6/dist-packages/openerp_w...dons/openerp/widgets/templates/search/search.mako', func = <function default>, args = (<openobject.controllers._root.Root object>, 'openerp', 'execute'), kw = {'_': '1297484856259', 'payload': 'eJxtU02PEzEM_StWL9mVqooKrRa47QGk5cIKygmtRmnG0wYy...hjdU5biPrBRsmzvN_vyyL6l1IdauFb7sJUGZGkNfj8S_ys3Bm'}
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/openobject/controllers/_root.py in default(self=<openobject.controllers._root.Root object>, *args=('openerp', 'execute'), **kw={'_': '1297484856259', 'payload': 'eJxtU02PEzEM_StWL9mVqooKrRa47QGk5cIKygmtRmnG0wYy...hjdU5biPrBRsmzvN_vyyL6l1IdauFb7sJUGZGkNfj8S_ys3Bm'})
     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>
   /usr/local/lib/python2.6/dist-packages/CherryPy-3.1.2-py2.6.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 index>, self.args = (), self.kwargs = {'action': {'auto_refresh': 0, 'auto_search': True, 'context': u"{'search_default_posted': 1}", 'display_menu_tip': True, 'domain': '[]', 'filter': False, 'groups_id': [], 'help': u'This view can be used by accountants in order to...is account and the counterpart "Account Payable".', 'id': 177, 'limit': 80, ...}, 'data': {'context': {'client': 'web', 'department_id': False, 'lang': u'en_US', 'project_id': False, 'search_default_posted': 1, 'section_id': False, 'tz': False}, 'id': 191, 'ids': [191], 'model': 'ir.ui.menu', 'report_type': 'pdf'}, 'payload': 'eJxtU02PEzEM_StWL9mVqooKrRa47QGk5cIKygmtRmnG0wYy...hjdU5biPrBRsmzvN_vyyL6l1IdauFb7sJUGZGkNfj8S_ys3Bm'}
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/addons/openerp/controllers/utils.py in wrapper(*args=(), **kw={'payload': 'eJxtU02PEzEM_StWL9mVqooKrRa47QGk5cIKygmtRmnG0wYy...hjdU5biPrBRsmzvN_vyyL6l1IdauFb7sJUGZGkNfj8S_ys3Bm'})
    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 Execute.index of <openerp.controllers.execute.Execute object>>, args = (), kw = {'payload': 'eJxtU02PEzEM_StWL9mVqooKrRa47QGk5cIKygmtRmnG0wYy...hjdU5biPrBRsmzvN_vyyL6l1IdauFb7sJUGZGkNfj8S_ys3Bm'}
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.execute.Execute object>,), **kw={'payload': 'eJxtU02PEzEM_StWL9mVqooKrRa47QGk5cIKygmtRmnG0wYy...hjdU5biPrBRsmzvN_vyyL6l1IdauFb7sJUGZGkNfj8S_ys3Bm'})
    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 = '/usr/local/lib/python2.6/dist-packages/openerp_w...dons/openerp/widgets/templates/search/search.mako', func = <function index>, args = (<openerp.controllers.execute.Execute object>,), kw = {'payload': 'eJxtU02PEzEM_StWL9mVqooKrRa47QGk5cIKygmtRmnG0wYy...hjdU5biPrBRsmzvN_vyyL6l1IdauFb7sJUGZGkNfj8S_ys3Bm'}
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/addons/openerp/controllers/execute.py in index(self=<openerp.controllers.execute.Execute object>, payload='eJxtU02PEzEM_StWL9mVqooKrRa47QGk5cIKygmtRmnG0wYy...hjdU5biPrBRsmzvN_vyyL6l1IdauFb7sJUGZGkNfj8S_ys3Bm')
     17             zlib.decompress(
     18                 base64.urlsafe_b64decode(payload)))
     19         action, data = decoded_payload['action'], decoded_payload['data']
     20         cherrypy.request.params.update(decoded_payload)
     21         return actions.execute(action, **data)
  global actions = <module 'openerp.controllers.actions' from '/usr...y2.6.egg/addons/openerp/controllers/actions.pyc'>, actions.execute = <function execute>, action = {'auto_refresh': 0, 'auto_search': True, 'context': u"{'search_default_posted': 1}", 'display_menu_tip': True, 'domain': '[]', 'filter': False, 'groups_id': [], 'help': u'This view can be used by accountants in order to...is account and the counterpart "Account Payable".', 'id': 177, 'limit': 80, ...}, data = {'context': {'client': 'web', 'department_id': False, 'lang': u'en_US', 'project_id': False, 'search_default_posted': 1, 'section_id': False, 'tz': False}, 'id': 191, 'ids': [191], 'model': 'ir.ui.menu', 'report_type': 'pdf'}
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/addons/openerp/controllers/actions.py in execute(action={'auto_refresh': 0, 'auto_search': True, 'context': u"{'search_default_posted': 1}", 'display_menu_tip': True, 'domain': '[]', 'filter': False, 'groups_id': [], 'help': u'This view can be used by accountants in order to...is account and the counterpart "Account Payable".', 'id': 177, 'limit': 80, ...}, **data={'context': {'client': 'web', 'department_id': False, 'lang': u'en_US', 'project_id': False, 'search_default_posted': 1, 'section_id': False, 'tz': False}, 'id': 191, 'ids': [191], 'limit': 20, 'model': 'ir.ui.menu', 'report_type': 'pdf', 'res_id': None, 'res_model': u'account.move.line', 'search_view': None, 'view_mode': u'tree,form', ...})
    380 
    381     action_executor = ACTIONS_BY_TYPE[action['type']]
    382     return action_executor(action, data)
    383 
    384 def execute_url(**data):
  action_executor = <function act_window>, action = {'auto_refresh': 0, 'auto_search': True, 'context': u"{'search_default_posted': 1}", 'display_menu_tip': True, 'domain': '[]', 'filter': False, 'groups_id': [], 'help': u'This view can be used by accountants in order to...is account and the counterpart "Account Payable".', 'id': 177, 'limit': 80, ...}, data = {'context': {'client': 'web', 'department_id': False, 'lang': u'en_US', 'project_id': False, 'search_default_posted': 1, 'section_id': False, 'tz': False}, 'id': 191, 'ids': [191], 'limit': 20, 'model': 'ir.ui.menu', 'report_type': 'pdf', 'res_id': None, 'res_model': u'account.move.line', 'search_view': None, 'view_mode': u'tree,form', ...}
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/addons/openerp/controllers/actions.py in act_window(action={'auto_refresh': 0, 'auto_search': True, 'context': u"{'search_default_posted': 1}", 'display_menu_tip': True, 'domain': '[]', 'filter': False, 'groups_id': [], 'help': u'This view can be used by accountants in order to...is account and the counterpart "Account Payable".', 'id': 177, 'limit': 80, ...}, data={'context': {'client': 'web', 'department_id': False, 'lang': u'en_US', 'project_id': False, 'search_default_posted': 1, 'section_id': False, 'tz': False}, 'id': 191, 'ids': [191], 'limit': 20, 'model': 'ir.ui.menu', 'report_type': 'pdf', 'res_id': None, 'res_model': u'account.move.line', 'search_view': None, 'view_mode': u'tree,form', ...})
    268                           search_view=data['search_view'],
    269                           context_menu=data.get('context_menu'),
    270                           display_menu_tip=display_menu_tip)
    271 
    272 def server(action, data):
  display_menu_tip = u'This view can be used by accountants in order to...is account and the counterpart "Account Payable".'
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/addons/openerp/controllers/actions.py in execute_window(view_ids=[False, False], model=u'account.move.line', res_id=None, domain=[], view_type=u'form', context={'_terp_view_name': u'Journal Items', 'active_id': 191, 'active_ids': [191], 'active_model': 'ir.ui.menu', 'client': 'web', 'department_id': False, 'journal_id': None, 'lang': u'en_US', 'normal_view': False, 'period_id': None, ...}, mode=[u'tree', u'form'], name=u'Journal Items', target=u'current', limit=20, search_view=None, context_menu=None, display_menu_tip=u'This view can be used by accountants in order to...is account and the counterpart "Account Payable".')
     83         params.view_mode=mode
     84 
     85         return Form().create(params)
     86 
     87     elif view_type == 'tree':
  global Form = <class 'openerp.controllers.form.Form'>, ).create = <unbound method Form.create>, params = {'_terp_view_type': u'tree', '_terp_offset': 0, ..._view_ids': [False, False], 'context_menu': None}
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/addons/openerp/controllers/utils.py in wrapper(*args=({'_terp_view_type': u'tree', '_terp_offset': 0, ..._view_ids': [False, False], 'context_menu': None},), **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 Form.create of <openerp.controllers.form.Form object>>, args = ({'_terp_view_type': u'tree', '_terp_offset': 0, ..._view_ids': [False, False], 'context_menu': None},), kw = {}
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.form.Form object>, {'_terp_view_type': u'tree', '_terp_offset': 0, ..._view_ids': [False, False], 'context_menu': None}), **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 = '/usr/local/lib/python2.6/dist-packages/openerp_w...dons/openerp/widgets/templates/search/search.mako', func = <function create>, args = (<openerp.controllers.form.Form object>, {'_terp_view_type': u'tree', '_terp_offset': 0, ..._view_ids': [False, False], 'context_menu': None}), kw = {}
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/addons/openerp/controllers/form.py in create(self=<openerp.controllers.form.Form object>, params={'_terp_view_type': u'tree', '_terp_offset': 0, ..._view_ids': [False, False], 'context_menu': None}, tg_errors=None)
    193         if params.view_type == 'tree':
    194             params.editable = True
    195         form = self.create_form(params, tg_errors)
    196 
    197         if not tg_errors:
  form undefined, self = <openerp.controllers.form.Form object>, self.create_form = <bound method Form.create_form of <openerp.controllers.form.Form object>>, params = {'_terp_view_type': u'tree', '_terp_offset': 0, ..._view_ids': [False, False], 'context_menu': None}, tg_errors = None
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/addons/openerp/controllers/form.py in create_form(self=<openerp.controllers.form.Form object>, params={'_terp_view_type': u'tree', '_terp_offset': 0, ..._view_ids': [False, False], 'context_menu': None}, tg_errors=None)
    184         params.view_type = params.view_type or params.view_mode[0]
    185 
    186         return tw.form_view.ViewForm(params, name="view_form", action="/openerp/form/save")
    187 
    188     @expose(template="/openerp/controllers/templates/form.mako")
  global tw = <module 'openerp.widgets' from '/usr/local/lib/p...1-py2.6.egg/addons/openerp/widgets/__init__.pyc'>, tw.form_view = <module 'openerp.widgets.form_view' from '/usr/l...-py2.6.egg/addons/openerp/widgets/form_view.pyc'>, tw.form_view.ViewForm = <class 'openerp.widgets.form_view.ViewForm'>, params = {'_terp_view_type': u'tree', '_terp_offset': 0, ..._view_ids': [False, False], 'context_menu': None}, name undefined, action undefined
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/addons/openerp/widgets/form_view.py in __init__(self=ViewForm, params={'_terp_view_type': u'tree', '_terp_offset': 0, ..._view_ids': [False, False], 'context_menu': None}, **kw={'action': '/openerp/form/save', 'name': 'view_form'})
     88             
     89         self.screen = Screen(prefix='', hastoolbar=True, hassubmenu=True, editable=editable, readonly=readonly,
     90                              selectable=params.selectable or 2)
     91         
     92         if self.screen.widget and self.screen.view_type in ['form', 'tree']:
  selectable undefined, params = {'_terp_view_type': u'tree', '_terp_offset': 0, ..._view_ids': [False, False], 'context_menu': None}, params.selectable = None
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/addons/openerp/widgets/screen.py in __init__(self=Screen, params={'_terp_view_type': u'tree', '_terp_offset': 0, ..._view_ids': [False, False], 'context_menu': None}, prefix='', name='', views_preloaded={}, hastoolbar=True, hassubmenu=True, editable=True, readonly=False, selectable=2, nolinks=1, **kw={})
    104         self.kalendar           = params.kalendar
    105         if self.view_mode:
    106             self.add_view_id(self.view_id, self.view_type)
    107 
    108     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 = 998, self.view_type = u'tree'
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/addons/openerp/widgets/screen.py in add_view_id(self=Screen, view_id=False, view_type=u'tree')
    120             view = cache.fields_view_get(self.model, view_id or False, view_type, ctx, self.hastoolbar, self.hassubmenu)
    121 
    122         self.add_view(view, view_type)
    123 
    124     def add_view(self, view, view_type='form'):
  self = Screen, self.add_view = <bound method Screen.add_view of Screen>, view = {'arch': u'<?xml version="1.0"?>\n<tree string="Accounting E..., 19, 17, 16, 18, 5, 6, 7, 4, 3, 1, 2]"/>\n</tree>', 'field_parent': False, 'fields': {'account_id': {'context': {}, 'domain': u"[('journal_id', '=', 2),('type','<>','view'), ('type','<>','closed')]", 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'account_id', 'on_change': u'onchange_account_id(account_id, partner_id)', 'relation': u'account.account', 'required': True, 'select': 2, 'selectable': True, 'string': u'Account', ...}, 'account_tax_id': {'context': {}, 'domain': [], 'relation': u'account.tax', 'selectable': True, 'string': u'Tax', 'type': u'many2one'}, 'analytic_account_id': {'context': {}, 'domain': [], 'relation': u'account.analytic.account', 'selectable': True, 'string': u'Analytic Account', 'type': u'many2one'}, 'credit': {'digits': (16, 2), 'selectable': True, 'string': u'Credit', 'type': u'float'}, 'date': {'digits': (16, 2), 'fnct_inv': u'_fnct_write', 'fnct_inv_arg': (u'move_id', u'date'), 'fnct_search': u'_fnct_search', 'func_method': True, 'func_obj': False, 'function': u'_fnct_read', 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'date', 'on_change': u'onchange_date(date)', ...}, 'date_maturity': {'help': u'This field is used for payable and receivable jo... put the limit date for the payment of this line.', 'invisible': u"context.get('visible_id') not in [19, 17, 16, 18, 4, 3, 1, 2]", 'name': u'date_maturity', 'select': True, 'selectable': True, 'string': u'Due date', 'type': u'date'}, 'debit': {'digits': (16, 2), 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'debit', 'selectable': True, 'string': u'Debit', 'sum': u'Total debit', 'type': u'float'}, 'journal_id': {'context': u"{'journal_id': journal_id}", 'domain': [], 'invisible': u"context.get('journal_id', False)", 'name': u'journal_id', 'relation': u'account.journal', 'required': True, 'select': 1, 'selectable': True, 'string': u'Journal', 'type': u'many2one'}, 'move_id': {'context': {}, 'domain': [], 'help': u'The move of this entry line.', 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'move_id', 'relation': u'account.move', 'required': u'False', 'select': 2, 'selectable': True, 'string': u'Move', ...}, 'name': {'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'name', 'required': True, 'selectable': True, 'size': 64, 'string': u'Name', 'type': u'char'}, ...}, 'model': u'account.move.line', 'name': u'account.move.line.tree', 'submenu': False, 'toolbar': {'action': [{'auto_refresh': 0, 'auto_search': True, 'context': u"{'record_id' : active_id}", 'display_menu_tip': True, 'domain': False, 'filter': False, 'groups_id': [], 'help': u'This wizard will validate all journal entries of...s are validated, you can not update them anymore.', 'id': 246, 'limit': 80, ...}, {'auto_refresh': 0, 'auto_search': True, 'context': u'{}', 'display_menu_tip': True, 'domain': False, 'filter': False, 'groups_id': [], 'help': False, 'id': 247, 'limit': 80, ...}, {'auto_refresh': 0, 'auto_search': True, 'context': u'{}', 'display_menu_tip': True, 'domain': False, 'filter': False, 'groups_id': [], 'help': False, 'id': 256, 'limit': 80, ...}, {'auto_refresh': 0, 'auto_search': True, 'context': u"{'record_id':active_id}", 'display_menu_tip': True, 'domain': False, 'filter': False, 'groups_id': [], 'help': False, 'id': 257, 'limit': 80, ...}], 'print': [], 'relate': []}, 'type': u'tree', 'view_id': 998}, view_type = u'tree'
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/addons/openerp/widgets/screen.py in add_view(self=Screen, view={'arch': u'<?xml version="1.0"?>\n<tree string="Accounting E..., 19, 17, 16, 18, 5, 6, 7, 4, 3, 1, 2]"/>\n</tree>', 'field_parent': False, 'fields': {'account_id': {'context': {}, 'domain': u"[('journal_id', '=', 2),('type','<>','view'), ('type','<>','closed')]", 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'account_id', 'on_change': u'onchange_account_id(account_id, partner_id)', 'relation': u'account.account', 'required': True, 'select': 2, 'selectable': True, 'string': u'Account', ...}, 'account_tax_id': {'context': {}, 'domain': [], 'relation': u'account.tax', 'selectable': True, 'string': u'Tax', 'type': u'many2one'}, 'analytic_account_id': {'context': {}, 'domain': [], 'relation': u'account.analytic.account', 'selectable': True, 'string': u'Analytic Account', 'type': u'many2one'}, 'credit': {'digits': (16, 2), 'selectable': True, 'string': u'Credit', 'type': u'float'}, 'date': {'digits': (16, 2), 'fnct_inv': u'_fnct_write', 'fnct_inv_arg': (u'move_id', u'date'), 'fnct_search': u'_fnct_search', 'func_method': True, 'func_obj': False, 'function': u'_fnct_read', 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'date', 'on_change': u'onchange_date(date)', ...}, 'date_maturity': {'help': u'This field is used for payable and receivable jo... put the limit date for the payment of this line.', 'invisible': u"context.get('visible_id') not in [19, 17, 16, 18, 4, 3, 1, 2]", 'name': u'date_maturity', 'select': True, 'selectable': True, 'string': u'Due date', 'type': u'date'}, 'debit': {'digits': (16, 2), 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'debit', 'selectable': True, 'string': u'Debit', 'sum': u'Total debit', 'type': u'float'}, 'journal_id': {'context': u"{'journal_id': journal_id}", 'domain': [], 'invisible': u"context.get('journal_id', False)", 'name': u'journal_id', 'relation': u'account.journal', 'required': True, 'select': 1, 'selectable': True, 'string': u'Journal', 'type': u'many2one'}, 'move_id': {'context': {}, 'domain': [], 'help': u'The move of this entry line.', 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'move_id', 'relation': u'account.move', 'required': u'False', 'select': 2, 'selectable': True, 'string': u'Move', ...}, 'name': {'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'name', 'required': True, 'selectable': True, 'size': 64, 'string': u'Name', 'type': u'char'}, ...}, 'model': u'account.move.line', 'name': u'account.move.line.tree', 'submenu': False, 'toolbar': {'action': [{'auto_refresh': 0, 'auto_search': True, 'context': u"{'record_id' : active_id}", 'display_menu_tip': True, 'domain': False, 'filter': False, 'groups_id': [], 'help': u'This wizard will validate all journal entries of...s are validated, you can not update them anymore.', 'id': 246, 'limit': 80, ...}, {'auto_refresh': 0, 'auto_search': True, 'context': u'{}', 'display_menu_tip': True, 'domain': False, 'filter': False, 'groups_id': [], 'help': False, 'id': 247, 'limit': 80, ...}, {'auto_refresh': 0, 'auto_search': True, 'context': u'{}', 'display_menu_tip': True, 'domain': False, 'filter': False, 'groups_id': [], 'help': False, 'id': 256, 'limit': 80, ...}, {'auto_refresh': 0, 'auto_search': True, 'context': u"{'record_id':active_id}", 'display_menu_tip': True, 'domain': False, 'filter': False, 'groups_id': [], 'help': False, 'id': 257, 'limit': 80, ...}], 'print': [], 'relate': []}, 'type': u'tree', 'view_id': 998}, view_type=u'tree')
    128         
    129         from _views import get_view_widget
    130         self.widget = get_view_widget(view_type, self)
    131 
    132         self.string = (self.widget or '') and self.widget.string
  self = Screen, self.widget = None, get_view_widget = <function get_view_widget>, view_type = u'tree'
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/addons/openerp/widgets/_views.py in get_view_widget(kind=u'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
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/addons/openerp/widgets/_views.py in __call__(self=<openerp.widgets._views.ListView object>, screen=Screen)
    116                                     count=screen.count, nolinks=screen.link,
    117                                     m2m=screen.m2m, o2m=screen.o2m,
    118                                     default_data=screen.default_value)
    119 
    120         screen.ids = widget.ids
  default_data undefined, screen = Screen, screen.default_value = []
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/addons/openerp/widgets/listgrid.py in __init__(self=List, name='_terp_list', model=u'account.move.line', view={'arch': u'<?xml version="1.0"?>\n<tree string="Accounting E..., 19, 17, 16, 18, 5, 6, 7, 4, 3, 1, 2]"/>\n</tree>', 'field_parent': False, 'fields': {'account_id': {'context': {}, 'domain': u"[('journal_id', '=', 2),('type','<>','view'), ('type','<>','closed')]", 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'account_id', 'on_change': u'onchange_account_id(account_id, partner_id)', 'relation': u'account.account', 'required': True, 'select': 2, 'selectable': True, 'string': u'Account', ...}, 'account_tax_id': {'context': {}, 'domain': [], 'relation': u'account.tax', 'selectable': True, 'string': u'Tax', 'type': u'many2one'}, 'analytic_account_id': {'context': {}, 'domain': [], 'relation': u'account.analytic.account', 'selectable': True, 'string': u'Analytic Account', 'type': u'many2one'}, 'credit': {'digits': (16, 2), 'selectable': True, 'string': u'Credit', 'type': u'float'}, 'date': {'digits': (16, 2), 'fnct_inv': u'_fnct_write', 'fnct_inv_arg': (u'move_id', u'date'), 'fnct_search': u'_fnct_search', 'func_method': True, 'func_obj': False, 'function': u'_fnct_read', 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'date', 'on_change': u'onchange_date(date)', ...}, 'date_maturity': {'help': u'This field is used for payable and receivable jo... put the limit date for the payment of this line.', 'invisible': u"context.get('visible_id') not in [19, 17, 16, 18, 4, 3, 1, 2]", 'name': u'date_maturity', 'select': True, 'selectable': True, 'string': u'Due date', 'type': u'date'}, 'debit': {'digits': (16, 2), 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'debit', 'selectable': True, 'string': u'Debit', 'sum': u'Total debit', 'type': u'float'}, 'journal_id': {'context': u"{'journal_id': journal_id}", 'domain': [], 'invisible': u"context.get('journal_id', False)", 'name': u'journal_id', 'relation': u'account.journal', 'required': True, 'select': 1, 'selectable': True, 'string': u'Journal', 'type': u'many2one'}, 'move_id': {'context': {}, 'domain': [], 'help': u'The move of this entry line.', 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'move_id', 'relation': u'account.move', 'required': u'False', 'select': 2, 'selectable': True, 'string': u'Move', ...}, 'name': {'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'name', 'required': True, 'selectable': True, 'size': 64, 'string': u'Name', 'type': u'char'}, ...}, 'model': u'account.move.line', 'name': u'account.move.line.tree', 'submenu': False, 'toolbar': {'action': [{'auto_refresh': 0, 'auto_search': True, 'context': u"{'record_id' : active_id}", 'display_menu_tip': True, 'domain': False, 'filter': False, 'groups_id': [], 'help': u'This wizard will validate all journal entries of...s are validated, you can not update them anymore.', 'id': 246, 'limit': 80, ...}, {'auto_refresh': 0, 'auto_search': True, 'context': u'{}', 'display_menu_tip': True, 'domain': False, 'filter': False, 'groups_id': [], 'help': False, 'id': 247, 'limit': 80, ...}, {'auto_refresh': 0, 'auto_search': True, 'context': u'{}', 'display_menu_tip': True, 'domain': False, 'filter': False, 'groups_id': [], 'help': False, 'id': 256, 'limit': 80, ...}, {'auto_refresh': 0, 'auto_search': True, 'context': u"{'record_id':active_id}", 'display_menu_tip': True, 'domain': False, 'filter': False, 'groups_id': [], 'help': False, 'id': 257, 'limit': 80, ...}], 'print': [], 'relate': []}, 'type': u'tree', 'view_id': 998}, ids=[90, 89], domain=[], context={'_terp_view_name': u'Journal Items', 'active_id': 191, 'active_ids': [191], 'active_model': 'ir.ui.menu', 'client': 'web', 'department_id': False, 'journal_id': None, 'lang': u'en_US', 'normal_view': False, 'period_id': None, ...}, **kw={'count': 0, 'default_data': [], 'editable': True, 'limit': 20, 'm2m': 0, 'nolinks': 1, 'o2m': 0, 'offset': 0, 'selectable': 2, 'view_mode': [u'tree', u'form']})
    200 
    201         self.values = copy.deepcopy(data)
    202         self.headers, self.hiddens, self.data, self.field_total, self.buttons = self.parse(root, fields, data)
    203 
    204         for k, v in self.field_total.items():
  self = List, self.headers = None, self.hiddens = [], self.data = None, self.field_total = {}, self.buttons = [], self.parse = <bound method List.parse of List>, root = <DOM Element: tree>, fields = {'account_id': {'context': {}, 'domain': u"[('journal_id', '=', 2),('type','<>','view'), ('type','<>','closed')]", 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'account_id', 'on_change': u'onchange_account_id(account_id, partner_id)', 'relation': u'account.account', 'required': True, 'select': 2, 'selectable': True, 'string': u'Account', ...}, 'account_tax_id': {'context': {}, 'domain': [], 'relation': u'account.tax', 'selectable': True, 'string': u'Tax', 'type': u'many2one'}, 'analytic_account_id': {'context': {}, 'domain': [], 'relation': u'account.analytic.account', 'selectable': True, 'string': u'Analytic Account', 'type': u'many2one'}, 'credit': {'digits': (16, 2), 'selectable': True, 'string': u'Credit', 'type': u'float'}, 'date': {'digits': (16, 2), 'fnct_inv': u'_fnct_write', 'fnct_inv_arg': (u'move_id', u'date'), 'fnct_search': u'_fnct_search', 'func_method': True, 'func_obj': False, 'function': u'_fnct_read', 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'date', 'on_change': u'onchange_date(date)', ...}, 'date_maturity': {'help': u'This field is used for payable and receivable jo... put the limit date for the payment of this line.', 'invisible': u"context.get('visible_id') not in [19, 17, 16, 18, 4, 3, 1, 2]", 'name': u'date_maturity', 'select': True, 'selectable': True, 'string': u'Due date', 'type': u'date'}, 'debit': {'digits': (16, 2), 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'debit', 'selectable': True, 'string': u'Debit', 'sum': u'Total debit', 'type': u'float'}, 'journal_id': {'context': u"{'journal_id': journal_id}", 'domain': [], 'invisible': u"context.get('journal_id', False)", 'name': u'journal_id', 'relation': u'account.journal', 'required': True, 'select': 1, 'selectable': True, 'string': u'Journal', 'type': u'many2one'}, 'move_id': {'context': {}, 'domain': [], 'help': u'The move of this entry line.', 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'move_id', 'relation': u'account.move', 'required': u'False', 'select': 2, 'selectable': True, 'string': u'Move', ...}, 'name': {'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'name', 'required': True, 'selectable': True, 'size': 64, 'string': u'Name', 'type': u'char'}, ...}, data = [{'account_id': M2O, 'account_tax_id': False, 'analytic_account_id': False, 'credit': 1900.0, 'date': DateTime, 'date_maturity': Hidden, 'debit': Float, 'id': 90, 'journal_id': M2O, 'move_id': M2O, ...}, {'account_id': M2O, 'account_tax_id': False, 'analytic_account_id': False, 'credit': 0.0, 'date': DateTime, 'date_maturity': Hidden, 'debit': Float, 'id': 89, 'journal_id': M2O, 'move_id': M2O, ...}]
   /usr/local/lib/python2.6/dist-packages/openerp_web-6.0.1-py2.6.egg/addons/openerp/widgets/listgrid.py in parse(self=List, root=<DOM Element: tree>, fields={'account_id': {'context': {}, 'domain': u"[('journal_id', '=', 2),('type','<>','view'), ('type','<>','closed')]", 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'account_id', 'on_change': u'onchange_account_id(account_id, partner_id)', 'relation': u'account.account', 'required': True, 'select': 2, 'selectable': True, 'string': u'Account', ...}, 'account_tax_id': {'context': {}, 'domain': [], 'relation': u'account.tax', 'selectable': True, 'string': u'Tax', 'type': u'many2one'}, 'analytic_account_id': {'context': {}, 'domain': [], 'relation': u'account.analytic.account', 'selectable': True, 'string': u'Analytic Account', 'type': u'many2one'}, 'credit': {'digits': (16, 2), 'selectable': True, 'string': u'Credit', 'type': u'float'}, 'date': {'digits': (16, 2), 'fnct_inv': u'_fnct_write', 'fnct_inv_arg': (u'move_id', u'date'), 'fnct_search': u'_fnct_search', 'func_method': True, 'func_obj': False, 'function': u'_fnct_read', 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'date', 'on_change': u'onchange_date(date)', ...}, 'date_maturity': {'help': u'This field is used for payable and receivable jo... put the limit date for the payment of this line.', 'invisible': u"context.get('visible_id') not in [19, 17, 16, 18, 4, 3, 1, 2]", 'name': u'date_maturity', 'select': True, 'selectable': True, 'string': u'Due date', 'type': u'date'}, 'debit': {'digits': (16, 2), 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'debit', 'selectable': True, 'string': u'Debit', 'sum': u'Total debit', 'type': u'float'}, 'journal_id': {'context': u"{'journal_id': journal_id}", 'domain': [], 'invisible': u"context.get('journal_id', False)", 'name': u'journal_id', 'relation': u'account.journal', 'required': True, 'select': 1, 'selectable': True, 'string': u'Journal', 'type': u'many2one'}, 'move_id': {'context': {}, 'domain': [], 'help': u'The move of this entry line.', 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'move_id', 'relation': u'account.move', 'required': u'False', 'select': 2, 'selectable': True, 'string': u'Move', ...}, 'name': {'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'name', 'required': True, 'selectable': True, 'size': 64, 'string': u'Name', 'type': u'char'}, ...}, data=[{'account_id': M2O, 'account_tax_id': False, 'analytic_account_id': False, 'credit': 1900.0, 'date': DateTime, 'date_maturity': Hidden, 'debit': Float, 'id': 90, 'journal_id': M2O, 'move_id': M2O, ...}, {'account_id': M2O, 'account_tax_id': False, 'analytic_account_id': False, 'credit': 0.0, 'date': DateTime, 'date_maturity': Hidden, 'debit': Float, 'id': 89, 'journal_id': M2O, 'move_id': M2O, ...}])
    371 
    372                     try:
    373                         fields[name].update(attrs)
    374                     except:
    375                         print "-"*30,"\n malformed tag for:", attrs
  fields = {'account_id': {'context': {}, 'domain': u"[('journal_id', '=', 2),('type','<>','view'), ('type','<>','closed')]", 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'account_id', 'on_change': u'onchange_account_id(account_id, partner_id)', 'relation': u'account.account', 'required': True, 'select': 2, 'selectable': True, 'string': u'Account', ...}, 'account_tax_id': {'context': {}, 'domain': [], 'relation': u'account.tax', 'selectable': True, 'string': u'Tax', 'type': u'many2one'}, 'analytic_account_id': {'context': {}, 'domain': [], 'relation': u'account.analytic.account', 'selectable': True, 'string': u'Analytic Account', 'type': u'many2one'}, 'credit': {'digits': (16, 2), 'selectable': True, 'string': u'Credit', 'type': u'float'}, 'date': {'digits': (16, 2), 'fnct_inv': u'_fnct_write', 'fnct_inv_arg': (u'move_id', u'date'), 'fnct_search': u'_fnct_search', 'func_method': True, 'func_obj': False, 'function': u'_fnct_read', 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'date', 'on_change': u'onchange_date(date)', ...}, 'date_maturity': {'help': u'This field is used for payable and receivable jo... put the limit date for the payment of this line.', 'invisible': u"context.get('visible_id') not in [19, 17, 16, 18, 4, 3, 1, 2]", 'name': u'date_maturity', 'select': True, 'selectable': True, 'string': u'Due date', 'type': u'date'}, 'debit': {'digits': (16, 2), 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'debit', 'selectable': True, 'string': u'Debit', 'sum': u'Total debit', 'type': u'float'}, 'journal_id': {'context': u"{'journal_id': journal_id}", 'domain': [], 'invisible': u"context.get('journal_id', False)", 'name': u'journal_id', 'relation': u'account.journal', 'required': True, 'select': 1, 'selectable': True, 'string': u'Journal', 'type': u'many2one'}, 'move_id': {'context': {}, 'domain': [], 'help': u'The move of this entry line.', 'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'move_id', 'relation': u'account.move', 'required': u'False', 'select': 2, 'selectable': True, 'string': u'Move', ...}, 'name': {'invisible': u"context.get('visible_id') not in [15, 19, 17, 16, 18, 9, 5, 6, 7, 4, 3, 1, 2, None]", 'name': u'name', 'required': True, 'selectable': True, 'size': 64, 'string': u'Name', 'type': u'char'}, ...}, name = u'analytics_id', ].update undefined, attrs = {'invisible': u"context.get('visible_id') not in [9]", 'name': u'analytics_id'}

  <type 'exceptions.KeyError'>: u'analytics_id'
        args = (u'analytics_id',)
        message = u'analytics_id' 

  After investigating, it seems that a record "analytics_id" is created
  in account_journal_column that is not removed when removing the
  module. removing the record manually in postgres seems to do the trick

To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-addons/+bug/717561/+subscriptions