diff --git a/models/widgets_forms.py b/models/widgets_forms.py index cb567ccd00fd59ca7f3ef15cb760a0cb76b7615f..6083ad137885cc1a672820daf87aae39849ab874 100644 --- a/models/widgets_forms.py +++ b/models/widgets_forms.py @@ -25,11 +25,11 @@ dbui.configure_forms(db, plugins=['pFormToolTip']) # # harvester selector # -# formModifier = dbui.FormModifier('harvester_selector') -# formModifier.link_comboboxes(master=virtdb.harvester_selector.id_projects, -# slave=virtdb.harvester_selector.controller, -# masterHasSlaveData='harvesters') -# +formModifier = dbui.FormModifier('harvester_selector') +formModifier.link_comboboxes(master=virtdb.harvester_selector.id_projects, + slave=virtdb.harvester_selector.controller, + masterHasSlaveData='harvesters') + formModifier = dbui.FormModifier('harvester_selector') formModifier.link_comboboxes(master=virtdb.harvester_selector.id_projects, slave=virtdb.harvester_selector.id_teams, diff --git a/static/plugin_dbui/src/comboboxslave.js b/static/plugin_dbui/src/comboboxslave.js index 614a3954f89c4b142b8439c87ae7ad54c9bd2f98..4fef13b43bf9d5291f6b9c6a1415edaacc99b3d5 100644 --- a/static/plugin_dbui/src/comboboxslave.js +++ b/static/plugin_dbui/src/comboboxslave.js @@ -149,6 +149,8 @@ Ext.define('App.form.field.ComboBoxSlave', { /** * Select the authorized slave values. + * When the number of authorized value is equal to 1, the + * value is loaded in the slave. * * @param {Ext.form.field.ComboBox} combo * @param {Ext.data.Model[]} records @@ -160,10 +162,20 @@ Ext.define('App.form.field.ComboBoxSlave', { var value = records[0].get(this.masterValueField); + // clear previous filter this.store.clearFilter(true); this.reset(); + + // filter the local store this.store.filter(this.masterValueField, value); + + // enable the widget this.setDisabled(false); + + // load the value when there is only one + if (this.store.getCount() === 1) { + this.setValue(this.store.getAt(0).get(this.valueField)); + } }, /**