Browse Source

[FIX][mass_editing] Add default `views` parameter to fields

Without this patch, if you created a mass editing definition that included a *2many object and then opened the wizard, you got this exception:

    Uncaught TypeError: Cannot read property 'list' of undefined

    http://localhost/web/static/src/js/views/form_view.js:488
    Traceback:
    TypeError: Cannot read property 'list' of undefined
        at http://localhost/web/static/src/js/views/form_view.js:488:30
        at Function._.each._.forEach (http://localhost/web/static/lib/underscore/underscore.js:150:9)
        at http://localhost/web/static/src/js/views/form_view.js:486:19
        at Function._.each._.forEach (http://localhost/web/static/lib/underscore/underscore.js:150:9)
        at Class._build_onchange_specs (http://localhost/web/static/src/js/views/form_view.js:473:11)
        at Class.do_onchange (http://localhost/web/static/src/js/views/form_view.js:523:18)
        at Array.<anonymous> (http://localhost/web/static/src/js/views/form_view.js:377:26)
        at fire (http://localhost/web/static/lib/jquery/jquery.js:3119:58)
        at Object.fireWith [as resolveWith] (http://localhost/web/static/lib/jquery/jquery.js:3231:49)
        at Object.<anonymous> (http://localhost/web/static/lib/jquery/jquery.js:3360:58)
pull/805/head
Jairo Llopis 8 years ago
committed by Pedro M. Baeza
parent
commit
71f7910045
  1. 4
      mass_editing/tests/test_mass_editing.py
  2. 3
      mass_editing/wizard/mass_editing_wizard.py

4
mass_editing/tests/test_mass_editing.py

@ -78,6 +78,10 @@ class TestMassEditing(common.TransactionCase):
result = self.mass_wiz_obj.with_context(ctx).fields_view_get() result = self.mass_wiz_obj.with_context(ctx).fields_view_get()
self.assertTrue(result.get('arch'), self.assertTrue(result.get('arch'),
'Fields view get must return architecture.') 'Fields view get must return architecture.')
fields = result.get("fields")
self.assertTrue(fields)
for name, values in fields.items():
self.assertTrue(isinstance(values["views"], dict))
def test_onchange_model(self): def test_onchange_model(self):
"""Test whether onchange model_id returns model_id in list""" """Test whether onchange model_id returns model_id in list"""

3
mass_editing/wizard/mass_editing_wizard.py

@ -207,6 +207,9 @@ class MassEditingWizard(models.TransientModel):
field.name + "','=','remove')]}"), field.name + "','=','remove')]}"),
'colspan': '4', 'colspan': '4',
}) })
# Patch fields with required extra data
for field in all_fields.values():
field.setdefault("views", {})
etree.SubElement(xml_form, 'separator', { etree.SubElement(xml_form, 'separator', {
'string': '', 'string': '',
'colspan': '6', 'colspan': '6',

Loading…
Cancel
Save