[FIX] base: subscribe new API onchange methods for module fields
Adapt the code to use the new API for onchange methods. This fixes onchanges for version 11.0, since support of old-API onchange is actually gone.
This commit is contained in:
@@ -398,8 +398,6 @@ class ResConfigSettings(models.TransientModel, ResConfigModuleInstallationMixin)
|
||||
def copy(self, values):
|
||||
raise UserError(_("Cannot duplicate configuration!"), "")
|
||||
|
||||
# TODO: Find replacement for 'onchange' attribute in view with dynamic
|
||||
# api.onchange(...) and migrate the onchange_module(...) accordingly.
|
||||
@api.model
|
||||
def fields_view_get(self, view_id=None, view_type='form',
|
||||
toolbar=False, submenu=False):
|
||||
@@ -421,9 +419,6 @@ class ResConfigSettings(models.TransientModel, ResConfigModuleInstallationMixin)
|
||||
modifiers = json.loads(node.get("modifiers"))
|
||||
modifiers['readonly'] = True
|
||||
node.set("modifiers", json.dumps(modifiers))
|
||||
if 'on_change' not in node.attrib:
|
||||
node.set("on_change",
|
||||
"onchange_module(%s, '%s')" % (field, field))
|
||||
|
||||
ret_val['arch'] = etree.tostring(doc)
|
||||
return ret_val
|
||||
@@ -447,6 +442,16 @@ class ResConfigSettings(models.TransientModel, ResConfigModuleInstallationMixin)
|
||||
}
|
||||
return {}
|
||||
|
||||
def _register_hook(self):
|
||||
""" Add an onchange method for each module field. """
|
||||
def make_method(name):
|
||||
return lambda self: self.onchange_module(self[name], name)
|
||||
|
||||
for name in self._fields:
|
||||
if name.startswith('module_'):
|
||||
method = make_method(name)
|
||||
self._onchange_methods[name].append(method)
|
||||
|
||||
@api.model
|
||||
def _get_classified_fields(self):
|
||||
""" return a dictionary with the fields classified by category::
|
||||
|
||||
Reference in New Issue
Block a user