From 4200c308fb50141269effc9fc1a8e3c2290726bf Mon Sep 17 00:00:00 2001 From: Renaud Le Gac <legac@cppm.in2p3.fr> Date: Sat, 15 Dec 2012 09:50:11 +0100 Subject: [PATCH] Improve the method formModifier.linked_combobox by adding the possibility to modify the ExtJS configuration parameter of the underlying combobox. --- modules/plugin_dbui/formmodifier.py | 37 +++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/modules/plugin_dbui/formmodifier.py b/modules/plugin_dbui/formmodifier.py index 33cdd4ff..88c2041f 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): -- GitLab