diff --git a/web_company_color/README.rst b/web_company_color/README.rst index 09b04dff6..e397965b7 100644 --- a/web_company_color/README.rst +++ b/web_company_color/README.rst @@ -14,13 +14,13 @@ Web Company Color :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github - :target: https://github.com/OCA/web/tree/14.0/web_company_color + :target: https://github.com/OCA/web/tree/15.0/web_company_color :alt: OCA/web .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/web-14-0/web-14-0-web_company_color + :target: https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_company_color :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/162/14.0 + :target: https://runbot.odoo-community.org/runbot/162/15.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -50,7 +50,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -66,10 +66,11 @@ Contributors ~~~~~~~~~~~~ * Jordi Ballester Alomar (ForgeFlow) -* Lois Rilo (ForgeFlow) +* Lois Rilo (ForgeFlow) * Simone Orsi * Jairo Llopis * Iván Antón +* Bernat Puig (ForgeFlow) Maintainers ~~~~~~~~~~~ @@ -84,6 +85,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/web `_ project on GitHub. +This module is part of the `OCA/web `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/web_company_color/__manifest__.py b/web_company_color/__manifest__.py index e73cf17e5..726ae7761 100644 --- a/web_company_color/__manifest__.py +++ b/web_company_color/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Web Company Color", "category": "web", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "author": "Alexandre Díaz, Odoo Community Association (OCA)", "website": "https://github.com/OCA/web", "depends": ["web", "base_sparse_field"], diff --git a/web_company_color/i18n/web_company_color.pot b/web_company_color/i18n/web_company_color.pot index 826901d2d..b5910cafa 100644 --- a/web_company_color/i18n/web_company_color.pot +++ b/web_company_color/i18n/web_company_color.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -36,24 +36,6 @@ msgstr "" msgid "Company Styles" msgstr "" -#. module: web_company_color -#: model:ir.model.fields,field_description:web_company_color.field_ir_qweb__display_name -#: model:ir.model.fields,field_description:web_company_color.field_res_company__display_name -msgid "Display Name" -msgstr "" - -#. module: web_company_color -#: model:ir.model.fields,field_description:web_company_color.field_ir_qweb__id -#: model:ir.model.fields,field_description:web_company_color.field_res_company__id -msgid "ID" -msgstr "" - -#. module: web_company_color -#: model:ir.model.fields,field_description:web_company_color.field_ir_qweb____last_update -#: model:ir.model.fields,field_description:web_company_color.field_res_company____last_update -msgid "Last Modified on" -msgstr "" - #. module: web_company_color #: model:ir.model.fields,field_description:web_company_color.field_res_company__color_navbar_bg msgid "Navbar Background Color" diff --git a/web_company_color/models/assetsbundle.py b/web_company_color/models/assetsbundle.py index 2f2ce0083..aec30736c 100644 --- a/web_company_color/models/assetsbundle.py +++ b/web_company_color/models/assetsbundle.py @@ -1,14 +1,22 @@ # Copyright 2020 Alexandre Díaz # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo.http import request + from odoo.addons.base.models.assetsbundle import AssetsBundle, ScssStylesheetAsset class AssetsBundleCompanyColor(AssetsBundle): def get_company_color_asset_node(self): """Process the user active company scss and returns the node to inject""" - company_id = self.env["res.company"].browse( - self.env.context.get("active_company_id", 0) + try: + active_company_id = int( + request.httprequest.cookies.get("cids", "").split(",")[0] + ) + except Exception: + active_company_id = False + company_id = ( + self.env["res.company"].browse(active_company_id) or self.env.company ) asset = ScssStylesheetAsset(self, url=company_id.scss_get_url()) compiled = self.compile_css(asset.compile, asset.get_source()) - return ("style", {}, compiled) + return "style", {}, compiled diff --git a/web_company_color/models/ir_qweb.py b/web_company_color/models/ir_qweb.py index f43c5aace..1b8a627b8 100644 --- a/web_company_color/models/ir_qweb.py +++ b/web_company_color/models/ir_qweb.py @@ -1,86 +1,40 @@ # Copyright 2020 Alexandre Díaz # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from inspect import unwrap - -from odoo import api, models, tools -from odoo.http import request - -from odoo.addons.base.models.ir_qweb import IrQWeb +from odoo import models from .assetsbundle import AssetsBundleCompanyColor -# Monkey Patch to change the ormcache_context decorator of '_get_asset_nodes' to -# add 'active_company_id' context key. This is done to avoid "clear_caches" usage -# that works in a more aggressive way to the LRU cache. - -_orig_get_asset_nodes = unwrap(IrQWeb._get_asset_nodes) - - -@tools.conditional( - "xml" not in tools.config["dev_mode"], - tools.ormcache_context( - "xmlid", - 'options.get("lang", "en_US")', - "css", - "js", - "debug", - "async_load", - "defer_load", - "lazy_load", - keys=("website_id", "active_company_id"), - ), -) -def _get_asset_nodes__mp( - self, - xmlid, - options, - css=True, - js=True, - debug=False, - async_load=False, - defer_load=False, - lazy_load=False, - values=None, -): - return _orig_get_asset_nodes( - self, - xmlid, - options, - css=css, - js=js, - debug=debug, - async_load=async_load, - defer_load=defer_load, - lazy_load=lazy_load, - values=values, - ) - - -IrQWeb._get_asset_nodes = _get_asset_nodes__mp - class QWeb(models.AbstractModel): _inherit = "ir.qweb" - @api.model - def _render(self, id_or_xml_id, values=None, **options): - """Adds the active company to the context""" - try: - active_company_id = int( - request.httprequest.cookies.get("cids", "").split(",")[0] - ) - except Exception: - active_company_id = False - company_id = ( - self.env["res.company"].browse(active_company_id) - or self.env.user.company_id + def _generate_asset_nodes_cache( + self, + bundle, + css=True, + js=True, + debug=False, + async_load=False, + defer_load=False, + lazy_load=False, + media=None, + ): + res = super()._generate_asset_nodes( + bundle, css, js, debug, async_load, defer_load, lazy_load, media ) - self = self.with_context(active_company_id=company_id.id) - return super()._render(id_or_xml_id, values=values, **options) + if bundle == "web_company_color.company_color_assets": + asset = AssetsBundleCompanyColor( + bundle, [], env=self.env, css=True, js=True + ) + res += [asset.get_company_color_asset_node()] + return res - def _get_asset_content(self, xmlid, options): - """Handle 'special' web_company_color xmlid""" - if xmlid == "web_company_color.company_color_assets": - asset = AssetsBundleCompanyColor(xmlid, [], env=self.env) - return ([], [asset.get_company_color_asset_node()]) - return super()._get_asset_content(xmlid, options) + def _get_asset_content( + self, bundle, nodeAttrs=None, defer_load=False, lazy_load=False + ): + """Handle 'special' web_company_color bundle""" + if bundle == "web_company_color.company_color_assets": + return [], [] + return super()._get_asset_content( + bundle, nodeAttrs, defer_load=defer_load, lazy_load=lazy_load + ) diff --git a/web_company_color/readme/CONTRIBUTORS.rst b/web_company_color/readme/CONTRIBUTORS.rst index 71df9a76b..4159a702b 100644 --- a/web_company_color/readme/CONTRIBUTORS.rst +++ b/web_company_color/readme/CONTRIBUTORS.rst @@ -1,5 +1,6 @@ * Jordi Ballester Alomar (ForgeFlow) -* Lois Rilo (ForgeFlow) +* Lois Rilo (ForgeFlow) * Simone Orsi * Jairo Llopis * Iván Antón +* Bernat Puig (ForgeFlow) diff --git a/web_company_color/static/description/index.html b/web_company_color/static/description/index.html index 251ac0d3c..cf0ddca35 100644 --- a/web_company_color/static/description/index.html +++ b/web_company_color/static/description/index.html @@ -367,7 +367,7 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runbot

This module change navbar colors based in the company logo colors.

Table of contents

@@ -397,7 +397,7 @@ ul.auto-toc {

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -412,10 +412,11 @@ If you spotted it first, help us smashing it by providing a detailed and welcome

Contributors

@@ -425,7 +426,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

-

This module is part of the OCA/web project on GitHub.

+

This module is part of the OCA/web project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.