openerp-india team mailing list archive
-
openerp-india team
-
Mailing list archive
-
Message #05092
[Bug 717561] Re: removing account_analytic_plans breaks "journal items" view
I found a simple (manual) solution, just execute the query -
DELETE FROM account_journal_column WHERE field = 'Analytic Distribution'
--
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