[FIX] web_editor, website: allow to define 'null' values in palettes

When [1] was introduced, we prevented to define a 'null' value for a
parameter P in a palette and forced a fallback to a default value X
defined in a "base" palette (value X which could be null). That allowed
to ensure that all final palette values were consistent as always
fallbacking to a "safe" value. However, since then, we introduced [2]
which makes it so a parameter P in the "base" palette is defined to X
(not null) while null is a valid value for P. We could keep the old
system and define that paramater P to a 'null' value in the "base"
palette and add the default X value in all palettes explicitely... but
with this commit we are choosing to be less tolerant (but in fact more
tolerant to custo) and rely on the fact palettes are well defined with
valid values (e.g. not defining a value to null while only X or Y are
allowed for example). Indeed, an exception for the "null" value did not
make much sense: if only X or Y are allowed as value for a parameter P,
setting a random Z value was not prevented, only null was.

[1]: https://github.com/odoo/odoo/commit/05d17089c4a604cb49f1a263b68f39aeffecccda
[2]: https://github.com/odoo/odoo/commit/a48a30f954afcb6ff3a59c4f32b05fd0c2cfcd2b

Part-of: odoo/odoo#76033
This commit is contained in:
qsm-odoo
2021-09-06 18:28:53 +00:00
parent ba499b2973
commit 0ebf956edb
2 changed files with 6 additions and 6 deletions
@@ -20,7 +20,7 @@ $-combination-additions: ();
$o-color-palette: map-get($o-color-palettes, $o-color-palette-name) or ();
// Original color palette can contain override of the default combinations (so keep 'null' values for this merge)
$o-color-palette: map-merge($-combination-additions, $o-color-palette);
$o-color-palette: map-merge($o-base-color-palette, o-map-omit($o-color-palette));
$o-color-palette: map-merge($o-base-color-palette, $o-color-palette);
$o-color-palette: o-map-force-nulls($o-color-palette);
// Theme colors
@@ -41,16 +41,16 @@ $o-theme-color-palette: map-merge((
// very dark version of a desaturate version of the main color
'light': lighten(desaturate($-main-color, 80%), min(70%, max(0%, 97% - $-main-color-lightness))), // Does not increase over 97% lightness
'dark': darken(desaturate($-main-color, 80%), min(70%, max(0%, $-main-color-lightness - 10%))), // Does not lower under 10% lightness
), o-map-omit($o-theme-color-palette));
$o-theme-color-palette: map-merge($o-base-theme-color-palette, o-map-omit($o-theme-color-palette));
), $o-theme-color-palette);
$o-theme-color-palette: map-merge($o-base-theme-color-palette, $o-theme-color-palette);
$o-theme-color-palette: o-map-force-nulls($o-theme-color-palette);
// Gray colors
// Extend grays with transparent ones (for some reason, BS4 create black-50 and
// white-50 but does not allow overridding that with variables).
$o-gray-color-palette: map-get($o-gray-color-palettes, $o-gray-color-palette-name) or () !default;
$o-gray-color-palette: map-merge($o-transparent-grays, o-map-omit($o-gray-color-palette));
$o-gray-color-palette: map-merge($o-base-gray-color-palette, o-map-omit($o-gray-color-palette));
$o-gray-color-palette: map-merge($o-transparent-grays, $o-gray-color-palette);
$o-gray-color-palette: map-merge($o-base-gray-color-palette, $o-gray-color-palette);
$o-gray-color-palette: o-map-force-nulls($o-gray-color-palette);
$o-color-system-initialized: false;
@@ -54,7 +54,7 @@ $o-fonts-similar: (
// automatically replaced with corresponsing values in chosen default values
// palette.
$-website-values-default: o-safe-nth($o-website-values-palettes, $o-website-values-palette-number, ());
$-website-values-default: map-merge($o-base-website-values-palette, o-map-omit($-website-values-default));
$-website-values-default: map-merge($o-base-website-values-palette, $-website-values-default);
$o-user-website-values: o-map-font-aliases($o-user-website-values);
$-actual-user-website-values-palette: map-merge($-website-values-default, $o-user-website-values);
// Default font selection + User font selection have been merged, now need to