[TRUNK] survey KeyError: 'id'

Bug #815903 reported by Maxime Chambreuil (http://www.savoirfairelinux.com)
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Odoo Server (MOVED TO GITHUB)
Fix Released
Medium
OpenERP's Framework R&D

Bug Description

Using server, web-client and addons from trunk on Ubuntu 11.04 with python2.6, I installed survey module.

In Tools > Surveys > Define Surveys > Surveys, when I click on any survey in the tree view, I get:

Traceback (most recent call last):
  File "/home/max/openerp/server/trunk/openerp/netsvc.py", line 440, in dispatch
    result = ExportService.getService(service_name).dispatch(method, auth, params)
  File "/home/max/openerp/server/trunk/openerp/service/web_services.py", line 588, in dispatch
    res = fn(db, uid, *params)
  File "/home/max/openerp/server/trunk/openerp/osv/osv.py", line 118, in wrapper
    return f(self, dbname, *args, **kwargs)
  File "/home/max/openerp/server/trunk/openerp/osv/osv.py", line 172, in execute
    res = self.execute_cr(cr, uid, obj, method, *args, **kw)
  File "/home/max/openerp/server/trunk/openerp/osv/osv.py", line 163, in execute_cr
    return getattr(object, method)(cr, uid, *args, **kw)
  File "/home/max/openerp/server/trunk/openerp/osv/orm.py", line 1994, in fields_view_get
    xarch, xfields = self.__view_look_dom_arch(cr, user, result['arch'], view_id, context=ctx)
  File "/home/max/openerp/server/trunk/openerp/osv/orm.py", line 1656, in __view_look_dom_arch
    fields_def = self.__view_look_dom(cr, user, node, view_id, False, fields, context=context)
  File "/home/max/openerp/server/trunk/openerp/osv/orm.py", line 1605, in __view_look_dom
    fields.update(self.__view_look_dom(cr, user, f, view_id, in_tree_view, model_fields, context))
  File "/home/max/openerp/server/trunk/openerp/osv/orm.py", line 1605, in __view_look_dom
    fields.update(self.__view_look_dom(cr, user, f, view_id, in_tree_view, model_fields, context))
  File "/home/max/openerp/server/trunk/openerp/osv/orm.py", line 1558, in __view_look_dom
    field = model_fields[node.get('name')]
KeyError: 'id'

Tags: survey trunk

Related branches

affects: openobject-addons → openobject-server
Changed in openobject-server:
importance: Undecided → Medium
status: New → Confirmed
Changed in openobject-server:
assignee: nobody → OpenERP's Framework R&D (openerp-dev-framework)
Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote :

I can now open a survey, but when I try to create a question, I get:

[2011-07-29 15:03:55,180][?] ERROR:web-services:Uncaught exception
Traceback (most recent call last):
  File "/home/max/openerp/server/trunk/openerp/osv/osv.py", line 118, in wrapper
    return f(self, dbname, *args, **kwargs)
  File "/home/max/openerp/server/trunk/openerp/osv/osv.py", line 172, in execute
    res = self.execute_cr(cr, uid, obj, method, *args, **kw)
  File "/home/max/openerp/server/trunk/openerp/osv/osv.py", line 163, in execute_cr
    return getattr(object, method)(cr, uid, *args, **kw)
  File "/home/max/openerp/addons/trunk/survey/survey.py", line 512, in default_get
    if len(context['line_order'][-1]) > 2 and type(context['line_order'][-1][2]) == type({}) and context['line_order'][-1][2].has_key('sequence'):
TypeError: object of type 'int' has no len()
> /home/max/openerp/addons/trunk/survey/survey.py(512)default_get()
-> if len(context['line_order'][-1]) > 2 and type(context['line_order'][-1][2]) == type({}) and context['line_order'][-1][2].has_key('sequence'):

Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote :

If it can help:

(Pdb) l
507 def default_get(self, cr, uid, fields, context=None):
508 if context is None:
509 context = {}
510 data = super(survey_question, self).default_get(cr, uid, fields, context)
511 if context.get('line_order',False):
512 -> if len(context['line_order'][-1]) > 2 and type(context['line_order'][-1][2]) == type({}) and context['line_order'][-1][2].has_key('sequence'):
513 data['sequence'] = context['line_order'][-1][2]['sequence'] + 1
514
515 if context.has_key('page_id'):
516 data['page_id']= context.get('page_id', False)
517 return data
(Pdb) context['line_order'][-1]
62

Revision history for this message
Naresh(OpenERP) (nch-openerp) wrote :

Hello Maxime,

The issue at has been fixed at lp:~openerp-dev/openobject-server/trunk-bug-815903-gpa and merged in trunk server @ revision-info :3524 <email address hidden>.

can you please have an update.

Thanks

Changed in openobject-server:
status: Confirmed → Fix Released
Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote :

Yes it works, I have been able to open any surveys.

I'll file another bug for the question-related bug.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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