Skip to content

Commit

Permalink
[FIX] Function to check boolean value for different string type value…
Browse files Browse the repository at this point in the history
…s like... 'false', 'False', 'true', 'True'
  • Loading branch information
bud-e committed Feb 6, 2025
1 parent 21fbaa1 commit e0b198c
Showing 1 changed file with 21 additions and 14 deletions.
35 changes: 21 additions & 14 deletions web_m2x_options/static/src/components/form.esm.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,13 @@ import {isX2Many} from "@web/views/utils";
import {patch} from "@web/core/utils/patch";
import {session} from "@web/session";

function is_option_set(option) {
if (_.isUndefined(option)) return false;
if (typeof option === "string") return option === "true" || option === "True";
if (typeof option === "boolean") return option;
return false;
}

Many2OneField.props = {
...Many2OneField.props,
noSearchMore: {type: Boolean, optional: true},
Expand Down Expand Up @@ -74,12 +81,12 @@ patch(many2OneField, {
? evaluateBooleanExpr(attrs.can_create)
: true;
} else if (
ir_options["web_m2x_options.create"] === "False" &&
is_option_set(ir_options["web_m2x_options.create"]) &&
props.canQuickCreate
) {
props.canQuickCreate = false;
} else if (
ir_options["web_m2x_options.create"] === "True" &&
is_option_set(ir_options["web_m2x_options.create"]) &&
!props.canQuickCreate
) {
props.canQuickCreate = attrs.can_create
Expand All @@ -99,12 +106,12 @@ patch(many2OneField, {
? evaluateBooleanExpr(attrs.can_create)
: true;
} else if (
ir_options["web_m2x_options.create_edit"] === "False" &&
is_option_set(ir_options["web_m2x_options.create_edit"]) &&
props.canCreateEdit
) {
props.canCreateEdit = false;
} else if (
ir_options["web_m2x_options.create_edit"] === "True" &&
is_option_set(ir_options["web_m2x_options.create_edit"]) &&
!props.canCreateEdit
) {
// Same condition set in web/views/fields/many2one/many2one_field
Expand Down Expand Up @@ -132,11 +139,11 @@ patch(many2OneField, {
} else if (options.search_more === false) {
props.noSearchMore = true;
} else if (
ir_options["web_m2x_options.search_more"] === "True" &&
is_option_set(ir_options["web_m2x_options.search_more"]) &&
props.noSearchMore
) {
props.noSearchMore = false;
} else if (ir_options["web_m2x_options.search_more"] === "False") {
} else if (is_option_set(ir_options["web_m2x_options.search_more"])) {
props.noSearchMore = true;
}
return props;
Expand All @@ -148,9 +155,9 @@ patch(many2OneField, {
props.canOpen = true;
} else if (options.open === false) {
props.canOpen = false;
} else if (ir_options["web_m2x_options.open"] === "True") {
} else if (is_option_set(ir_options["web_m2x_options.open"])) {
props.canOpen = true;
} else if (ir_options["web_m2x_options.open"] === "False") {
} else if (is_option_set(ir_options["web_m2x_options.open"])) {
props.canOpen = false;
}
return props;
Expand Down Expand Up @@ -204,12 +211,12 @@ patch(many2ManyTagsField, {
// Create option already available for m2m fields
if (!options.create) {
if (
ir_options["web_m2x_options.create"] === "False" &&
is_option_set(ir_options["web_m2x_options.create"]) &&
props.canQuickCreate
) {
props.canQuickCreate = false;
} else if (
ir_options["web_m2x_options.create"] === "True" &&
is_option_set(ir_options["web_m2x_options.create"]) &&
!props.canQuickCreate
) {
props.canQuickCreate = attrs.can_create
Expand All @@ -230,12 +237,12 @@ patch(many2ManyTagsField, {
? evaluateBooleanExpr(attrs.can_create)
: true;
} else if (
ir_options["web_m2x_options.create_edit"] === "False" &&
is_option_set(ir_options["web_m2x_options.create_edit"]) &&
props.canCreateEdit
) {
props.canCreateEdit = false;
} else if (
ir_options["web_m2x_options.create_edit"] === "True" &&
is_option_set(ir_options["web_m2x_options.create_edit"]) &&
!props.canCreateEdit
) {
// Same condition set in web/views/fields/many2one/many2one_field
Expand Down Expand Up @@ -266,11 +273,11 @@ patch(many2ManyTagsField, {
} else if (options.search_more === false) {
props.noSearchMore = true;
} else if (
ir_options["web_m2x_options.search_more"] === "True" &&
is_option_set(ir_options["web_m2x_options.search_more"]) &&
props.noSearchMore
) {
props.noSearchMore = false;
} else if (ir_options["web_m2x_options.search_more"] === "False") {
} else if (is_option_set(ir_options["web_m2x_options.search_more"])) {
props.noSearchMore = true;
}
return props;
Expand Down

0 comments on commit e0b198c

Please sign in to comment.