=== modified file 'openerp/controllers/openo2m.py' --- openerp/controllers/openo2m.py 2010-09-27 07:40:54 +0000 +++ openerp/controllers/openo2m.py 2010-10-15 12:46:18 +0000 @@ -59,6 +59,15 @@ params.view_mode = ['form', 'tree'] params.view_type = 'form' + #FIX _terp_ids in nested o2m's + depth_o2m = params.o2m.split('/') + current_dict = params.view_params + + for o2m in depth_o2m : + current_dict = current_dict[o2m] + + current_o2m_ids = current_dict.ids + #XXX: dirty hack to fix bug #401700 if not params.get('_terp_view_ids'): params['_terp_view_ids'] = [] @@ -107,7 +116,8 @@ tw.form.Hidden(name='_terp_o2m_model', default=params.o2m_model), tw.form.Hidden(name='_terp_o2m_context', default=ustr(params.o2m_context or {})), tw.form.Hidden(name=params.prefix + '/__id', default=params.id or None)] + hiddens - + + params.ids = current_o2m_ids form = tw.form_view.ViewForm(params, name="view_form", action="/openo2m/save") form.screen.string = wid.screen.string === modified file 'openerp/static/javascript/form.js' --- openerp/static/javascript/form.js 2010-10-15 09:13:43 +0000 +++ openerp/static/javascript/form.js 2010-10-15 13:02:33 +0000 @@ -693,7 +693,6 @@ params['_terp_context'] = options.context; params['_terp_prefix'] = prefix; params['_terp_active_id'] = prefix ? $(prefix + '/_terp_id').value : $('_terp_id').value; - params['_terp_active_ids'] = prefix ? $(prefix + '/_terp_ids').value : $('_terp_ids').value; if (options.active_id) { params['_terp_active_id'] = options.active_id; @@ -917,7 +916,9 @@ var id = eval(params['_terp_selection'])[0] } else{ - var id = $(field).value;} + var id = $(field).value; + params['_terp_selection'] = '[' + id + ']'; + } var domain = getNodeAttribute(src, 'domain'); var context = getNodeAttribute(src, 'context');