From 827ed023906fdcf9700d6efbad63c05eb555cda3 Mon Sep 17 00:00:00 2001 From: MuK IT GmbH Date: Thu, 14 Mar 2019 20:42:07 +0000 Subject: [PATCH] publish muk_web_theme - 12.0 --- muk_web_theme/doc/changelog.rst | 6 +++- muk_web_theme/models/__init__.py | 1 + muk_web_theme/models/ir_http.py | 33 +++++++++++++++++++ muk_web_theme/models/res_company.py | 22 +++++++++++++ muk_web_theme/models/res_config_settings.py | 10 +++++- muk_web_theme/static/src/js/chrome/apps.js | 5 +++ .../views/res_config_settings_view.xml | 13 +++++--- 7 files changed, 83 insertions(+), 7 deletions(-) create mode 100644 muk_web_theme/models/ir_http.py diff --git a/muk_web_theme/doc/changelog.rst b/muk_web_theme/doc/changelog.rst index 97d0e8d..81c3869 100644 --- a/muk_web_theme/doc/changelog.rst +++ b/muk_web_theme/doc/changelog.rst @@ -1,9 +1,13 @@ +`1.4.0` +------- + +- Background Blend Mode + `1.3.0` ------- - Default Preferences - `1.2.0` ------- diff --git a/muk_web_theme/models/__init__.py b/muk_web_theme/models/__init__.py index c1d4d04..350b9fe 100644 --- a/muk_web_theme/models/__init__.py +++ b/muk_web_theme/models/__init__.py @@ -19,4 +19,5 @@ from . import res_company from . import res_users +from . import ir_http from . import res_config_settings diff --git a/muk_web_theme/models/ir_http.py b/muk_web_theme/models/ir_http.py new file mode 100644 index 0000000..49ac088 --- /dev/null +++ b/muk_web_theme/models/ir_http.py @@ -0,0 +1,33 @@ +################################################################################### +# +# Copyright (C) 2018 MuK IT GmbH +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +from odoo import models +from odoo.http import request + + +class IrHttp(models.AbstractModel): + + _inherit = 'ir.http' + + def session_info(self): + result = super(IrHttp, self).session_info() + params = request.env['ir.config_parameter'].sudo() + blend_mode = params.get_param('muk_web_theme.background_blend_mode') + result.update(muk_web_theme_background_blend_mode=blend_mode or 'normal') + return result diff --git a/muk_web_theme/models/res_company.py b/muk_web_theme/models/res_company.py index 1722ca7..fd10e48 100644 --- a/muk_web_theme/models/res_company.py +++ b/muk_web_theme/models/res_company.py @@ -31,6 +31,28 @@ class ResCompany(models.Model): string="Apps Menu Background Image", attachment=True) + background_blend_mode = fields.Selection( + selection=[ + ('normal', 'Normal'), + ('multiply', 'Multiply'), + ('screen', 'Screen'), + ('overlay', 'Overlay'), + ('hard-light', 'Hard-light'), + ('darken', 'Darken'), + ('lighten', 'Lighten'), + ('color-dodge', 'Color-dodge'), + ('color-burn', 'Color-burn'), + ('hard-light', 'Hard-light'), + ('difference', 'Difference'), + ('exclusion', 'Exclusion'), + ('hue', 'Hue'), + ('saturation', 'Saturation'), + ('color', 'Color'), + ('luminosity', 'Luminosity'), + ], + string="Apps Menu Background Blend Mode", + default='normal') + default_sidebar_preference = fields.Selection( selection=[ ('invisible', 'Invisible'), diff --git a/muk_web_theme/models/res_config_settings.py b/muk_web_theme/models/res_config_settings.py index 7bc420a..9630f8f 100644 --- a/muk_web_theme/models/res_config_settings.py +++ b/muk_web_theme/models/res_config_settings.py @@ -38,7 +38,11 @@ class ResConfigSettings(models.TransientModel): related="company_id.background_image", readonly=False, required=True) - + + theme_background_blend_mode = fields.Selection( + related="company_id.background_blend_mode", + readonly=False) + theme_default_sidebar_preference = fields.Selection( related="company_id.default_sidebar_preference", readonly=False) @@ -69,6 +73,7 @@ class ResConfigSettings(models.TransientModel): @api.multi def set_values(self): res = super(ResConfigSettings, self).set_values() + param = self.env['ir.config_parameter'].sudo() variables = [ 'o-brand-odoo', 'o-brand-primary', @@ -96,11 +101,13 @@ class ResConfigSettings(models.TransientModel): self.env['muk_utils.scss_editor'].replace_values( SCSS_URL, XML_ID, variables ) + param.set_param('muk_web_theme.background_blend_mode', self.theme_background_blend_mode) return res @api.model def get_values(self): res = super(ResConfigSettings, self).get_values() + params = self.env['ir.config_parameter'].sudo() variables = [ 'o-brand-odoo', 'o-brand-primary', @@ -117,5 +124,6 @@ class ResConfigSettings(models.TransientModel): 'theme_color_menu': colors['mk-apps-color'], 'theme_color_appbar_color': colors['mk-appbar-color'], 'theme_color_appbar_background': colors['mk-appbar-background'], + 'theme_background_blend_mode': params.get_param('muk_web_theme.background_blend_mode', 'normal'), }) return res \ No newline at end of file diff --git a/muk_web_theme/static/src/js/chrome/apps.js b/muk_web_theme/static/src/js/chrome/apps.js index 0d55a82..b7b8a06 100644 --- a/muk_web_theme/static/src/js/chrome/apps.js +++ b/muk_web_theme/static/src/js/chrome/apps.js @@ -77,6 +77,11 @@ AppsMenu.include({ "background-size": "cover", "background-image": "url(" + url + ")" }); + if (session.muk_web_theme_background_blend_mode) { + this.$('.o-app-name').css({ + "mix-blend-mode": session.muk_web_theme_background_blend_mode, + }); + } }, _menuInfo: function (key) { var original = this._searchableMenus[key]; diff --git a/muk_web_theme/views/res_config_settings_view.xml b/muk_web_theme/views/res_config_settings_view.xml index 273a8f9..3dc0eb2 100644 --- a/muk_web_theme/views/res_config_settings_view.xml +++ b/muk_web_theme/views/res_config_settings_view.xml @@ -91,14 +91,17 @@
-