введите описание изображения здесь
Для пользователя портала я хочу, чтобы список значений поля отображался на основе значения, выбранного этим пользователем портала, например:
Если этот пользователь портала выбирает страну, в поле списка учреждений должны отображаться только учреждения в выбранной стране.
publicWidget.registry.portalMedical = publicWidget.Widget.extend({
selector: '.o_portal_medical',
events: {
'change select[name="country_id"]': '_onCountryChange',
'change select[name="state_id"]': '_onStateChange',
'change select[name="institution_id"]': '_onInstitutionChange',
},
start: function () {
var def = this._super.apply(this, arguments);
this.$state = this.$('select[name="state_id"]');
this.$stateOptions = this.$state.filter(':enabled').find('option:not(:first)');
this.$institution = this.$('select[name="institution_id"]');
this.$institutionOptions = this.$institution.filter(':enabled').find('option:not(:first)');
this.$doctor = this.$('select[name="doctor_id"]');
this.$doctorOptions = this.$doctor.filter(':enabled').find('option:not(:first)');
this._adaptAddressForm();
return def;
},
_adaptAddressForm: function () {
var $country = this.$('select[name="country_id"]');
var countryID = ($country.val() || 0);
this.$stateOptions.detach();
var $displayedState = this.$stateOptions.filter('[data-country_id=' + countryID + ']');
var nb = $displayedState.appendTo(this.$state).show().length;
//this.$state.parent().toggle(nb >= 1);
var $state = this.$('select[name="state_id"]');
var stateID = ($state.val() || 0);
this.$institutionOptions.detach();
var $displayedInstitution = this.$institutionOptions.filter('[data-state_id=' + stateID + ']');
var mb = $displayedInstitution.appendTo(this.$institution).show().length;
//this.$institution.parent().toggle(mb >= 1);
},
_onCountryChange: function () {
this._adaptAddressForm();
},
_onStateChange: function () {
this._adaptAddressForm();
},
});