3
0
Fork 0

Merge PR #2140 into 14.0

Signed-off-by pedrobaeza
14.0
OCA-git-bot 2022-07-01 09:52:05 +00:00
commit c6ff557c79
2 changed files with 24 additions and 3 deletions

View File

@ -27,6 +27,7 @@ odoo.define("web_widget_domain_editor_dialog.basic_fields", function (require) {
disable_multiple_selection: false,
no_create: true,
on_selected: function (selected_ids) {
_this.inDomainEditor = true;
_this.domainSelector
.setDomain(this.get_domain(selected_ids))
.then(_this._replaceContent.bind(_this));
@ -39,5 +40,14 @@ odoo.define("web_widget_domain_editor_dialog.basic_fields", function (require) {
this.trigger("dialog_opened", dialog);
return dialog;
},
_onDomainSelectorValueChange: function () {
// This allows the domain editor to work with in dialog mode
const inDialog = this.inDialog;
if (this.inDomainEditor) {
this.inDialog = false;
}
this._super.apply(this, arguments);
this.inDialog = inDialog;
},
});
});

View File

@ -13,13 +13,24 @@ odoo.define("web_widget_domain_editor_dialog.DomainEditorDialog", function (requ
init: function () {
this._super.apply(this, arguments);
const _this = this;
let domain = Domain.prototype.stringToArray(_this.options.default_domain);
// HACK: dynamicFilters don't work fine with booleans as they pass through
// pyeval as a jason domain. This way, they're full compatible and we avoid
// making an _rpc call.
domain = domain.map((tuple) => {
if (tuple[2] === true) {
tuple[2] = 1;
}
if (tuple[2] === false) {
tuple[2] = 0;
}
return tuple;
});
this.options = _.defaults(this.options, {
dynamicFilters: [
{
description: _.str.sprintf(_t("Selected domain")),
domain: Domain.prototype.stringToArray(
_this.options.default_domain
),
domain: domain,
},
],
});