From 4515b261a9cceed224fc6fd385973dfedd0887f3 Mon Sep 17 00:00:00 2001 From: Daryl Chen Date: Thu, 14 Mar 2024 13:35:36 -0400 Subject: [PATCH] [MIG] web_favicon: Migration to 17.0 --- web_favicon/README.rst | 7 ++ web_favicon/__init__.py | 1 - web_favicon/__manifest__.py | 11 ++- web_favicon/controllers/__init__.py | 3 - web_favicon/controllers/web_favicon.py | 30 ------- web_favicon/i18n/ca.po | 62 ------------- web_favicon/i18n/ca_ES.po | 60 ------------- web_favicon/i18n/da.po | 62 ------------- web_favicon/i18n/de.po | 66 -------------- web_favicon/i18n/es.po | 65 -------------- web_favicon/i18n/hr.po | 68 -------------- web_favicon/i18n/nl_NL.po | 66 -------------- web_favicon/i18n/pt.po | 62 ------------- web_favicon/i18n/pt_BR.po | 66 -------------- web_favicon/i18n/tr.po | 62 ------------- web_favicon/i18n/web_favicon.pot | 60 ------------- web_favicon/i18n/zh_CN.po | 62 ------------- web_favicon/models/res_company.py | 82 +++++++++++++++-- web_favicon/readme/CONFIGURE.md | 23 +++-- web_favicon/readme/CONTRIBUTORS.md | 2 + web_favicon/readme/DESCRIPTION.md | 11 +-- web_favicon/readme/ROADMAP.md | 14 ++- web_favicon/static/description/icon.png | Bin 3398 -> 9455 bytes web_favicon/static/description/index.html | 14 ++- .../static/src/img/android-chrome-144x144.png | Bin 1674 -> 0 bytes .../static/src/img/android-chrome-192x192.png | Bin 2304 -> 0 bytes .../static/src/img/android-chrome-36x36.png | Bin 582 -> 0 bytes .../static/src/img/android-chrome-48x48.png | Bin 693 -> 0 bytes .../static/src/img/android-chrome-72x72.png | Bin 949 -> 0 bytes .../static/src/img/android-chrome-96x96.png | Bin 1213 -> 0 bytes .../src/img/apple-touch-icon-114x114.png | Bin 1275 -> 0 bytes .../src/img/apple-touch-icon-120x120.png | Bin 1267 -> 0 bytes .../src/img/apple-touch-icon-144x144.png | Bin 1508 -> 0 bytes .../src/img/apple-touch-icon-152x152.png | Bin 1570 -> 0 bytes .../src/img/apple-touch-icon-180x180.png | Bin 1875 -> 0 bytes .../static/src/img/apple-touch-icon-57x57.png | Bin 677 -> 0 bytes .../static/src/img/apple-touch-icon-60x60.png | Bin 736 -> 0 bytes .../static/src/img/apple-touch-icon-72x72.png | Bin 869 -> 0 bytes .../static/src/img/apple-touch-icon-76x76.png | Bin 855 -> 0 bytes .../src/img/apple-touch-icon-precomposed.png | Bin 2363 -> 0 bytes .../static/src/img/apple-touch-icon.png | Bin 1875 -> 0 bytes web_favicon/static/src/img/browserconfig.xml | 12 --- web_favicon/static/src/img/favicon-16x16.png | Bin 390 -> 0 bytes web_favicon/static/src/img/favicon-32x32.png | Bin 533 -> 0 bytes web_favicon/static/src/img/favicon-96x96.png | Bin 1213 -> 0 bytes web_favicon/static/src/img/favicon.ico | Bin 15086 -> 0 bytes web_favicon/static/src/img/manifest.json | 41 --------- .../src/img/master_original_favicon.png | Bin 7242 -> 0 bytes .../src/img/master_original_favicon.svg | 56 ------------ web_favicon/static/src/img/mstile-144x144.png | Bin 1820 -> 0 bytes web_favicon/static/src/img/mstile-150x150.png | Bin 1632 -> 0 bytes web_favicon/static/src/img/mstile-310x150.png | Bin 1514 -> 0 bytes web_favicon/static/src/img/mstile-310x310.png | Bin 3294 -> 0 bytes web_favicon/static/src/img/mstile-70x70.png | Bin 1232 -> 0 bytes .../src/img/website_favicon_sample.html | 84 ------------------ web_favicon/tests/__init__.py | 3 +- web_favicon/tests/test_web_favicon.py | 69 ++++++-------- web_favicon/views/res_company.xml | 20 ----- web_favicon/views/res_company_view.xml | 39 ++++++++ web_favicon/views/templates.xml | 10 --- 60 files changed, 192 insertions(+), 1101 deletions(-) delete mode 100644 web_favicon/controllers/__init__.py delete mode 100644 web_favicon/controllers/web_favicon.py delete mode 100644 web_favicon/i18n/ca.po delete mode 100644 web_favicon/i18n/ca_ES.po delete mode 100644 web_favicon/i18n/da.po delete mode 100644 web_favicon/i18n/de.po delete mode 100644 web_favicon/i18n/es.po delete mode 100644 web_favicon/i18n/hr.po delete mode 100644 web_favicon/i18n/nl_NL.po delete mode 100644 web_favicon/i18n/pt.po delete mode 100644 web_favicon/i18n/pt_BR.po delete mode 100644 web_favicon/i18n/tr.po delete mode 100644 web_favicon/i18n/web_favicon.pot delete mode 100644 web_favicon/i18n/zh_CN.po create mode 100644 web_favicon/readme/CONTRIBUTORS.md delete mode 100644 web_favicon/static/src/img/android-chrome-144x144.png delete mode 100644 web_favicon/static/src/img/android-chrome-192x192.png delete mode 100644 web_favicon/static/src/img/android-chrome-36x36.png delete mode 100644 web_favicon/static/src/img/android-chrome-48x48.png delete mode 100644 web_favicon/static/src/img/android-chrome-72x72.png delete mode 100644 web_favicon/static/src/img/android-chrome-96x96.png delete mode 100644 web_favicon/static/src/img/apple-touch-icon-114x114.png delete mode 100644 web_favicon/static/src/img/apple-touch-icon-120x120.png delete mode 100644 web_favicon/static/src/img/apple-touch-icon-144x144.png delete mode 100644 web_favicon/static/src/img/apple-touch-icon-152x152.png delete mode 100644 web_favicon/static/src/img/apple-touch-icon-180x180.png delete mode 100644 web_favicon/static/src/img/apple-touch-icon-57x57.png delete mode 100644 web_favicon/static/src/img/apple-touch-icon-60x60.png delete mode 100644 web_favicon/static/src/img/apple-touch-icon-72x72.png delete mode 100644 web_favicon/static/src/img/apple-touch-icon-76x76.png delete mode 100644 web_favicon/static/src/img/apple-touch-icon-precomposed.png delete mode 100644 web_favicon/static/src/img/apple-touch-icon.png delete mode 100644 web_favicon/static/src/img/browserconfig.xml delete mode 100644 web_favicon/static/src/img/favicon-16x16.png delete mode 100644 web_favicon/static/src/img/favicon-32x32.png delete mode 100644 web_favicon/static/src/img/favicon-96x96.png delete mode 100644 web_favicon/static/src/img/favicon.ico delete mode 100644 web_favicon/static/src/img/manifest.json delete mode 100644 web_favicon/static/src/img/master_original_favicon.png delete mode 100644 web_favicon/static/src/img/master_original_favicon.svg delete mode 100644 web_favicon/static/src/img/mstile-144x144.png delete mode 100644 web_favicon/static/src/img/mstile-150x150.png delete mode 100644 web_favicon/static/src/img/mstile-310x150.png delete mode 100644 web_favicon/static/src/img/mstile-310x310.png delete mode 100644 web_favicon/static/src/img/mstile-70x70.png delete mode 100644 web_favicon/static/src/img/website_favicon_sample.html delete mode 100644 web_favicon/views/res_company.xml create mode 100644 web_favicon/views/res_company_view.xml delete mode 100644 web_favicon/views/templates.xml diff --git a/web_favicon/README.rst b/web_favicon/README.rst index 8e5e28a735cc..6f0378d49a35 100644 --- a/web_favicon/README.rst +++ b/web_favicon/README.rst @@ -94,6 +94,13 @@ Authors * Therp BV * Tecnativa +Contributors +------------ + +- OERP Canada : + + - Daryl Chen + Maintainers ----------- diff --git a/web_favicon/__init__.py b/web_favicon/__init__.py index 185df0eec81b..69f7babdfb1a 100644 --- a/web_favicon/__init__.py +++ b/web_favicon/__init__.py @@ -1,4 +1,3 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import models -from . import controllers diff --git a/web_favicon/__manifest__.py b/web_favicon/__manifest__.py index ef1e90eb9732..96a6d1e17cea 100644 --- a/web_favicon/__manifest__.py +++ b/web_favicon/__manifest__.py @@ -1,11 +1,15 @@ # Copyright 2015 Therp BV # Copyright 2016 Pedro M. Baeza +# Copyright 2024 OERP Canada # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "Custom shortcut icon", - "version": "12.0.1.0.0", - "author": "Therp BV, " "Tecnativa, " "Odoo Community Association (OCA)", + "version": "17.0.1.0.0", + "author": "Therp BV, " + "Tecnativa, " + "OERP Canada" + "Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Website", "summary": "Allows to set a custom shortcut icon (aka favicon)", @@ -14,8 +18,7 @@ "web", ], "data": [ - "views/res_company.xml", - "views/templates.xml", + "views/res_company_view.xml", ], "installable": True, } diff --git a/web_favicon/controllers/__init__.py b/web_favicon/controllers/__init__.py deleted file mode 100644 index 7084537ab6e8..000000000000 --- a/web_favicon/controllers/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from . import web_favicon diff --git a/web_favicon/controllers/web_favicon.py b/web_favicon/controllers/web_favicon.py deleted file mode 100644 index a3d59463055f..000000000000 --- a/web_favicon/controllers/web_favicon.py +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 2015 Therp BV -# Copyright 2017 QubiQ 2010 -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -import base64 -from io import BytesIO - -from odoo import http -from odoo.tools.misc import file_open - - -class WebFavicon(http.Controller): - @http.route("/web_favicon/favicon", type="http", auth="none") - def icon(self): - request = http.request - if "uid" in request.env.context: - user = request.env["res.users"].browse(request.env.context["uid"]) - company = user.sudo(user.id).company_id - else: - company = request.env["res.company"].search([], limit=1) - favicon = company.favicon_backend - favicon_mimetype = company.favicon_backend_mimetype - if not favicon: - favicon = file_open("web/static/src/img/favicon.ico", "rb") - favicon_mimetype = "image/x-icon" - else: - favicon = BytesIO(base64.b64decode(favicon)) - return request.make_response( - favicon.read(), [("Content-Type", favicon_mimetype)] - ) diff --git a/web_favicon/i18n/ca.po b/web_favicon/i18n/ca.po deleted file mode 100644 index e8c1e44565b7..000000000000 --- a/web_favicon/i18n/ca.po +++ /dev/null @@ -1,62 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * web_favicon -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2020-02-11 22:13+0000\n" -"Last-Translator: Carles Antoli \n" -"Language-Team: none\n" -"Language: ca\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.10\n" - -#. module: web_favicon -#: model:ir.model,name:web_favicon.model_res_company -msgid "Companies" -msgstr "Empreses" - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Favicon" -msgstr "Favicon" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend -msgid "Favicon Backend" -msgstr "Favicon del backend" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Favicon Backend Mimetype" -msgstr "Mimetype del favicon del backend" - -#. module: web_favicon -#: model:ir.model.fields,help:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Set the mimetype of your file." -msgstr "Definiu el mimetype del fitxer." - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Web Favicon" -msgstr "Favicon web" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/gif" -msgstr "image/gif" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/png" -msgstr "image/png" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/x-icon" -msgstr "image/x-icon" diff --git a/web_favicon/i18n/ca_ES.po b/web_favicon/i18n/ca_ES.po deleted file mode 100644 index f6587487e218..000000000000 --- a/web_favicon/i18n/ca_ES.po +++ /dev/null @@ -1,60 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * web_favicon -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" -"Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: ca_ES\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" - -#. module: web_favicon -#: model:ir.model,name:web_favicon.model_res_company -msgid "Companies" -msgstr "" - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Favicon" -msgstr "" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend -msgid "Favicon Backend" -msgstr "" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Favicon Backend Mimetype" -msgstr "" - -#. module: web_favicon -#: model:ir.model.fields,help:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Set the mimetype of your file." -msgstr "" - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Web Favicon" -msgstr "" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/gif" -msgstr "" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/png" -msgstr "" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/x-icon" -msgstr "" diff --git a/web_favicon/i18n/da.po b/web_favicon/i18n/da.po deleted file mode 100644 index 7713498376ff..000000000000 --- a/web_favicon/i18n/da.po +++ /dev/null @@ -1,62 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * web_favicon -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 11.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2018-09-02 06:11+0000\n" -"Last-Translator: Hans Henrik Gabelgaard \n" -"Language-Team: none\n" -"Language: da\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.1.1\n" - -#. module: web_favicon -#: model:ir.model,name:web_favicon.model_res_company -msgid "Companies" -msgstr "Virksomheder" - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Favicon" -msgstr "" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend -msgid "Favicon Backend" -msgstr "" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Favicon Backend Mimetype" -msgstr "" - -#. module: web_favicon -#: model:ir.model.fields,help:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Set the mimetype of your file." -msgstr "Sæt mimetypen af din fil." - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Web Favicon" -msgstr "" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/gif" -msgstr "" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/png" -msgstr "" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/x-icon" -msgstr "" diff --git a/web_favicon/i18n/de.po b/web_favicon/i18n/de.po deleted file mode 100644 index b0695c774642..000000000000 --- a/web_favicon/i18n/de.po +++ /dev/null @@ -1,66 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * web_favicon -# -# Translators: -# Niki Waibel , 2016 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-22 10:37+0000\n" -"PO-Revision-Date: 2022-08-03 16:06+0000\n" -"Last-Translator: André Volksdorf \n" -"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" -"Language: de\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.3.2\n" - -#. module: web_favicon -#: model:ir.model,name:web_favicon.model_res_company -msgid "Companies" -msgstr "Unternehmen" - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Favicon" -msgstr "Favicon" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend -msgid "Favicon Backend" -msgstr "Icon Backend" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend_mimetype -#, fuzzy -msgid "Favicon Backend Mimetype" -msgstr "MIME-Type" - -#. module: web_favicon -#: model:ir.model.fields,help:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Set the mimetype of your file." -msgstr "Wähle den MIME-Type der Datei." - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Web Favicon" -msgstr "Web Favicon" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/gif" -msgstr "image/gif" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/png" -msgstr "image/png" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/x-icon" -msgstr "image/x-icon" diff --git a/web_favicon/i18n/es.po b/web_favicon/i18n/es.po deleted file mode 100644 index f7dbe679ac75..000000000000 --- a/web_favicon/i18n/es.po +++ /dev/null @@ -1,65 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * web_favicon -# -# Translators: -# Pedro M. Baeza , 2016 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-12-23 02:13+0000\n" -"PO-Revision-Date: 2021-02-17 10:45+0000\n" -"Last-Translator: claudiagn \n" -"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" -"Language: es\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.3.2\n" - -#. module: web_favicon -#: model:ir.model,name:web_favicon.model_res_company -msgid "Companies" -msgstr "Compañías" - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Favicon" -msgstr "Favicon" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend -msgid "Favicon Backend" -msgstr "Favicon del backend" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Favicon Backend Mimetype" -msgstr "Tipo MIME del favicon de backend" - -#. module: web_favicon -#: model:ir.model.fields,help:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Set the mimetype of your file." -msgstr "Establece el tipo MIME de su archivo." - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Web Favicon" -msgstr "Favicon web" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/gif" -msgstr "image/gif" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/png" -msgstr "image/png" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/x-icon" -msgstr "image/x-icon" diff --git a/web_favicon/i18n/hr.po b/web_favicon/i18n/hr.po deleted file mode 100644 index ccb4d1ffc17b..000000000000 --- a/web_favicon/i18n/hr.po +++ /dev/null @@ -1,68 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * web_favicon -# -# Translators: -# OCA Transbot , 2017 -# Bole , 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-28 18:03+0000\n" -"PO-Revision-Date: 2017-04-28 18:03+0000\n" -"Last-Translator: Bole , 2017\n" -"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" -"Language: hr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" - -#. module: web_favicon -#: model:ir.model,name:web_favicon.model_res_company -msgid "Companies" -msgstr "Tvrtke" - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Favicon" -msgstr "Favicon" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend -#, fuzzy -msgid "Favicon Backend" -msgstr "Favicon backend" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend_mimetype -#, fuzzy -msgid "Favicon Backend Mimetype" -msgstr "Favicon backend" - -#. module: web_favicon -#: model:ir.model.fields,help:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Set the mimetype of your file." -msgstr "" - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Web Favicon" -msgstr "" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/gif" -msgstr "image/gif" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/png" -msgstr "image/png" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/x-icon" -msgstr "image/x-icon" diff --git a/web_favicon/i18n/nl_NL.po b/web_favicon/i18n/nl_NL.po deleted file mode 100644 index d330c5a6a054..000000000000 --- a/web_favicon/i18n/nl_NL.po +++ /dev/null @@ -1,66 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * web_favicon -# -# Translators: -# Peter Hageman , 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-07-01 03:34+0000\n" -"PO-Revision-Date: 2017-07-01 03:34+0000\n" -"Last-Translator: Peter Hageman , 2017\n" -"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/" -"teams/23907/nl_NL/)\n" -"Language: nl_NL\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: web_favicon -#: model:ir.model,name:web_favicon.model_res_company -msgid "Companies" -msgstr "Bedrijven" - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Favicon" -msgstr "Favicon" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend -#, fuzzy -msgid "Favicon Backend" -msgstr "Favicon" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Favicon Backend Mimetype" -msgstr "" - -#. module: web_favicon -#: model:ir.model.fields,help:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Set the mimetype of your file." -msgstr "Stel het afbeeldingstype in voor je bestand." - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Web Favicon" -msgstr "Web Favicon" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/gif" -msgstr "afbeelding/gif" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/png" -msgstr "afbeelding/png" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/x-icon" -msgstr "afbeelding/x-icon" diff --git a/web_favicon/i18n/pt.po b/web_favicon/i18n/pt.po deleted file mode 100644 index 777011c27ee2..000000000000 --- a/web_favicon/i18n/pt.po +++ /dev/null @@ -1,62 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * web_favicon -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2019-08-12 11:44+0000\n" -"Last-Translator: Pedro Castro Silva \n" -"Language-Team: none\n" -"Language: pt\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 3.7.1\n" - -#. module: web_favicon -#: model:ir.model,name:web_favicon.model_res_company -msgid "Companies" -msgstr "Empresas" - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Favicon" -msgstr "" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend -msgid "Favicon Backend" -msgstr "" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Favicon Backend Mimetype" -msgstr "" - -#. module: web_favicon -#: model:ir.model.fields,help:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Set the mimetype of your file." -msgstr "Defina o mimetype do seu ficheiro." - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Web Favicon" -msgstr "" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/gif" -msgstr "" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/png" -msgstr "" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/x-icon" -msgstr "" diff --git a/web_favicon/i18n/pt_BR.po b/web_favicon/i18n/pt_BR.po deleted file mode 100644 index 064227f1cffd..000000000000 --- a/web_favicon/i18n/pt_BR.po +++ /dev/null @@ -1,66 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * web_favicon -# -# Translators: -# Rodrigo de Almeida Sottomaior Macedo , 2017 -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-06-22 08:26+0000\n" -"PO-Revision-Date: 2019-09-03 01:23+0000\n" -"Last-Translator: Rodrigo Macedo \n" -"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/" -"teams/23907/pt_BR/)\n" -"Language: pt_BR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 3.8\n" - -#. module: web_favicon -#: model:ir.model,name:web_favicon.model_res_company -msgid "Companies" -msgstr "Empresas" - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Favicon" -msgstr "Ícone" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend -msgid "Favicon Backend" -msgstr "Favicon back-end" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Favicon Backend Mimetype" -msgstr "Mimetype Favicon Backend" - -#. module: web_favicon -#: model:ir.model.fields,help:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Set the mimetype of your file." -msgstr "Defina o mimetype do seu arquivo." - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Web Favicon" -msgstr "Favicon Web" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/gif" -msgstr "imagem/gif" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/png" -msgstr "imagem/png" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/x-icon" -msgstr "imagem/x-icon" diff --git a/web_favicon/i18n/tr.po b/web_favicon/i18n/tr.po deleted file mode 100644 index c393295ab51e..000000000000 --- a/web_favicon/i18n/tr.po +++ /dev/null @@ -1,62 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * web_favicon -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2021-08-24 20:50+0000\n" -"Last-Translator: Ahmet Altinisik \n" -"Language-Team: none\n" -"Language: tr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.3.2\n" - -#. module: web_favicon -#: model:ir.model,name:web_favicon.model_res_company -msgid "Companies" -msgstr "Şirketler" - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Favicon" -msgstr "Favicon" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend -msgid "Favicon Backend" -msgstr "Arka taraf Favicon" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Favicon Backend Mimetype" -msgstr "Arka taraf Favicon mimetipi" - -#. module: web_favicon -#: model:ir.model.fields,help:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Set the mimetype of your file." -msgstr "Dosyanızın mimetipini ayarla." - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Web Favicon" -msgstr "Web Favicon" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/gif" -msgstr "image/gif" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/png" -msgstr "image/png" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/x-icon" -msgstr "image/x-icon" diff --git a/web_favicon/i18n/web_favicon.pot b/web_favicon/i18n/web_favicon.pot deleted file mode 100644 index fcf6fcc559c4..000000000000 --- a/web_favicon/i18n/web_favicon.pot +++ /dev/null @@ -1,60 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * web_favicon -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" -"Report-Msgid-Bugs-To: \n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: web_favicon -#: model:ir.model,name:web_favicon.model_res_company -msgid "Companies" -msgstr "" - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Favicon" -msgstr "" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend -msgid "Favicon Backend" -msgstr "" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Favicon Backend Mimetype" -msgstr "" - -#. module: web_favicon -#: model:ir.model.fields,help:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Set the mimetype of your file." -msgstr "" - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Web Favicon" -msgstr "" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/gif" -msgstr "" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/png" -msgstr "" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/x-icon" -msgstr "" - diff --git a/web_favicon/i18n/zh_CN.po b/web_favicon/i18n/zh_CN.po deleted file mode 100644 index a6bed85e4ccf..000000000000 --- a/web_favicon/i18n/zh_CN.po +++ /dev/null @@ -1,62 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * web_favicon -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2019-09-01 12:52+0000\n" -"Last-Translator: 黎伟杰 <674416404@qq.com>\n" -"Language-Team: none\n" -"Language: zh_CN\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.8\n" - -#. module: web_favicon -#: model:ir.model,name:web_favicon.model_res_company -msgid "Companies" -msgstr "公司" - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Favicon" -msgstr "图标" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend -msgid "Favicon Backend" -msgstr "后台图标" - -#. module: web_favicon -#: model:ir.model.fields,field_description:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Favicon Backend Mimetype" -msgstr "后台图标MIME类型" - -#. module: web_favicon -#: model:ir.model.fields,help:web_favicon.field_res_company__favicon_backend_mimetype -msgid "Set the mimetype of your file." -msgstr "设置文件的MIME类型。" - -#. module: web_favicon -#: model_terms:ir.ui.view,arch_db:web_favicon.view_company_form -msgid "Web Favicon" -msgstr "网站图标" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/gif" -msgstr "image/gif" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/png" -msgstr "image/png" - -#. module: web_favicon -#: selection:res.company,favicon_backend_mimetype:0 -msgid "image/x-icon" -msgstr "image/x-icon" diff --git a/web_favicon/models/res_company.py b/web_favicon/models/res_company.py index e101dced1259..6426293cbc41 100644 --- a/web_favicon/models/res_company.py +++ b/web_favicon/models/res_company.py @@ -1,19 +1,83 @@ # Copyright 2015 Therp BV # Copyright 2016 Pedro M. Baeza +# Copyright 2024 OERP Canada # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo import fields, models +import base64 +import hashlib +import io +from random import randrange + +from PIL import Image + +import odoo +from odoo import api, fields, models, tools +from odoo.http import request class ResCompany(models.Model): _inherit = "res.company" - favicon_backend = fields.Binary() - favicon_backend_mimetype = fields.Selection( - selection=[ - ("image/x-icon", "image/x-icon"), - ("image/gif", "image/gif"), - ("image/png", "image/png"), - ], - help="Set the mimetype of your file.", + def _get_default_favicon(self, original=False): + img_path = odoo.tools.misc.file_path("web/static/img/favicon.ico") + with tools.file_open(img_path, "rb") as f: + if original: + return base64.b64encode(f.read()) + # Modify the source image to add a colored bar on the bottom + # This could seem overkill to modify the pixels 1 by 1, but + # Pillow doesn't provide an easy way to do it, and this + # is acceptable for a 16x16 image. + color = ( + randrange(32, 224, 24), + randrange(32, 224, 24), + randrange(32, 224, 24), + ) + original = Image.open(f) + new_image = Image.new("RGBA", original.size) + height = original.size[1] + width = original.size[0] + bar_size = 1 + for y in range(height): + for x in range(width): + pixel = original.getpixel((x, y)) + if height - bar_size <= y + 1 <= height: + new_image.putpixel((x, y), (color[0], color[1], color[2], 255)) + else: + new_image.putpixel( + (x, y), (pixel[0], pixel[1], pixel[2], pixel[3]) + ) + stream = io.BytesIO() + new_image.save(stream, format="ICO") + return base64.b64encode(stream.getvalue()) + + favicon = fields.Binary( + string="Company Favicon", + help="This field holds the image used to display a favicon for a given company.", + default=_get_default_favicon, ) + + @api.model_create_multi + def create(self, vals_list): + # add default favicon + for vals in vals_list: + if not vals.get("favicon"): + vals["favicon"] = self._get_default_favicon() + return super().create(vals_list) + + # Get favicon from current company + @api.model + def _get_favicon(self): + """Returns a local url that points to the image field of a given browse record.""" + company_id = ( + request.httprequest.cookies.get("cids") + if request.httprequest.cookies.get("cids") + else False + ) + if company_id and self.browse(int(company_id)).sudo().favicon: + sudo_record = self.env.company.sudo() + sha = hashlib.sha512( + str(sudo_record.write_date).encode("utf-8") + ).hexdigest()[:7] + return f"/web/image/{self._name}/{company_id}/favicon?unique={sha}" + else: + return False diff --git a/web_favicon/readme/CONFIGURE.md b/web_favicon/readme/CONFIGURE.md index 182d9d5381a8..55777b6503aa 100644 --- a/web_favicon/readme/CONFIGURE.md +++ b/web_favicon/readme/CONFIGURE.md @@ -1,16 +1,15 @@ Upload your favicon (16x16, 32x32, 64x64 or "as big as possible") on the -company form. The file format would be ico, gif or png with 16x16, 32x32 -or 64x64 pixels and 16 colors. Highers resolutions or colors support -depends on the used browser, but most modern browsers do. +company form. The file format would be ico, gif or png with 16x16, 32x32 or +64x64 pixels and 16 colors. Highers resolutions or colors support depends on +the used browser, but most modern browsers do. -Note that most browsers cache favicons basically forever, so if you want -your icon to show up, you'll most probably have to delete you browser -cache. Some browsers can refresh the favicon, accessing the URL -\/web_favicon/favicon. +Note that most browsers cache favicons basically forever, so if you want your +icon to show up, you'll most probably have to delete you browser cache. +Some browsers can refresh the favicon, accessing the URL +/web_favicon/favicon. -You have a sample SVG that can be used as template for generating your -icon in /static/src/img/master_original_favicon.svg. You can also search -for some favicon generators across the web. +You have a sample SVG that can be used as template for generating your icon +in /static/src/img/master_original_favicon.svg. You can also search for some +favicon generators across the web. -To allow a user to edit the favicon it has to be member of group -"Administration / Settings". +To allow a user to edit the favicon it has to be member of group "Administration / Settings". diff --git a/web_favicon/readme/CONTRIBUTORS.md b/web_favicon/readme/CONTRIBUTORS.md new file mode 100644 index 000000000000..896e5f02fea7 --- /dev/null +++ b/web_favicon/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +* OERP Canada \<\>: + - Daryl Chen \<\> diff --git a/web_favicon/readme/DESCRIPTION.md b/web_favicon/readme/DESCRIPTION.md index 8822c7c00c1b..832607856f58 100644 --- a/web_favicon/readme/DESCRIPTION.md +++ b/web_favicon/readme/DESCRIPTION.md @@ -1,9 +1,10 @@ -This module was written to allow you to customize your Odoo instance's -shortcut icon (aka favicon). This is useful for branding purposes, but -also for integrators who have many different Odoo instances running and -need to see at a glance which browser tab does what. + +This module was written to allow you to customize your Odoo instance's shortcut +icon (aka favicon). This is useful for branding purposes, but also for +integrators who have many different Odoo instances running and need to see at a +glance which browser tab does what. The icon is shown also for portal users when the website modules are not installed. -More info about favicon: +More info about favicon: https://en.wikipedia.org/wiki/Favicon diff --git a/web_favicon/readme/ROADMAP.md b/web_favicon/readme/ROADMAP.md index 35cb8f442327..b4d00087cca8 100644 --- a/web_favicon/readme/ROADMAP.md +++ b/web_favicon/readme/ROADMAP.md @@ -1,8 +1,6 @@ -- Allow to upload some big icon (preferrably SVG or the like) and - generate all the icons from it -- Generate icons suitable for mobile devices and web apps (see - /static/src/img/ folder inside the module for a sample of the possible - current formats. -- Put the icon definition at system level, not at company level. It - doesn't make sense (as the icon is cached) to have a different icon - per company. +* Allow to upload some big icon (preferrably SVG or the like) and generate + all the icons from it +* Generate icons suitable for mobile devices and web apps (see /static/src/img/ + folder inside the module for a sample of the possible current formats. +* Put the icon definition at system level, not at company level. It doesn't + make sense (as the icon is cached) to have a different icon per company. diff --git a/web_favicon/static/description/icon.png b/web_favicon/static/description/icon.png index bc0090b3d2d9321a3f225477887f7f7d3e1c68dd..3a0328b516c4980e8e44cdb63fd945757ddd132d 100644 GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 3398 zcma)9^;Z)P*Pk>vN)QK1cS?6k3={-WVBkhfkQiM9>4AWBONVrKN+Td3BLybiCHmGTtp?gCBe+5WFDDgL09H;}~OKwHwobC@K*}E_KymBibfqkmGHdg*G zChEE#`|Fw^cUz(=5JA*I31pzrH=xlUZzV#FuXjLVxN2Hvf?FWqvSpeA#nILyP#ii@=25lRASa>RS=5KsaMw)b}m8Y-d&OD6teYQbLTZLqrf z%pUVmL0VT)t#AmD(Lk9sr8FZ>3kyhBGfO;h{d}?T__*(bAV`3gBuI&WSwK>X8d!rJ zRm$`;t8MVZZYD?2eGF7%qYG6Byi`K!n2Gk+9A!xq#idMiueM9xBG?J?sb`Vx{Vkl> zH>_*@a0Un-E{P)dA)#Ab26rpu40Y@={^Q8Rg*jc)Db9jiw#W_HK=nZws)rXG(08M# zZWd9kd)9rz!#~WA#-`>bz$c5KzGri_FKOXKL6dqu;!CprCew!JGaq>5_(`dqfw8Q9 z-V6xei>l+@D@Fr+E_|4hs{I+rzB!)_jvsuZlp1w?NMBS?-$E=$!NSZ>Je>zrTgx|# zii{m{je+P$XJui%9~Nr+ed%>w_s%wXu+{Qfar)vr;aA?=F%`A|?A*YoJIh_;oiqLM z`9GM=xi5`p@zPT9t?X|dBb>-HAHUcrSOJ_wTWYHnpyI=(K3nIzUw7>VU&swx+s1Lqy+TBX?3hEqbF;S69Uq7=n$Dm zvDIe>9Nhh%Nw(8vwsW^V=#sRYfg7!73=+zX09#4?2LCCdV@$$sj(SY zz<_bW8^Q3|q&cN+53hGH%rvSe_SYKfOY5mU|Hi}keq1mBmh)6oGecL_bdB8gO6uy9 zYV=7tH!-z>Xmnh?-{6|pD=w&b2xgbY=_KrZs8$2c=sse7YuAg|9lwIb-}Jz7a%DZA zv1|oXp2+rfZdkcg|MBhZ;@nI92{Q3Y*g!3IUfmHSeQDLJ+LK7U`n>+hWweAsZc7Hq`%g|| zdy6piO81&^pvw3L!CUW+{v$ zy+*nMk|r?cU}fwvi=u}Urxf#Y1h1G|CwiAWlX-NRurp<|PeiP6v4OU>Zwa(V^7X6T z{DlC~W{K;w{F_{T+gfbu?5A`;p`jx|q&4>d>~ZU|om#QD{NfGXNSjO4jf}zZ#h*lP zOJ~`DSE^;wQdfgiwjT9ie;q2}^Hil_G?oT67Cq9wPOZGh;(?vHh^Zy#=Fsr))huz_ z|Brayo>NXPqo2V?bj4S9-u}_5UC_Ik4g-1|>ahDYbJ8S~HeB?8Vb5(?u2O4Iqlo^adT#<)+Y!z&%-`$S@af!*i5hApY*hr8rP1JIV>j@#N4 zO@Z{m8}`MIVYe%O1*0Pe7DKc0vdD^MukZqwiM(yTs|E7Q*GBvf_DAF2SP&v0@=YSn zp`>|jIGn}F$!TWKT~}AvV=3S<+YA-UKIZ~WG%KcEwx~4I;`$Chn->+f?)d?%D!Pue z{zyBp5;$i5_r#d84IC7SBJD5I(^y-N-jdL~_6aE_;dmn`g@4k^Ic(3NRYg@Ki+WCB znAX*8E)0{500IAe&YEtIw*1>PmKM0NL!{%pZ)D1BlMna{nTHkGv8}>-4PrME^J>t2MAgES)*cj%GZp#wmi>fKsd9XHq|% zWps*Ev5Ym7wzNZaFevsGSt5bz!dzqiXdiVUI=|yYwb75E)xNi%>}F?YHNqwYo^<$f+4P&8-EQtPQ2qzD ztx424ALc-uK~f5ynl~KGpsyma-zcqmY=PmOuG_y4$h(rCkyCMMuBDE11*%Q8dc(nN zj<&nTbkS3=Bw*?aTsI-FpedzJ# z;G?I=;S2-;DbkDsU0poMD68C)LnpoS{<-XBz?5!VP2ao9A;}H2kd@622W76MBWA z61$-8r}9eu-K?bsB~1z|J5Pdjs2wFeFLDU=)O*+53A?slpNwuyL(aE�pi~x#&pE z^9nyi)_eO+_dnK7X{kEQEo3w}>5u}8d#h2tI%p3M`k|6fuW0Dq2{u8&`h4xbWB* zP79f(Z!ZPIVDvJ`{U5uhE6&YqkARqGOQnlh*Cd2w&j8tVb#?uh0Q<(Y@$qqayCAb< zJaJJ`(^`yrTlX*vRN#qtT4ZoALG{`wJx+z60OX8{Y?UY`F7Czq_fO@s4r*NPL#(T> zUv_T(5!a&!z{kf2{GF-JjVAJzXPj+xAY_v0PSYS#uKJh2x2h_N%ITp7yV)v?ZO{v5 zX&JAB>1xXnhB)AM~<>~1eO++IA<%%_JQuQxgc9euPIp(OKa(DpwP5TGI z-g^S^ch2_Ga6e>6%R`J(y_ zxaW-s$B~@X8L7?%Z|(0tDpkn^;0-*$qx7e6I|0fc1k1qQ?ptR0Jo$G7M-oG~h4b|5w6)#Lt{|DRJhqM3y diff --git a/web_favicon/static/description/index.html b/web_favicon/static/description/index.html index c162e143617b..3c71a3b27270 100644 --- a/web_favicon/static/description/index.html +++ b/web_favicon/static/description/index.html @@ -385,7 +385,8 @@

