В Qweb, как фильтровать данные по значению, выбранному пользователем (odoo)? - PullRequest
0 голосов
/ 03 мая 2020

введите описание изображения здесь

Для пользователя портала я хочу, чтобы список значений поля отображался на основе значения, выбранного этим пользователем портала, например:

Если этот пользователь портала выбирает страну, в поле списка учреждений должны отображаться только учреждения в выбранной стране.

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();
    },

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...