diff --git a/modules/plugin_dbui/formmodifier.py b/modules/plugin_dbui/formmodifier.py index 33cdd4fffcb75a3e2edcf6468eb8b0ab27c773a3..88c2041fe461fc15542270a07bae007fec9112d5 100644 --- a/modules/plugin_dbui/formmodifier.py +++ b/modules/plugin_dbui/formmodifier.py @@ -100,28 +100,57 @@ class FormModifier(Modifier): Either a string or a list of string when several slaves are linked to a master. + masterExtJS + configuration parameters dictionary for the master + Ext.form.Combobox. Might be useful to set the master + in readOnly mode for example + + slavesExtJS + configuration parameters dictionary for the slave + Ext.form.Combobox. It can also be a list of dictionary + when running with multi-slaves. Might be useful to set + the salve in readOnly mode for example. + """ - for el in ('slaveNames', 'displayFieldSlaves', 'valueFieldSlaves'): - kwargs[el] = as_list(kwargs[el]) + # Multi-slaves case + t = ('slaveNames', + 'displayFieldSlaves', + 'valueFieldSlaves', + 'slavesExtJS') + + for el in t: + if el in kwargs: + kwargs[el] = as_list(kwargs[el]) # master + extjs = {} + if 'masterExtJS' in kwargs: + extjs = kwargs['masterExtJS'] + fieldsModifier = FieldsModifier(self.tablename) fieldsModifier.configure_field(kwargs['masterName'], displayField=kwargs['displayFieldMaster'], role='master', store=kwargs['storeName'], valueField=kwargs['valueFieldMaster'], - xtype='xlinkedcombobox') + xtype='xlinkedcombobox', + **extjs) # slaves for i in range(len(kwargs['slaveNames'])): + + extjs = {} + if 'slavesExtJS' in kwargs: + extjs = kwargs['slavesExtJS'][i] + fieldsModifier.configure_field(kwargs['slaveNames'][i], displayField=kwargs['displayFieldSlaves'][i], mode='local', role='slave', store=kwargs['storeName'], valueField=kwargs['valueFieldSlaves'][i], - xtype='xlinkedcombobox') + xtype='xlinkedcombobox', + **extjs) def merge_fields(self, *fields, **kwargs):