Custom shortcut icon

  • Bug Tracker
  • Credits
  • @@ -436,8 +437,17 @@

    Authors

  • Tecnativa
  • +
    +

    Contributors

    + +
    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association

    OCA, or the Odoo Community Association, is a nonprofit organization whose diff --git a/web_favicon/static/src/img/android-chrome-144x144.png b/web_favicon/static/src/img/android-chrome-144x144.png deleted file mode 100644 index 47cbf21afcea0e9dd6da61a2bb377010bcab50bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1674 zcmbW1`#TegAIG;gw{kx?8g^#!#n=fM(Z;YHq%m#?rk z)#_`Tm=0$SxfG!|nsUUn!@+XfwBa~A|H65m&-?R!UZ3arynlQb2L^a)9E2PM000_3 z-Z+B7%m0xoNU_JLx+Mw&C%XH)0|2dMhjwF>6b#HDczFPxzA;`>fLf||c!uJ6>K_3; zENjS$qg$X~Fy1dItqFhoUk_@*pRI_}%OnI40jfR&AQ9xfe7(bh;iwgUHz})d!pABV z08rxk;M{}B(<70BEFnVuxuAyxlJ2-I7r(2`O{#*$fQeDVliWSlwS@Z+@8J@KoR@CY#&_E|;u#n>ho#2% zE=9|E^DC71xJoalN=b=BVs@q(4N*K&Q z6RWmM>QF9}HE!IbZC)T5-LXYm=9#fE%9Zij4gOHiVo(}#G0s-jxNaSm{36l(J7N83 z{f%nLhGTfS6}RHzEF~h*RLm;BiZRlTgxI5|5w2s49mwV7DYcwctw-aOFxWET!L0q! zp^%)K{k0lVk%+D0`visKc1^GDeIX5&v2`ZLw8`F)sMDwMKm=vrT9aTlJmLqd#;1Qm zo)`rn6FQjV{Wo95lY8i)&%{9_hiS3I|1RpaZ zpqzA>XBkaK-tPN}|89(XI@0_$NqLCXQcC$Wu4Rx=xzdgtXP<%x8fVf+R^65Fr`4_p z4eK~u`ewmYLV14G#Ihd{$V=1>r6-rf!^U7Q2Z`TIICxb&x?Z5Gq zeac3Ecx=xTm7g^=N1RZpI=7BZ+ch9f&F_~VvV-wAX4IL7+xjlPX|+7Y%10+K`ay#$ zXFZ4Doa2x34XzKnlx>z!amZ8nBSLFTL%I*d;tKulL^CeI`u22N z)-uRvfnfYQ4=YP(-{%t!kCB`*MRL5C18pw91US2k!Aetr>;$?P#5B{BX$|LE|44(b z8k%zcXgY6S8@C|5alyIxN&*)1wk$nWLIe{&_AGhX_;L%6Aa-7YGb=Vob=_$VwLw|w z=7@GkN{Cl@^Hz8+PxEK1fp>Y94Y4&HCZLhex*uUfpyZY1 zO*?;9&I(y{A`IBDP>$Iy7kco?t4Zzxo9ABhVP89!Km-GostgB2li zQrR^X?_fT9n-3n$w~rFX&=VDlsE*YQ6McR$yk}6q^^{c4sfYI1yr}h)tALo*Ng+z4 zE!Jp@vICd_mr3ThbZ+L>cQMAT^0^v4qgI{0BjfHXxl{vOQR#Ygw^C1|GLEVtji$jU z_$m4=0V&U_!`3LY@J0LuAm^{`N<`D;G0m=!?7_or%T+pWaQk(;XYiGPK676dc`0Y^ou|H9dl_-2;=Kc}BVxy;Su_``N}!LY*&5uU+u4P$rB{l?L>*7XRf+y2WYo#D#8)g_HWE)i#)gnGBhes4ejKcLHp zS&mkHRwl{8}yLG`dw_FnNX%^=`Xb3x{p>KI}n> Qihc+9-~(_^JxG+l0npneIsgCw diff --git a/web_favicon/static/src/img/android-chrome-192x192.png b/web_favicon/static/src/img/android-chrome-192x192.png deleted file mode 100644 index 95dd0dfc4ec9765d3bb9d89b8a63056631659ad9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2304 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 DhW7Pu diff --git a/web_favicon/static/src/img/android-chrome-48x48.png b/web_favicon/static/src/img/android-chrome-48x48.png deleted file mode 100644 index 5a31a338d060f6a17028d9d2575e672cbd56e83d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 693 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaMM3p^r=fts&_Fr$;k>jEvTJ}?;m`m2 zYxml=HZH}>~3rzcIB#}u(Y4SPByoKv%Ry|FFae#S@5aKFjC>$^}pNs1+GRNRbHZ2wa!vO zvpBE&uGJgu=W`xjp4RtRf4BOQ`1w1xoZjWwQFy+=M?*4xLwoyQoxGp@i~476;`np< zRO7;4x5pcc3ZK2d@NTBeREu}aHL{O3XBRyyV~W53VcS!kr(71Qd)QB8-fKTLscD&R zWw6W2)x7We7oARAFy+vhUk#>jCwc5$UJ$%8I5V*58GDzJ>bs-=89l>Ka7ZoSP?1&v#wwvD|`(gNm}c_UW@om=#x(r{sP@XhIK z=UhBpnmV^z6BH7!(Enkt?y`m^~sl4f6e2- z1(_wfLU*!eZ7mNx-TQSO(>BJ5jNjv>h3|13;c$JiYtNo^gTH&~-aYT%CSt$r1NU0L WEWW$<`gMTO&*16m=d#Wzp$PykVK_Vh diff --git a/web_favicon/static/src/img/android-chrome-72x72.png b/web_favicon/static/src/img/android-chrome-72x72.png deleted file mode 100644 index 1e22c5202db42c05305214335f65ab51d1fba717..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 949 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAifOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM%A+0*}aIpyul!%;=;sy8XTWx*tMG~$ktZ;G0<3vk|4ieh9@&` znAa_lV@Sl|wGlTbEm07d;+*GbGvWXL zOQqIkX|tHNm~6YZ%w1SZ`*o4TuVvRP12+rnZcS)hRvCJ@__K|!&*?weLGMpz%um#` zmYOK7#yQtUu1((O*}Tl=)<;vGcv~+N;9K{R?HRM{+qvPv6C{&!_UxI`t)%QLzpg*o zeC9>9?dz&-p16xuNT=WX?0kE+hwE53 zv^Selpa0?`dy0nSDQUeQHBM`ib;jy)bX-LBja zh~pA^q2ci9qNb6jL*7(l59?Fkm301EZ|Z3T+{PB{>d^Z*w&CIvrh^hX!k+J%U zyk6H=Jt}sg%j@NdH1%hr~&;^JdImoXFs_S+~gE#w>sN4i>d7e`@Sv f9+iAO`JVs8<_`}ZiMQzklRtx}tDnm{r-UW|BNMV+ diff --git a/web_favicon/static/src/img/android-chrome-96x96.png b/web_favicon/static/src/img/android-chrome-96x96.png deleted file mode 100644 index 63ba2618c2cfd688f316b15c446e70b325f416fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1213 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy#B(j9#r85lP9bN@+X1@ak-gWR1M z)}51i3FL4VctjQhHD3o|MkkHg6+l6c0G|+7pUlF=uHBTQeeESHfo6)A1o;IsgqmeM z=eflE=i6j4?S=Q`HokY>SAL>JCZ6L30|WDIPZ!6KjC)(7-Zm{(;1OZ`876Syd;R6? z?|I*E#Wgj={4+OEnd!;4eC4SfGfzHzyh%&)#x57%^3%&5)y~ZObLh&?te~|Y6=v^v zU%NQ3^84TGS6+4Od^+!a)x`9ZSBlQuO_Y#2T$y|Dt88M%wDh@OWe&c+Yu_sy9i5fF z{+wB~hx5%@&2!H#o3r+-y?f=ihy$zzA>cG*KPIY+f(+v*?so(=QhvsKwq_{AYep^VL&dEl-6sS@p$Tt&iCJ{oK(# zab;Y$|9{=T*=W7RuKYG`#T_@xRu#|G+?4C}VY1{=b$@wpO@Z$d*$PGO$cwQUIxE$+ zD9OvV#RXgtJL=(A5Oym6?tzV5Q#bM)yxsWhQN>@yz`ZXtPBevH`Xj_J>7j%62ic?U zy6cz{mUJyNs~2UO)aa0r$lVKmMEt4Ro|S2!|&3!P^MiRU!Sxl zdoXx#a5i>c+05(MXEXmz)$W#kmg0|uxZR%ZHVb*NzD@Q`(>&>>%YRmg^*-5mScs)U zxZusMud)n{%jPr8I5k&^ktM4#Y9iZvPbLQO*GCpqzn&ud?`ZAGWetZab~CaHtC_Cy zO1u&{S*C&^V7XA&0|^O7iJ2)H>^Uhjoh~2dGL3qZW5Tgvx@Lbf*NVxHpE&fqJ*>1~ zxy*?fnK4t}%`a+q|GmxT zaL`$E9r>%1c)Fa{tO!?dIvQllbp8Y1kITMJ*SqX|qaJyyCPjI#>tej@6#szX-jw|& zzrABzuTIz==Ja$?fol2ZmY0_K2@TwFr>3(gZ(JPoon1F?$FtJ`C%q$jwL9l~v1n@4 zte)4{{b;kEjfu{-RoCkueZBH&`hJxiOZTbdFa=#`HPDN^)_G?0*3UkZ&aL@#hQZVH z_t(P{LK-(NSU2Cm!AkJuvD>HIFFjy;8rAo)|Im^`=Re|G_9^OfEL`$6_uv0t_4h8F zwb`J(cGBzUty|&_>-(>{U%zHy~gxew2uEKC2s_T$N@ zv`afIyCSd4D^9<%(Y#A(;hw+Mw{}kBn!V0`O~Sl;KP_6`yYmU9FP!o0_WcVpX6`y; z7wNW&{piKO_!k_X7kG+KpUV34_h@~ diff --git a/web_favicon/static/src/img/apple-touch-icon-114x114.png b/web_favicon/static/src/img/apple-touch-icon-114x114.png deleted file mode 100644 index 0aaacd34759dbe8b2807d5cec34d86486ba85902..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1275 zcmVPx#MNmvsMWaQFxpJqaNsiN}$oKE{`}g{?VVwW}|EW%q ztW=fn-RkDb-r2Ix;KA7b{Qm0Gu;hL7JpUztGu_BE6GjNHh~;NS+lL zlxdG6$Uw;np`jl+OL9u&+==u~lasQ#E~K}oiFYS*9Y}8#A#Y=XNT zR$2~7d7bybz9iiG@UJs|a!$Os%jACOZ$$#uFc;2G1ufK=~Bs`uKGON=c6 zgRk*Q_mP-;slq5SC`>4T!lD~RIw(gRkmgcS6Pj685!1hrFi;^BOowGi+2RJGcqb%OPKpaEIb+ zvV(|1-mR#PEV*Hh*%%N0_kWAs(bq%%K$fg|Pj{_>uSpZKqfgK?l4{$Tv+@^zc2x)> zyFR-41t_<)Ji9n#27-A2e?u2`TnG_{Ewy1u_N_U|TpxJpjfE)w{E8Pbu&w@uV@K{d zfMTt=l9DuKc9)!}Y)u`3Mkhh$yFr0+A28XA^fKa4Efy!%oO`p8Nzbbb9UalJz>uIttwAf$~z)4P2O-F~ZZzb3B;Mh(VsnzsnC6~Ft l`x*+LUFQ$-gZ%f9zW_-L^cyqs0oVWl002ovPDHLkV1innXb%7Y diff --git a/web_favicon/static/src/img/apple-touch-icon-120x120.png b/web_favicon/static/src/img/apple-touch-icon-120x120.png deleted file mode 100644 index 3909ec7f00c5abfa485b3122c3e7d180ee73a1ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1267 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 KMNUMnLSTXlDCzD1 diff --git a/web_favicon/static/src/img/apple-touch-icon-152x152.png b/web_favicon/static/src/img/apple-touch-icon-152x152.png deleted file mode 100644 index 93fd730ba9c06dac2a7124e89fd315e57da044ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1570 zcmV+-2Hp9IP)0{{R3FC5Sl00004XF*Lt006O% z3;baP00001b5ch_0Itp)=>Px#MNmvsMgRZ*tyY$^WS*o(jHXJC`}O(3gR!GUi~jum zs!)>Nyw$sQsqfwD_wV)c=I_m#z|y70uw9wRkh$vAvCii6Z>InN1$#+E zK~#9!?OfTiQ>!F7pdg!5t{wLIT z!+MO12~ub+X1ND59_x_$PlD=(ZCb+YwEY*U6X3oa>u13AX`RfhmCccIayepmGpytn z>GGidCN0b{+{d?W9d~V!q~)@uTVM@`5z11?1>YXpFiCC6r1!Sa`V*G2Rn!z(J*+Qi zVQXUsoxcL>OV^g6ffQGx?Nw6p;Pz{26qbXuiM;Fz$}*Ake45rB!t#+Dxy*A|wB;l& zac;Y^%p^Ak_42djr}?r=>si(77m14|&`r*^A$RnbyqC7E$W8Ugx`w!}@T{9!;yRJ} zO1*E4>$HHa&K{j@O>+%0FKl~~^gAF*dj}cny_pOt&eHBj3Lf?|8>ii0n&>q85&ip0 zoJse#4k@KB4RQ6O*_~=-njWe6YBoNm?>YKmX4OK?kP7C)5&K*|bp+(c8GN+eFDO`M z>k9cg%CI$Fn481ET8nDi#{~mTVsoby%DT0ClmKwK)rhprsi?Pvu)RAZ*VPn@A*&?C zpV1UQG$fP@D~XYsOQg|p=zob}dP)580D@&DhUuEDurEaf2$mHXrpKz{LlIe-WfQDl zOKnl4aLE-}Hb~wm1R4OS{#|G$$g-jsKprdfNz3(0;0kHV3|Q6yo#UvsO?9&DO|{ivi<7eIAChd$ zFqma|9}B4%3&Y^6Sj39YDL7`9JSVGUkctJajs}$I1` z^jisVe>-2Vam&XqVkL(>3uDt$k_#+(CM(Ye3@|Y@y+4w-WWDkMgOn^Im{4`Uaw=JP ze`3Ew_rYK^158$hN_0<_|DXN+iM$&#tWE#C%E0o^+0 z`APZei2lQX{bxmalU2U*%0GY9j{#OGsh&S@dVZiNzEkf?$$3`-aZjKEbDYrykc%0r zwQ$B`FR!T94>TUed)(MTt`Y^lc{Jb-cN;kw5qw!vr2h+GE{ZL$d>x9MzCm3#Hd#Wo z!CXrfsw)UChXK{@#tJU8*(J~s(pya#iplvymAiZ{1{FMV$tX3cR5e|Duu0FtGO*M+ zRhcpm%OHlit+w2K-N}MIN2oOdHX!VB)t7Zkbu$T)W%Yy{u4My`3#EMcD5%%_;f?y&g)N{2~m2TP1>-{2Jph3^A^L zGJ&v4OO5epWAk5w^J12>aKy2Bdbo1WqJbLe0iJg^0IL}-yknUqR3*{v*MIiPo+!Wa=+j(EG$gJ?lX~?7OrcWm|DCNl8%cHaX4JcS0m3WPnVQ- z_^!#b?hTsOuzm`3Cqq-BIjk>e+d^WS3)5XMMD=GjJL9lvIo|XD(=Tje5HL7BhiMz` zf9k96;t5U)_Z{AuWbS6%hVJz#>bn%TV>DqulU=R;d9iJa>2shSdg!5t9{MBcFY;~+ UAH#I9{r~^~07*qoM6N<$g3rbVO8@`> diff --git a/web_favicon/static/src/img/apple-touch-icon-180x180.png b/web_favicon/static/src/img/apple-touch-icon-180x180.png deleted file mode 100644 index 2899fa5da80dccdf5e8cf0a43bc8d87d02102773..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1875 zcmV-Z2dwysP)Px#LQqUpMgRZ*wrisM_xjMF#QyyKvSFO9SC*qii=;=4 zsZNmd=(%AJfUob~>)W@|)~w6BcdE*jyy3#x=F8uWc*1G`00yr~L_t(| z+U;H0mg6W4ZH&Qe#u)7X|J6yVt9$CqR7CDd%YWp7J_mVh(|ZA)+$ppAKisckbd--J zf0rd*_W%I?gWIZ*w(B)zTBXn!z<+_OaQI7)ol8+K)nbKQuTqogEXpoTVstpCOCYx_ z@|Wd~!(sa)+ND$M*wvCvzCT%k8=}z0if=jS*{>F1yM>!VcWJxyv| z7WY>kbfRSSEF&p35Wyyp~Bo7c8915H)coW&jWo2H#!@yH0FVyT_L zsdER{iA|RAOO0A+E4#?IdDo;%jaukV%xE$tAWuy~EVL=zBquIqMlQ7%m@`Pg-Q(i* zf?DbW@l%Pc_DS&4`dx5z(7IA~qEhq9VdOo5)yigcr-6;uxAjcRzwi=`5Ts zPVkNi!h42U!fIW>Us?4yNy9~q-3#5O+G!eNUm>tU3g5X| ziv0E+PDd@Uxn=l5BbFNQFJNv+t7E$(&rEe}#6R2sm-eSM>)Oy%**qUSg#`lo|jXe*QG~r7T!}{RCC30P&^$`Ac&hXuwdLw_Irev~AUC z!>Q8%J*MCCAj)Rzp)Rx2ko8c_&LuE{4$aO5aO07$BL(t^xf!(Ji}Ik@BQ}SonlGM) zqP)<28W=MdD4v$>>DGRgZ!xJov5i~-^$aQI*-jy_7ja=7)ZzfnAAh6^CaZp2EV>30*PW4-W0sne;q%-MT8tN zHKdf#{(|2#m};;J(4@X2!Qslm8yDyv5WZ$6UuwAA5;C;#g}xznFo=o|@OlbVYU)c{ zM1jfC{~NSf7p9U2bi=TI&|cdjDhd%+7E%AG=oDmCBA{4Fa@$Cov^s(FyyA9YQ6~$iX^(04wTm(8U_K zK88-zILvrb3)wN!)hmtc-mR#Lk+?P#)!a=#B^>6OI0xGzXJwn0!M3?nl^@N>rCv;I z$r;fNMRggeL$|7`RJ+(dVOzIMr3*XIZG$#eHE_)ik&YP_04sK{YnD@HDj_`oQX_ZwC%`G=P=;qH)*gC#yX#SWMS=EEx7LuK{ z4f;lfefEXfGYX+%w=Agqz1O3L_*X=lZ2-D{w?BqDdj=TD-IOyhO8%;=u z2!b0DAI74l;oMvtiJEF;o*TH>U80~l@>wj1*Jr$&70(QTv4ddXunzIsIBUscZg zb?@iQ?x-f|KAxbt^y!?Z;ZDd0ihgT_D96Q!KP|UAWrSydKFP_n`Zs!jYkJbTPr}iB zyS_@ql2-SQFNV#2dosK60scAg_R9-rn}5?6&ThHomRoMQ<(6AO`3I66ZCQXo7SaF! N002ovPDHLkV1mYJt!e-O diff --git a/web_favicon/static/src/img/apple-touch-icon-57x57.png b/web_favicon/static/src/img/apple-touch-icon-57x57.png deleted file mode 100644 index 1f06b9f29d29d5c90410023fa2a4992d4fd919b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 677 zcmV;W0$TlvP)Px#QBX`&MgRZ*^5*aU{Qjv6DC zvt*vTcdE>ozUIr{zkaTyMvU*?>-X>V_3QH8xzpmr+qP|^$B($#vd`+&Y4ax;Y^(`WujZrM5XPq1`^!1m)%v%nYqF?Dsv23 zQJaQbe(G!I8=WJTfz!P_JU~Kmy$S?G#9ZML)HPxC?%%gs8 zSuaSB8yW&HF-v|_4|MBNHPnxb*-C?{ z;SC4XfL9#dJ8)O2u{?r%Gdfz%AP0AqIca-=8${SZ;rfU3|I)Xv+?{-$NJlB{$Taif z#L`Cbe$o-qcoWat%na=@UIpH>k=+t23!vCLxW}rhC*9)prZL}wuYYUU-2DG_i|%oU zaiVwMw+-Q{xC{^ejPG&hFlhCW#S`Aouj2Ur-u9pWt+5B8uYZg$g77SP%Gq^V00000 LNkvXXu0mjfA@x*5 diff --git a/web_favicon/static/src/img/apple-touch-icon-60x60.png b/web_favicon/static/src/img/apple-touch-icon-60x60.png deleted file mode 100644 index 715f3339829524b03b2c62ccaf958a34e074a9d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 736 zcmV<60w4W}P)Px#T2M?>MgRZ*{rmm<_WJno_O4l%s7#NxY@?$^i>gqP zq(+SI-|MAGjk02#>(=GFcB$yk;m@7I{{8;MiM6z6px(RG)27Gb#M{AxvA=(>^XKr$ zkh$5h&i3u|%$UBl;OH6v00JaQL_t(Y$L&|yc7q@gjRXZ00TGD{{{L?_Ij5CD0coE* zj{_HmJ1dXJzkJK!?DQIO-BH}=sek?g>a6B9BR|4uGqqJ2beYDEoQ3MX0PYlLBqnri zZ=jWJ;?R%q4P~$0Ym$+Ab!luX7|DxBn%+0$R+dTB_Jh{(I2uhXUuH?!7) z(=!k2)!|dP2d{QP)nlk!zX=+0zFo+|K|t*7;Mb6x0}t}kvk^3!2|1jW4bB*D!O={+ z8#mHEIC%z3I+}oOle)U6c~_iS!SK}z==)Rv8t}9U_!yX^l93Nd6)0vkU($IaY0N$l zAbT#^J*~_KiuTbXbLnpUCHheMCv%qrx1R9kPBH&W9A8W+yQo?|vJz>7`jagSYu<=mNg+U^HYP@1erONnXQ>>2U5@X?> zFB#LqOuZCX65|F$PFN&TksSn+1>Jm3%n(md=P2YAmJ+r{yD-{8SD1q>8(8U71dS9h zuC^)nztQ?a`J&;NGM`R2!3;AR6gG^Y`%;-HjUU5=S-!)(T8s#X4K-XG!NW$%@T@jt zHZ@~*-=HnMHgXo3QFyE?3|n0?7+@RE)~NuEO)A$ndWYpUT^%jYLYe5ZW&M>go$fAQ z;*d!VpPi8RbFbT)$nEc_DVx}zb`7R4M#o*EU;Gl}=a)dc&o|*UN%#M8`jIaj12vs; S26k-#0000Px#R8UM*MWaQF@#OBZVVtg7m;U_yt5cKs@%I1!|D{Qd zs7;W@jknL9!ri*mz=5y5d#wET`nPSP%a^|Y{{OUSq1m&~>(%AdsL1Ed;O^Y%;=|gy zb*T00@tXtxj~P8^m_Y>Tk-dmDfbEosV@NK?K* z22RIdpFmf0Ps9u4B0=X2eXjus7Qfw}K?jVW2Ov0&vv>xfoX!Bm?p4T|g>_>91Y1lM zNDq#30YEThS0Z8*9L%qPTmmF3Lqi_PM2oKQW zZfb-EI<$-Fd#VC4c8a^uT0+6r_~7Ked?ZUnsqb&#X^k)lE)B0x`NrM7Erj zH^*VTnj>=byyEiM$U1r4tO=dXeHE!alFHw@u7YDScMqNKY@F2`bdaOymG;dPzr3~F9P`2#}g{eZ}GxhkJD#OB5pWvgSSUhNx? vEFW{axS?rf*U7dS+_Jy-$nx`|_3fbFQPF9c0n|D100000NkvXXu0mjf!bzjj diff --git a/web_favicon/static/src/img/apple-touch-icon-76x76.png b/web_favicon/static/src/img/apple-touch-icon-76x76.png deleted file mode 100644 index 490ff715a5383f679b0d08e2051e91c048e778ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 855 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 diff --git a/web_favicon/static/src/img/apple-touch-icon.png b/web_favicon/static/src/img/apple-touch-icon.png deleted file mode 100644 index 2899fa5da80dccdf5e8cf0a43bc8d87d02102773..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1875 zcmV-Z2dwysP)Px#LQqUpMgRZ*wrisM_xjMF#QyyKvSFO9SC*qii=;=4 zsZNmd=(%AJfUob~>)W@|)~w6BcdE*jyy3#x=F8uWc*1G`00yr~L_t(| z+U;H0mg6W4ZH&Qe#u)7X|J6yVt9$CqR7CDd%YWp7J_mVh(|ZA)+$ppAKisckbd--J zf0rd*_W%I?gWIZ*w(B)zTBXn!z<+_OaQI7)ol8+K)nbKQuTqogEXpoTVstpCOCYx_ z@|Wd~!(sa)+ND$M*wvCvzCT%k8=}z0if=jS*{>F1yM>!VcWJxyv| z7WY>kbfRSSEF&p35Wyyp~Bo7c8915H)coW&jWo2H#!@yH0FVyT_L zsdER{iA|RAOO0A+E4#?IdDo;%jaukV%xE$tAWuy~EVL=zBquIqMlQ7%m@`Pg-Q(i* zf?DbW@l%Pc_DS&4`dx5z(7IA~qEhq9VdOo5)yigcr-6;uxAjcRzwi=`5Ts zPVkNi!h42U!fIW>Us?4yNy9~q-3#5O+G!eNUm>tU3g5X| ziv0E+PDd@Uxn=l5BbFNQFJNv+t7E$(&rEe}#6R2sm-eSM>)Oy%**qUSg#`lo|jXe*QG~r7T!}{RCC30P&^$`Ac&hXuwdLw_Irev~AUC z!>Q8%J*MCCAj)Rzp)Rx2ko8c_&LuE{4$aO5aO07$BL(t^xf!(Ji}Ik@BQ}SonlGM) zqP)<28W=MdD4v$>>DGRgZ!xJov5i~-^$aQI*-jy_7ja=7)ZzfnAAh6^CaZp2EV>30*PW4-W0sne;q%-MT8tN zHKdf#{(|2#m};;J(4@X2!Qslm8yDyv5WZ$6UuwAA5;C;#g}xznFo=o|@OlbVYU)c{ zM1jfC{~NSf7p9U2bi=TI&|cdjDhd%+7E%AG=oDmCBA{4Fa@$Cov^s(FyyA9YQ6~$iX^(04wTm(8U_K zK88-zILvrb3)wN!)hmtc-mR#Lk+?P#)!a=#B^>6OI0xGzXJwn0!M3?nl^@N>rCv;I z$r;fNMRggeL$|7`RJ+(dVOzIMr3*XIZG$#eHE_)ik&YP_04sK{YnD@HDj_`oQX_ZwC%`G=P=;qH)*gC#yX#SWMS=EEx7LuK{ z4f;lfefEXfGYX+%w=Agqz1O3L_*X=lZ2-D{w?BqDdj=TD-IOyhO8%;=u z2!b0DAI74l;oMvtiJEF;o*TH>U80~l@>wj1*Jr$&70(QTv4ddXunzIsIBUscZg zb?@iQ?x-f|KAxbt^y!?Z;ZDd0ihgT_D96Q!KP|UAWrSydKFP_n`Zs!jYkJbTPr}iB zyS_@ql2-SQFNV#2dosK60scAg_R9-rn}5?6&ThHomRoMQ<(6AO`3I66ZCQXo7SaF! N002ovPDHLkV1mYJt!e-O diff --git a/web_favicon/static/src/img/browserconfig.xml b/web_favicon/static/src/img/browserconfig.xml deleted file mode 100644 index 08e3c8951768..000000000000 --- a/web_favicon/static/src/img/browserconfig.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - #da532c - - - diff --git a/web_favicon/static/src/img/favicon-16x16.png b/web_favicon/static/src/img/favicon-16x16.png deleted file mode 100644 index b9f30800c257dee59bb854cd72c7f2b3e1994aed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 390 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM*uE0G|+7pUlF=uH95bM|K7o01cNa3GxeOSl6^b=Hc@{tbXsERD>=~>RkR~ z_YM89;%E!C?0!C=D$W9r$YP-TuY)k7lg8`{px_Ko7sn8Z%c1_BLWdQ2iW?HPwK#0M z_P;)Zb&2s>eyP*bc$Aci-q(c8D=oQ_9T--1Gxy~l1CH_wGj{Oa-59&xW^rI&lEBU2 z$@8pZCUSktl(AlTktN`Z$Q|R28~*d@P5Wj3K_R7HXH}%y#IKgK!X`S&o%dT-*c|)e ziOIjs_YCjd@OG2gyj^CiSgTe~ HDWM4fzJ!|p diff --git a/web_favicon/static/src/img/favicon-32x32.png b/web_favicon/static/src/img/favicon-32x32.png deleted file mode 100644 index 8e73a16390f07e3927f45e085cae2e8ed067f4bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 533 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaLr1AIbUeKHFdyLM9%9oZRV05n{xB*-tA;fnh#mOIaXe_VOE)mW2PsZcy@ zORCL;>eJDlIrjZPRh$JLk;OpwUk71ECym(^KsTy;x;TbdoNf({p46hi!&13gL*bRk zcl#H+CO0%iU5@uiT0WVtMdU}`>!m@nW?4+OPWyh5bK#4G*&jqQS1H^H`I{G#wcyOs zb2pZ=e_7h|cZvI#6A!1?EVfU(Ef#o6^1{aF8(#kTc(OLaz;)+(hR$8g`nEf3zUwC+ z{#=!-op7u`L*#(`tAiFRoYI9J9;q<43|OaR=&)hiV*U?{6%8KMWeMA`XfU?lIBU~) z#U*vCE}Otd>xXMu5+j`Ubj&%B=s0bmqR_VsEKZj#4Bxd{*lOpxDM zcVx!w7p;pA?~pm4b^Ln5ey1I>7jk6!b*1&s%013YiS+7k`Ba(dANkPG*`{OFw0&9G zX}kDNpEaNSx<}`|Bj>hHzuS891bbP0l+XkK D+M4Dc diff --git a/web_favicon/static/src/img/favicon-96x96.png b/web_favicon/static/src/img/favicon-96x96.png deleted file mode 100644 index 63ba2618c2cfd688f316b15c446e70b325f416fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1213 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy#B(j9#r85lP9bN@+X1@ak-gWR1M z)}51i3FL4VctjQhHD3o|MkkHg6+l6c0G|+7pUlF=uHBTQeeESHfo6)A1o;IsgqmeM z=eflE=i6j4?S=Q`HokY>SAL>JCZ6L30|WDIPZ!6KjC)(7-Zm{(;1OZ`876Syd;R6? z?|I*E#Wgj={4+OEnd!;4eC4SfGfzHzyh%&)#x57%^3%&5)y~ZObLh&?te~|Y6=v^v zU%NQ3^84TGS6+4Od^+!a)x`9ZSBlQuO_Y#2T$y|Dt88M%wDh@OWe&c+Yu_sy9i5fF z{+wB~hx5%@&2!H#o3r+-y?f=ihy$zzA>cG*KPIY+f(+v*?so(=QhvsKwq_{AYep^VL&dEl-6sS@p$Tt&iCJ{oK(# zab;Y$|9{=T*=W7RuKYG`#T_@xRu#|G+?4C}VY1{=b$@wpO@Z$d*$PGO$cwQUIxE$+ zD9OvV#RXgtJL=(A5Oym6?tzV5Q#bM)yxsWhQN>@yz`ZXtPBevH`Xj_J>7j%62ic?U zy6cz{mUJyNs~2UO)aa0r$lVKmMEt4Ro|S2!|&3!P^MiRU!Sxl zdoXx#a5i>c+05(MXEXmz)$W#kmg0|uxZR%ZHVb*NzD@Q`(>&>>%YRmg^*-5mScs)U zxZusMud)n{%jPr8I5k&^ktM4#Y9iZvPbLQO*GCpqzn&ud?`ZAGWetZab~CaHtC_Cy zO1u&{S*C&^V7XA&0|^O7iJ2)H>^Uhjoh~2dGL3qZW5Tgvx@Lbf*NVxHpE&fqJ*>1~ zxy*?fnK4t}%`a+q|GmxT zaL`$E9r>%1c)Fa{tO!?dIvQllbp8Y1kITMJ*SqX|qaJyyCPjI#>tej@6#szX-jw|& zzrABzuTIz==Ja$?fol2ZmY0_K2@TwFr>3(gZ(JPoon1F?$FtJ`C%q$jwL9l~v1n@4 zte)4{{b;kEjfu{-RoCkueZBH&`hJxiOZTbdFa=#`HPDN^)_G?0*3UkZ&aL@#hQZVH z_t(P{LK-(NSU2Cm!AkJuvD>HIFFjy;8rAo)|Im^`=Re|G_9^OfEL`$6_uv0t_4h8F zwb`J(cGBzUty|&_>-(>{U%zHy~gxew2uEKC2s_T$N@ zv`afIyCSd4D^9<%(Y#A(;hw+Mw{}kBn!V0`O~Sl;KP_6`yYmU9FP!o0_WcVpX6`y; z7wNW&{piKO_!k_X7kG+KpUV34_h@~ diff --git a/web_favicon/static/src/img/favicon.ico b/web_favicon/static/src/img/favicon.ico deleted file mode 100644 index cdf7926f95255e6b02c27a8f1b2d93781b24b47d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 zcmdU$J&0UY6vyvo61I{J0SSb_E+IlvB@hq-fwjq|O_f**L9pGmOpy%|1wph;3JW2q zl})ge38WIlLczvjM8rai(JE-j^Z$GM&gAafd*3^E=1md@&fbrA?m7SSanHRoybWO` zjKa~QLG4C(=WqzGhY&V4_Qqdm{!`7JKi`aB3t{Wk5YC84kF;WMUQGz%>-v0n<+CHA ztD>(&zl#28i2i-iWzmt849%Yu-4p#Ksxmay{Kuk`u?)tdZ$#~NroTN8zFLM_Frzo- z`Cj99Mc{?#GZ*uKgSFTTE_*hUoxsR5WXE$qX?!|f7x#H4g2!asS0CTn_;$>n z>WlYw#BVWTJ-)h{S`*K~)9~6F)>+@P{>|3F_z{}BUXVKRuv zff#6xwQ-KI=91`$D8_^waJ(2{9)-ic z2z{~NQ+;^Ag0J!UTsXAuR3ii1QhGddVE#mOyx-bq9OB33A4MJ=9-c>%b>W$Yd{2DW zMBw(wE#V<1SMr)e;Q5kt8%}(h^n>QfS&z^04f%Le^maq^Ek{jPt|b=x@XI2VzO?FKIzEqZFCcd6t;bPv`yqb+=E+558}HC9HKoqEw*5BNb8;bfUM+$LnfqdHI@>K6Mfl0%&pu4ZKvt*S z2@K>h^?`lbrz7{AoM0~`~C~I;6f*U#%FF{SJSns+FhxhhH&di2%G%0z|Rbm(Rg*dHXV&OpNw{IJzd$Ys+v}6 zZdRnp_*lc*$=Y;v62dAnk&TWjgsK`#f^_pc#d*v&^oY_FYL9Pj%Cl|H}jX$<>#jZcLmH@%^Aa<-Gh=vUX=I&nZ%Mhh97%#3LX)@Vjp?;s$nO0XL;YQZF*Kx zi%cdhHe&~v_&yCjWEo)_zQ#`KMk#L7MZ7z6R?pGx`R-sc+by<$4;jQ7;yl84ZQhb` zHg6Jfz=!kts05Rj7yFCuU*hKu^)lE1hOM@b`^H+sJ|hmEyNK71rF`fv#va?I_3S&( zchOR8ef;EmQO?A;?!i9HJVyt0X0CH3#vS)1kKY8yCt^{0MtE?;L(O8} zb=JrjS7~3esp;t8+#Dhvc6RJY-k?73vQ4_MgLsfv_u1WrXWnPhPn}|a zU<-FZ&R6n)x`$0*rDcqrJh$&n3+G8yO;#&j9MX$Qb<4{{j3;`zh;|&ph*k!!=#SXy zf!;ULn@#$kDB8`YT@PW(e^BXL<|N#DTDQE=B$VTkUQN>fQH`Z-qITC>y(TqX(RjV8 z9;=n|y>_#zY8?Z#U^Mx(wZ2BL;i0YZ2`6|bcth=!*SBQPl>Z7-TiYu;_pmkokRK}i Ypg+~_o}XrZ;{`3|XD?`}&$#jXe|Fz6@Bjb+ diff --git a/web_favicon/static/src/img/manifest.json b/web_favicon/static/src/img/manifest.json deleted file mode 100644 index 1d8beeace5da..000000000000 --- a/web_favicon/static/src/img/manifest.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "Odoo", - "icons": [ - { - "src": "/android-chrome-36x36.png", - "sizes": "36x36", - "type": "image/png", - "density": "0.75" - }, - { - "src": "/android-chrome-48x48.png", - "sizes": "48x48", - "type": "image/png", - "density": "1.0" - }, - { - "src": "/android-chrome-72x72.png", - "sizes": "72x72", - "type": "image/png", - "density": "1.5" - }, - { - "src": "/android-chrome-96x96.png", - "sizes": "96x96", - "type": "image/png", - "density": "2.0" - }, - { - "src": "/android-chrome-144x144.png", - "sizes": "144x144", - "type": "image/png", - "density": "3.0" - }, - { - "src": "/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png", - "density": "4.0" - } - ] -} diff --git a/web_favicon/static/src/img/master_original_favicon.png b/web_favicon/static/src/img/master_original_favicon.png deleted file mode 100644 index 22a0aa8fb9958087b237c0fb78cdb7a2ecd4ab37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7242 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%0D-R3HoE;>LB}~FOWKyV9a7TBH`{;&S zpn!~|?^&fJHbACpj%~rM;{P$*p60UYIAUw86l9&G2Nq=#u5eW30_V*!x#>N|==Gvh zwT1+~lO{e&T@_dI*@TRhFt<(9w`jKom6G^@n~|YH>Id9J#-ErAZlT>ipx;J1TLhgw zLfLHXE^BKlKUxM*>~Cu=VCa>sT1nrwz_DJBIafkk6P0~x6$E%=eBEI@W_ - - -image/svg+xml \ No newline at end of file diff --git a/web_favicon/static/src/img/mstile-144x144.png b/web_favicon/static/src/img/mstile-144x144.png deleted file mode 100644 index e44e2367521d4b7e6c5bf131e770798703baa0fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1820 zcmb`I=Q|q;1I0tEP$c?_S*lTrqExGt7rlv{Am%l$rbW<(xUs2Go0iBWs<`IWk{H)s zRU_1B5K3dT_NZL7YAe_KKfLF8&iOs(%lUeeEKx@MyyCn70D#}b7>>Rm@qgw4UgXFt zq2vp2U=5H40KngAe5V-Bi_S(s8$AG24oQByC^nYnHVAVszw`gM5SMPzF7_q-(I{&` zv#h`l_YpfwbpEVoGR#bs;*gj*;!~jI_Dhp0&K&^Y(ldb@*aT0}ohQi@MX)d@N2l28 z`T1}T>J1^(xSW@Bq9UQKr@kUYV^GEN*R^L)X1bozuUD=2*F?1D?_qBH#rk*R_Jc2O8`|h9%Z>%`)Oi=rJ=P9XDOY z1=jFohIw^_np`)bHeyCPDO(y;=B=h5W16%IMG%`NkVcQz`IvL>a0kVtphc#}Vpr+F zdlZRS7NS^3W!|HBFvU`wZsDgN#;oY99N&b-1FHztGLX)+O^||7tp|AqZRbY?w`de&G<+@X6eeN+S)u zsFK__N7KCb%fymj+Qrzj__B-@c=(-k|CkR?U!8eu!tng>ah6SwbKWQ`bxX58PeFT- zyntk?LNgy{Of7HMOynatxW+fW$*FQOET9n4SgZ=s`?dviUamC$2~v*rp@?f28s5sx zaAnx9%)$$l*G*L$xu*wUy$!DtHi7<@3}ee>w>J(!pSRt5o+J8?ynuH~^)Zf{mu)M! zL#_+H8H@6a4~=zToFps|l+DaNVJ44CL3iW3XYzj5#?I6Ky8B8%q3;iJ0 zuTiR#q_)<3jiyPyx30F9%f~1(DON0*D2M_}Qv)+ns64zpDd^iPac9lDmbLo#Qtzh= zlc8Iq4rj=#)u;qAQ(29jwdja#HC>LCQqLjYs`q;Y6;UkElCAX_Ew?1&gf8WZiALif zQeY}v1qd{f#-zhz>^@-&#?v6ssE2ypH6Xv-r1~k3tH1=FsE4;-tG{(7SpjebE?C71 ziQ~S#!ns2AKBX;PuB$iZBtYzFD?oIosfSK;Uq?n_jJE6|fIW`gF9=-x^KwG{rUO>e4J7^7ceb8hB-AMd(C9Or;Rs;&x32bQ`nd3?V zJ;may=D)ri03j>jnLn{^`k^o6JQXy$aSlda@F^mNg>PL?kCb_~P9zIXpJs7lYO@qx z5oo=tY5SsgSv$;+fU&kU+hU zzq3Iwu;VOWnWrE6b`v!)^mTir>7=x}ydd0IVlOgR)xCS5+PY!FO2FsfyaZR<-p^Ln zTJ7O&OkB&#_vH;dZrI|Mh2y&x!F#y&amFwNxiNLnxbT;c3$AZCRF5#FgSv64kzVP# zWwQ2ey9L8lRDzcpKI*VJAhfO&-SpiIK7kxf4L#ckQUHAa0}@mo>5y2i%o158|2gRx zl26CqJ8+8mtsecAdoWe=Pbk>+U)ITVPEhfy^V=+%$j_ z*ZIM}G$hvv3$GbEJYH;^m;O0A9@ee5qr9~=JD(JyjALfI(}E8+X7WziJH%J{0OR4I zv=Ue%o%yp1EmSdJCQ}(H?6x`@Mr(eQG4~0&EMJU4 z+PnQ-_UUBC;?>rR8Xx1R6_EEANeab2v({#uHq#&n-1VQ2`z;})&Gv`2i{H`d>HJLK eao4KgIdF5t$er)wrvAm_089`lc;$nK&;JDrs+a2k diff --git a/web_favicon/static/src/img/mstile-150x150.png b/web_favicon/static/src/img/mstile-150x150.png deleted file mode 100644 index 96b4e8657477f4e4cd653f4bb1f9e0e67cb455ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1632 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 Sasz1UzZeSPWM63)Nck6`8t*dz diff --git a/web_favicon/static/src/img/mstile-310x310.png b/web_favicon/static/src/img/mstile-310x310.png deleted file mode 100644 index b9b4a3e835e6c16a269988457e36f1295ecd5690..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3294 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 diff --git a/web_favicon/static/src/img/mstile-70x70.png b/web_favicon/static/src/img/mstile-70x70.png deleted file mode 100644 index c02805fe1800ef77f751ad840be0a03467219e9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1232 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&v7|ftIx;Y9?C1WI$O_~$76-XI zF|0c$^AgDM4)6(a^~o&!PbCntW=|c^Sc#G#zhH(ZR@@42zW!nn@`}dnGZz0i@a=#7OSPLz$~FtKu^5L&Kdn1{ zB1qZPssDJdw0Yj09fgnC*cK;MabK*`V^zPWw|Zet&DD2@Q<}ay&8v6*WGOSb>fpPQ zyC=Wz{onBZ^_Lj?4a%QB3#AzP7az8;)IYDY#P-VMZR+WgOKO|MBR+nUS97^Fo%^ui z{L%+~rFZ7L6^0#twej}*$->P0_-Yr)AL(q4scLDwCCqPa`hNZ2n@uy#-sPXT$+mv> zH~Swqxh^F&X5RmQmi>oDM$xweJ*i4x)8!-XWTt$3)5Z|lQxCKmGiYhq?dRf{<0!?jVZxJe&KM?Ef0F{f&#P79PX3vYX1`z6 zknKbtTgUVw1`fva>zRyxG`=-h=y5}zU!h-d!alJjj1FPje})Q%ALUl{JfqJ&_sfad z3J+FfI2C<+anv#LgQ~98RA-L~Q@(U<@LKi4S@o5a$QO=Ko_im=kEoUy&wl-$^?~gE z7w!t7T@zTOe>L$PU3ZUl0rRPSMlKu9hnEYu{pjko+kf?J*jec)m4f~?t8Q|Y-|`Or z#qs^5c9ck`U-ietYYFqi)-5&h*wS(8vgC~Jdrmv1MjEJD{T1D$baB-)SFs-HJ8RaS ze9kF8C+X~E56g=S6X(CW_I&qIovV85vx^U&e4#vZ=IX-+Gj?9y9Qf<#vqwjhmUw?! zn7MvRX@SV|K)Dp!zH#49=|fZ`gQkOmEFcuR+bxN#Z>L! z6m2Nk{Pp)2v5%YQ+Me7St#p5VvH$X?0w+$Z-nM?bKk0bpGQIQHFFkC}d~xSs!v&*j zSM8h>oNq@+Ze9B?Up9O8H?x0R`GZwYN1tRldog)V&W#P5b*9<%GK z=kJ>zUM#;(%U0&^y3alPx1Nj3W8(k9d3og{NDKTu&U U`IIvfSX?l8y85}Sb4q9e0QhWd)&Kwi diff --git a/web_favicon/static/src/img/website_favicon_sample.html b/web_favicon/static/src/img/website_favicon_sample.html deleted file mode 100644 index 4bda9440b147..000000000000 --- a/web_favicon/static/src/img/website_favicon_sample.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/web_favicon/tests/__init__.py b/web_favicon/tests/__init__.py index 9be3cd521afa..1581c32d0239 100644 --- a/web_favicon/tests/__init__.py +++ b/web_favicon/tests/__init__.py @@ -1,3 +1,4 @@ -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +# Copyright 2024 OERP Canada +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). from . import test_web_favicon diff --git a/web_favicon/tests/test_web_favicon.py b/web_favicon/tests/test_web_favicon.py index 657b97e329b9..2d6980991938 100644 --- a/web_favicon/tests/test_web_favicon.py +++ b/web_favicon/tests/test_web_favicon.py @@ -1,52 +1,37 @@ -# Copyright 2015 Therp BV -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +# Copyright 2024 OERP Canada +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) -import base64 +from PIL import Image -from odoo import http +from odoo.tests import tagged from odoo.tests.common import TransactionCase -from odoo.tools.misc import file_open +from odoo.tools import base64_to_image, image_to_base64 -class FakeRequest: - def __init__(self, env): - self.env = env - - def make_response(self, data, headers): - return FakeResponse(data, headers) - - -class FakeResponse: - def __init__(self, data, headers): - self.data = data - self.headers = dict(headers) +@tagged("post_install", "-at_install") +class TestWebFavicon(TransactionCase): + def test_01_web_favicon(self): + """The goal of this test is to make sure the favicon is correctly + handled on the backend.""" + # Test setting an Ico file directly, done through create + Company = self.env["res.company"] -class TestWebFavicon(TransactionCase): - def test_web_favicon(self): - original_request = http.request - http.request = FakeRequest(self.env) - from ..controllers.web_favicon import WebFavicon - - company = self.env["res.company"].search([], limit=1) - # default icon - company.write( + company = Company.create( { - "favicon_backend": False, - "favicon_backend_mimetype": False, + "name": "Test Company", + "favicon": Company._get_default_favicon(), } ) - data = WebFavicon().icon() - self.assertEqual(data.headers["Content-Type"], "image/x-icon") - # our own icon - company.write( - { - "favicon_backend": base64.b64encode( - file_open("web_favicon/static/description/icon.png", "rb").read() - ), - "favicon_backend_mimetype": "image/png", - } - ) - data = WebFavicon().icon() - self.assertEqual(data.headers["Content-Type"], company.favicon_backend_mimetype) - http.request = original_request + + image = base64_to_image(company.favicon) + self.assertEqual(image.format, "ICO") + + # Test setting a JPEG file that is too big, done through write + bg_color = (135, 90, 123) + image = Image.new("RGB", (1920, 1080), color=bg_color) + company.favicon = image_to_base64(image, "JPEG") + image = base64_to_image(company.favicon) + self.assertEqual(image.format, "JPEG") + self.assertEqual(image.size, (256, 256)) + self.assertEqual(image.getpixel((0, 0)), bg_color) diff --git a/web_favicon/views/res_company.xml b/web_favicon/views/res_company.xml deleted file mode 100644 index 86b49af7b661..000000000000 --- a/web_favicon/views/res_company.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - res.company - - - - - - - - - - - - - diff --git a/web_favicon/views/res_company_view.xml b/web_favicon/views/res_company_view.xml new file mode 100644 index 000000000000..761a1fb6deed --- /dev/null +++ b/web_favicon/views/res_company_view.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + res.company.form.inherit + res.company + + + + + + + + + + + diff --git a/web_favicon/views/templates.xml b/web_favicon/views/templates.xml deleted file mode 100644 index 271a46f83f8f..000000000000 --- a/web_favicon/views/templates.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - -