diff --git a/web_company_color/models/res_company.py b/web_company_color/models/res_company.py index 6f07d12ed..f89f2566f 100644 --- a/web_company_color/models/res_company.py +++ b/web_company_color/models/res_company.py @@ -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 diff --git a/web_company_color/view/res_company.xml b/web_company_color/view/res_company.xml index 25265f90c..a0f433255 100644 --- a/web_company_color/view/res_company.xml +++ b/web_company_color/view/res_company.xml @@ -15,16 +15,21 @@ name="company_styles" groups="base.group_system" > - - - - +