pull/2467/merge
Sebastiano Picchi 2025-04-06 19:57:40 +00:00 committed by GitHub
commit 422f558b17
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 88 additions and 5 deletions

View File

@ -44,6 +44,47 @@ class ResCompany(models.Model):
}
}
}
a[href],
a[tabindex],
.btn-link,
.o_external_button {
color: %(color_link_text)s !important;
}
a:hover,
.btn-link:hover {
color: %(color_link_text_hover)s !important;
}
.btn-primary:not(.disabled),
.ui-autocomplete .ui-menu-item > a.ui-state-active {
color: %(color_button_text)s !important;
background-color: %(color_button_bg)s !important;
border-color: %(color_button_bg)s !important;
}
.btn-primary:hover:not(.disabled),
.ui-autocomplete .ui-menu-item > a.ui-state-active:hover {
color: %(color_button_text)s !important;
background-color: %(color_button_bg_hover)s !important;
border-color: %(color_button_bg_hover)s !important;
}
.o_searchview .o_searchview_facet .o_searchview_facet_label {
color: %(color_button_text)s !important;
background-color: %(color_button_bg)s !important;
}
.o_form_view .o_horizontal_separator {
color: %(color_link_text)s !important;
}
.o_form_view .oe_button_box .oe_stat_button .o_button_icon,
.o_form_view .oe_button_box .oe_stat_button .o_stat_info .o_stat_value,
.o_form_view .oe_button_box .oe_stat_button > span .o_stat_value {
color: %(color_link_text)s !important;
}
.o_form_view .o_form_statusbar > .o_statusbar_status >
.o_arrow_button.btn-primary.disabled {
color: %(color_link_text)s !important;
}
.o_required_modifier.o_input, .o_required_modifier .o_input {
background-color: lighten(%(color_button_bg)s, 10%%) !important;
}
"""
company_colors = fields.Serialized()
@ -52,6 +93,16 @@ class ResCompany(models.Model):
"Navbar Background Color Hover", sparse="company_colors"
)
color_navbar_text = fields.Char("Navbar Text Color", sparse="company_colors")
color_button_text = fields.Char("Button Text Color", sparse="company_colors")
color_button_bg = fields.Char("Button Background Color", sparse="company_colors")
color_button_bg_hover = fields.Char(
"Button Background Color Hover", sparse="company_colors"
)
color_link_text = fields.Char("Link Text Color", sparse="company_colors")
color_link_text_hover = fields.Char(
"Link Text Color Hover", sparse="company_colors"
)
scss_modif_timestamp = fields.Char("SCSS Modif. Timestamp")
@api.model_create_multi
def create(self, vals_list):
@ -73,6 +124,11 @@ class ResCompany(models.Model):
"color_navbar_bg",
"color_navbar_bg_hover",
"color_navbar_text",
"color_button_bg",
"color_button_bg_hover",
"color_button_text",
"color_link_text",
"color_link_text_hover",
)
result = super().write(values)
if any([field in values for field in fields_to_check]):
@ -95,13 +151,27 @@ class ResCompany(models.Model):
# Calc. optimal text color (b/w)
# Grayscale human vision perception (Rec. 709 values)
_a = 1 - (0.2126 * _r + 0.7152 * _g + 0.0722 * _b)
color_navbar_bg = n_rgb_to_hex(_r, _g, _b)
_s += 0.25 if _s < 0.5 else -0.25
color_button_bg = n_rgb_to_hex(*hls_to_rgb(_h, _l, _s))
color_button_bg_hover = n_rgb_to_hex(
*hls_to_rgb(_h, _l, _s + 0.2 if _s < 0.8 else 1.0)
)
values.update(
{
"color_navbar_bg": n_rgb_to_hex(_r, _g, _b),
"color_navbar_bg": color_navbar_bg,
"color_navbar_bg_hover": n_rgb_to_hex(_rd, _gd, _bd),
"color_navbar_text": "#000" if _a < 0.5 else "#fff",
"color_button_bg": color_button_bg,
"color_button_bg_hover": color_button_bg_hover,
"color_button_text": "#000" if _a < 0.5 else "#fff",
"color_link_text": color_navbar_bg,
"color_link_text_hover": color_button_bg,
}
)
self.write(values)
def _scss_get_sanitized_values(self):
@ -118,6 +188,14 @@ class ResCompany(models.Model):
or "$o-navbar-inverse-link-hover-bg"
),
"color_navbar_text": (values.get("color_navbar_text") or "#FFF"),
"color_button_bg": values.get("color_button_bg") or "$primary",
"color_button_bg_hover": values.get("color_button_bg_hover")
or 'darken(theme-color("primary"), 10%)',
"color_button_text": values.get("color_button_text") or "#FFF",
"color_link_text": values.get("color_link_text")
or 'theme-color("primary")',
"color_link_text_hover": values.get("color_link_text_hover")
or 'darken(theme-color("primary"), 10%)',
}
)
return values

View File

@ -15,16 +15,21 @@
name="company_styles"
groups="base.group_system"
>
<group string="Navbar Colors" name="navbar_colors">
<field name="color_navbar_bg" widget="color" />
<field name="color_navbar_bg_hover" widget="color" />
<field name="color_navbar_text" widget="color" />
<group string="Colors" name="navbar_colors">
<button
class="btn-primary"
name="button_compute_color"
type="object"
string="Compute colors from logo"
/>
<field name="color_navbar_bg" widget="color" />
<field name="color_navbar_bg_hover" widget="color" />
<field name="color_navbar_text" widget="color" />
<field name="color_button_bg" widget="color" />
<field name="color_button_bg_hover" widget="color" />
<field name="color_button_text" widget="color" />
<field name="color_link_text" widget="color" />
<field name="color_link_text_hover" widget="color" />
</group>
<div class="alert alert-info info_icon" role="alert">
<span class="fa fa-info fa-2x" />