From 69d7098bb36dfd77050e728da5fa23b68c38254e Mon Sep 17 00:00:00 2001 From: ArnauCForgeFlow Date: Tue, 19 Nov 2024 16:36:15 +0100 Subject: [PATCH 01/23] [ADD] web_excel_export_dynamic_expand --- web_excel_export_dynamic_expand/README.rst | 78 ++++ web_excel_export_dynamic_expand/__init__.py | 1 + .../__manifest__.py | 18 + .../controllers/__init__.py | 1 + .../controllers/excel_export.py | 38 ++ .../readme/CONTRIBUTORS.rst | 2 + .../readme/DESCRIPTION.rst | 2 + .../static/description/index.html | 424 ++++++++++++++++++ .../static/src/js/data_export.esm.js | 24 + 9 files changed, 588 insertions(+) create mode 100644 web_excel_export_dynamic_expand/README.rst create mode 100644 web_excel_export_dynamic_expand/__init__.py create mode 100644 web_excel_export_dynamic_expand/__manifest__.py create mode 100644 web_excel_export_dynamic_expand/controllers/__init__.py create mode 100644 web_excel_export_dynamic_expand/controllers/excel_export.py create mode 100644 web_excel_export_dynamic_expand/readme/CONTRIBUTORS.rst create mode 100644 web_excel_export_dynamic_expand/readme/DESCRIPTION.rst create mode 100644 web_excel_export_dynamic_expand/static/description/index.html create mode 100644 web_excel_export_dynamic_expand/static/src/js/data_export.esm.js diff --git a/web_excel_export_dynamic_expand/README.rst b/web_excel_export_dynamic_expand/README.rst new file mode 100644 index 000000000000..d39347b2dd85 --- /dev/null +++ b/web_excel_export_dynamic_expand/README.rst @@ -0,0 +1,78 @@ +=============================== +Web Excel Export Dynamic Expand +=============================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:ee1ab26433dfe8bd1d3489d5051728dd84a7583b5dc50d0d47a95e71b1e28c67 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :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/15.0/web_excel_export_dynamic_expand + :alt: OCA/web +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_excel_export_dynamic_expand + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=15.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +When exporting a tree view to an Excel file, you can decide if you want to expor only +the main groups or the full tree, depending if all groups are collapsed, or there is one open. + +**Table of contents** + +.. contents:: + :local: + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* ForgeFlow + +Contributors +~~~~~~~~~~~~ + +* Arnau Cruz + + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +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. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/web_excel_export_dynamic_expand/__init__.py b/web_excel_export_dynamic_expand/__init__.py new file mode 100644 index 000000000000..e046e49fbe22 --- /dev/null +++ b/web_excel_export_dynamic_expand/__init__.py @@ -0,0 +1 @@ +from . import controllers diff --git a/web_excel_export_dynamic_expand/__manifest__.py b/web_excel_export_dynamic_expand/__manifest__.py new file mode 100644 index 000000000000..77c1a2f1be5b --- /dev/null +++ b/web_excel_export_dynamic_expand/__manifest__.py @@ -0,0 +1,18 @@ +# Copyright (C) 2024 - ForgeFlow S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Web Excel Export Dynamic Expand", + "summary": "Export collapsed groups or the full tree, based on its view.", + "version": "15.0.1.0.0", + "author": "ForgeFlow, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/web", + "license": "AGPL-3", + "depends": ["web"], + "data": [], + "assets": { + "web.assets_backend": [ + "web_excel_export_dynamic_expand/static/src/js/data_export.esm.js", + ], + }, +} diff --git a/web_excel_export_dynamic_expand/controllers/__init__.py b/web_excel_export_dynamic_expand/controllers/__init__.py new file mode 100644 index 000000000000..14a7468918e2 --- /dev/null +++ b/web_excel_export_dynamic_expand/controllers/__init__.py @@ -0,0 +1 @@ +from . import excel_export diff --git a/web_excel_export_dynamic_expand/controllers/excel_export.py b/web_excel_export_dynamic_expand/controllers/excel_export.py new file mode 100644 index 000000000000..4c702f61b5f8 --- /dev/null +++ b/web_excel_export_dynamic_expand/controllers/excel_export.py @@ -0,0 +1,38 @@ +# Copyright 2024 ForgeFlow S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import json +from collections import OrderedDict + +from odoo import http + +from odoo.addons.web.controllers.main import ExcelExport + + +class CustomGroupsTreeNode(ExcelExport): + @http.route("/web/export/xlsx", type="http", auth="user") + def index(self, data): + params = json.loads(data) + self.context = params.get("context", {}) + response = super().index(data) + return response + + @property + def context(self): + return self._context + + @context.setter + def context(self, value): + self._context = value + + def from_group_data(self, fields, groups): + collapse_groups = self.context.get("collapse_groups") + if collapse_groups: + for _child_key, child_node in groups.children.items(): + aggregated_values = child_node.aggregated_values + if child_node.children: + child_node.children = OrderedDict() + if child_node.data: + child_node.data = [] + child_node.aggregated_values = aggregated_values + return super().from_group_data(fields, groups) diff --git a/web_excel_export_dynamic_expand/readme/CONTRIBUTORS.rst b/web_excel_export_dynamic_expand/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000000..fd654f2a6df1 --- /dev/null +++ b/web_excel_export_dynamic_expand/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* Arnau Cruz + diff --git a/web_excel_export_dynamic_expand/readme/DESCRIPTION.rst b/web_excel_export_dynamic_expand/readme/DESCRIPTION.rst new file mode 100644 index 000000000000..9884f7cbad97 --- /dev/null +++ b/web_excel_export_dynamic_expand/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +When exporting a tree view to an Excel file, you can decide if you want to export only +the main groups or the full tree, depending if all groups are collapsed, or there is one open. diff --git a/web_excel_export_dynamic_expand/static/description/index.html b/web_excel_export_dynamic_expand/static/description/index.html new file mode 100644 index 000000000000..3284c2d17c0d --- /dev/null +++ b/web_excel_export_dynamic_expand/static/description/index.html @@ -0,0 +1,424 @@ + + + + + +Web Excel Export Dynamic Expand + + + +
+

Web Excel Export Dynamic Expand

+ + +

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

+

When exporting a tree view to an Excel file, you can decide if you want to expor only +the main groups or the full tree, depending if all groups are collapsed, or there is one open.

+

Table of contents

+ +
+

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 to smash it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • ForgeFlow
  • +
+
+ +
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

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.

+

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

+
+
+
+ + diff --git a/web_excel_export_dynamic_expand/static/src/js/data_export.esm.js b/web_excel_export_dynamic_expand/static/src/js/data_export.esm.js new file mode 100644 index 000000000000..1b5862d96ef5 --- /dev/null +++ b/web_excel_export_dynamic_expand/static/src/js/data_export.esm.js @@ -0,0 +1,24 @@ +/* Copyright 2024 Forgeflow + License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ +odoo.define("web_excel_export_dynamic_expand.DataExport", function (require) { + var DataExport = require("web.DataExport"); + + DataExport.include({ + /** + * @override + */ + _exportData: function () { + var hasDataRow = $(".o_data_row").length > 0; + var hasGroup = $(".o_group_header").length > 0; + var collapseGroups = !hasDataRow && hasGroup; + + var originalGetContext = this.record.getContext; + this.record.getContext = function () { + var context = originalGetContext.call(this); + context.collapse_groups = collapseGroups; + return context; + }; + this._super(...arguments); + }, + }); +}); From 8f0caf32c776b37f0978c117a4b60eeffbf0276e Mon Sep 17 00:00:00 2001 From: oca-ci Date: Mon, 5 May 2025 16:44:57 +0000 Subject: [PATCH 02/23] [UPD] Update web_excel_export_dynamic_expand.pot --- .../i18n/web_excel_export_dynamic_expand.pot | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 web_excel_export_dynamic_expand/i18n/web_excel_export_dynamic_expand.pot diff --git a/web_excel_export_dynamic_expand/i18n/web_excel_export_dynamic_expand.pot b/web_excel_export_dynamic_expand/i18n/web_excel_export_dynamic_expand.pot new file mode 100644 index 000000000000..a11baf5cd77c --- /dev/null +++ b/web_excel_export_dynamic_expand/i18n/web_excel_export_dynamic_expand.pot @@ -0,0 +1,13 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.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" From 390fa14b5fbc8bed1197103c6de0ced3389cb4ec Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 5 May 2025 16:48:20 +0000 Subject: [PATCH 03/23] [BOT] post-merge updates --- web_excel_export_dynamic_expand/README.rst | 4 ++-- .../static/description/icon.png | Bin 0 -> 10254 bytes .../static/description/index.html | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 web_excel_export_dynamic_expand/static/description/icon.png diff --git a/web_excel_export_dynamic_expand/README.rst b/web_excel_export_dynamic_expand/README.rst index d39347b2dd85..4319a5c6794f 100644 --- a/web_excel_export_dynamic_expand/README.rst +++ b/web_excel_export_dynamic_expand/README.rst @@ -7,7 +7,7 @@ Web Excel Export Dynamic Expand !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:ee1ab26433dfe8bd1d3489d5051728dd84a7583b5dc50d0d47a95e71b1e28c67 + !! source digest: sha256:5ad1b7f0aa063083e8b6f4dc47af3a7a7b3f85ada220e2e86483a74c0e1129f3 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -28,7 +28,7 @@ Web Excel Export Dynamic Expand |badge1| |badge2| |badge3| |badge4| |badge5| -When exporting a tree view to an Excel file, you can decide if you want to expor only +When exporting a tree view to an Excel file, you can decide if you want to export only the main groups or the full tree, depending if all groups are collapsed, or there is one open. **Table of contents** diff --git a/web_excel_export_dynamic_expand/static/description/icon.png b/web_excel_export_dynamic_expand/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1dcc49c24f364e9adf0afbc6fc0bac6dbecdeb11 GIT binary patch literal 10254 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 Excel Export Dynamic Expand !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:ee1ab26433dfe8bd1d3489d5051728dd84a7583b5dc50d0d47a95e71b1e28c67 +!! source digest: sha256:5ad1b7f0aa063083e8b6f4dc47af3a7a7b3f85ada220e2e86483a74c0e1129f3 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

-

When exporting a tree view to an Excel file, you can decide if you want to expor only +

When exporting a tree view to an Excel file, you can decide if you want to export only the main groups or the full tree, depending if all groups are collapsed, or there is one open.

Table of contents

From 9d15f2282c9290287b3f135624e057a5c03c73c5 Mon Sep 17 00:00:00 2001 From: Arnau Date: Thu, 7 Aug 2025 11:26:58 +0200 Subject: [PATCH 04/23] [IMP] web_excel_export_dynamic_expand: pre-commit auto fixes --- web_excel_export_dynamic_expand/README.rst | 24 +++++++++---------- .../pyproject.toml | 3 +++ .../readme/CONTRIBUTORS.md | 1 + .../readme/CONTRIBUTORS.rst | 2 -- .../readme/DESCRIPTION.md | 3 +++ .../readme/DESCRIPTION.rst | 2 -- .../static/description/index.html | 11 +++++---- 7 files changed, 25 insertions(+), 21 deletions(-) create mode 100644 web_excel_export_dynamic_expand/pyproject.toml create mode 100644 web_excel_export_dynamic_expand/readme/CONTRIBUTORS.md delete mode 100644 web_excel_export_dynamic_expand/readme/CONTRIBUTORS.rst create mode 100644 web_excel_export_dynamic_expand/readme/DESCRIPTION.md delete mode 100644 web_excel_export_dynamic_expand/readme/DESCRIPTION.rst diff --git a/web_excel_export_dynamic_expand/README.rst b/web_excel_export_dynamic_expand/README.rst index 4319a5c6794f..be552181b08f 100644 --- a/web_excel_export_dynamic_expand/README.rst +++ b/web_excel_export_dynamic_expand/README.rst @@ -17,19 +17,20 @@ Web Excel Export Dynamic Expand :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/15.0/web_excel_export_dynamic_expand + :target: https://github.com/OCA/web/tree/18.0/web_excel_export_dynamic_expand :alt: OCA/web .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_excel_export_dynamic_expand + :target: https://translation.odoo-community.org/projects/web-18-0/web-18-0-web_excel_export_dynamic_expand :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=15.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| -When exporting a tree view to an Excel file, you can decide if you want to export only -the main groups or the full tree, depending if all groups are collapsed, or there is one open. +When exporting a tree view to an Excel file, you can decide if you want +to export only the main groups or the full tree, depending if all groups +are collapsed, or there is one open. **Table of contents** @@ -42,7 +43,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 to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -50,18 +51,17 @@ Credits ======= Authors -~~~~~~~ +------- * ForgeFlow Contributors -~~~~~~~~~~~~ - -* Arnau Cruz +------------ +- Arnau Cruz Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -73,6 +73,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_excel_export_dynamic_expand/pyproject.toml b/web_excel_export_dynamic_expand/pyproject.toml new file mode 100644 index 000000000000..4231d0cccb3d --- /dev/null +++ b/web_excel_export_dynamic_expand/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/web_excel_export_dynamic_expand/readme/CONTRIBUTORS.md b/web_excel_export_dynamic_expand/readme/CONTRIBUTORS.md new file mode 100644 index 000000000000..05cf886890dd --- /dev/null +++ b/web_excel_export_dynamic_expand/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +- Arnau Cruz \ diff --git a/web_excel_export_dynamic_expand/readme/CONTRIBUTORS.rst b/web_excel_export_dynamic_expand/readme/CONTRIBUTORS.rst deleted file mode 100644 index fd654f2a6df1..000000000000 --- a/web_excel_export_dynamic_expand/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,2 +0,0 @@ -* Arnau Cruz - diff --git a/web_excel_export_dynamic_expand/readme/DESCRIPTION.md b/web_excel_export_dynamic_expand/readme/DESCRIPTION.md new file mode 100644 index 000000000000..a4c59ad43d70 --- /dev/null +++ b/web_excel_export_dynamic_expand/readme/DESCRIPTION.md @@ -0,0 +1,3 @@ +When exporting a tree view to an Excel file, you can decide if you want +to export only the main groups or the full tree, depending if all groups +are collapsed, or there is one open. diff --git a/web_excel_export_dynamic_expand/readme/DESCRIPTION.rst b/web_excel_export_dynamic_expand/readme/DESCRIPTION.rst deleted file mode 100644 index 9884f7cbad97..000000000000 --- a/web_excel_export_dynamic_expand/readme/DESCRIPTION.rst +++ /dev/null @@ -1,2 +0,0 @@ -When exporting a tree view to an Excel file, you can decide if you want to export only -the main groups or the full tree, depending if all groups are collapsed, or there is one open. diff --git a/web_excel_export_dynamic_expand/static/description/index.html b/web_excel_export_dynamic_expand/static/description/index.html index 704d38f5c08e..69be98684075 100644 --- a/web_excel_export_dynamic_expand/static/description/index.html +++ b/web_excel_export_dynamic_expand/static/description/index.html @@ -369,9 +369,10 @@

Web Excel Export Dynamic Expand

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:5ad1b7f0aa063083e8b6f4dc47af3a7a7b3f85ada220e2e86483a74c0e1129f3 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

-

When exporting a tree view to an Excel file, you can decide if you want to export only -the main groups or the full tree, depending if all groups are collapsed, or there is one open.

+

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

+

When exporting a tree view to an Excel file, you can decide if you want +to export only the main groups or the full tree, depending if all groups +are collapsed, or there is one open.

Table of contents

    @@ -389,7 +390,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 to smash it by providing a detailed and welcomed -feedback.

    +feedback.

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

@@ -415,7 +416,7 @@

Maintainers

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.

From f217b648fe488aff469d879294379548dddac22f Mon Sep 17 00:00:00 2001 From: Arnau Date: Thu, 7 Aug 2025 14:17:21 +0200 Subject: [PATCH 05/23] [MIG] web_excel_export_dynamic_expand: Migration to 18.0 --- .../__manifest__.py | 2 +- .../controllers/excel_export.py | 10 +++--- .../static/src/js/data_export.esm.js | 35 ++++++++----------- 3 files changed, 20 insertions(+), 27 deletions(-) diff --git a/web_excel_export_dynamic_expand/__manifest__.py b/web_excel_export_dynamic_expand/__manifest__.py index 77c1a2f1be5b..c7829110e1cf 100644 --- a/web_excel_export_dynamic_expand/__manifest__.py +++ b/web_excel_export_dynamic_expand/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Web Excel Export Dynamic Expand", "summary": "Export collapsed groups or the full tree, based on its view.", - "version": "15.0.1.0.0", + "version": "18.0.1.0.0", "author": "ForgeFlow, Odoo Community Association (OCA)", "website": "https://github.com/OCA/web", "license": "AGPL-3", diff --git a/web_excel_export_dynamic_expand/controllers/excel_export.py b/web_excel_export_dynamic_expand/controllers/excel_export.py index 4c702f61b5f8..a5d96f866abb 100644 --- a/web_excel_export_dynamic_expand/controllers/excel_export.py +++ b/web_excel_export_dynamic_expand/controllers/excel_export.py @@ -6,15 +6,15 @@ from odoo import http -from odoo.addons.web.controllers.main import ExcelExport +from odoo.addons.web.controllers.export import ExcelExport class CustomGroupsTreeNode(ExcelExport): @http.route("/web/export/xlsx", type="http", auth="user") - def index(self, data): + def web_export_xlsx(self, data): params = json.loads(data) self.context = params.get("context", {}) - response = super().index(data) + response = super().web_export_xlsx(data) return response @property @@ -25,7 +25,7 @@ def context(self): def context(self, value): self._context = value - def from_group_data(self, fields, groups): + def from_group_data(self, fields, columns_headers, groups): collapse_groups = self.context.get("collapse_groups") if collapse_groups: for _child_key, child_node in groups.children.items(): @@ -35,4 +35,4 @@ def from_group_data(self, fields, groups): if child_node.data: child_node.data = [] child_node.aggregated_values = aggregated_values - return super().from_group_data(fields, groups) + return super().from_group_data(fields, columns_headers, groups) diff --git a/web_excel_export_dynamic_expand/static/src/js/data_export.esm.js b/web_excel_export_dynamic_expand/static/src/js/data_export.esm.js index 1b5862d96ef5..96158ab00cb2 100644 --- a/web_excel_export_dynamic_expand/static/src/js/data_export.esm.js +++ b/web_excel_export_dynamic_expand/static/src/js/data_export.esm.js @@ -1,24 +1,17 @@ -/* Copyright 2024 Forgeflow - License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ -odoo.define("web_excel_export_dynamic_expand.DataExport", function (require) { - var DataExport = require("web.DataExport"); +import {patch} from "@web/core/utils/patch"; +import {ListController} from "@web/views/list/list_controller"; - DataExport.include({ - /** - * @override - */ - _exportData: function () { - var hasDataRow = $(".o_data_row").length > 0; - var hasGroup = $(".o_group_header").length > 0; - var collapseGroups = !hasDataRow && hasGroup; +patch(ListController.prototype, { + async downloadExport() { + const hasDataRow = document.querySelectorAll(".o_data_row").length > 0; + const hasGroup = document.querySelectorAll(".o_group_header").length > 0; + const collapseGroups = !hasDataRow && hasGroup; - var originalGetContext = this.record.getContext; - this.record.getContext = function () { - var context = originalGetContext.call(this); - context.collapse_groups = collapseGroups; - return context; - }; - this._super(...arguments); - }, - }); + this.props.context = { + ...this.props.context, + collapse_groups: collapseGroups, + }; + + await super.downloadExport(...arguments); + }, }); From c12559ec0acafbe6f16722506b387d2bf91f658d Mon Sep 17 00:00:00 2001 From: Arnau Date: Mon, 1 Sep 2025 13:32:03 +0200 Subject: [PATCH 06/23] [FIX] web_company_color: fix systray icon color --- web_company_color/models/res_company.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_company_color/models/res_company.py b/web_company_color/models/res_company.py index ee4d5ba0222e..0dc6d2147192 100644 --- a/web_company_color/models/res_company.py +++ b/web_company_color/models/res_company.py @@ -115,7 +115,7 @@ class ResCompany(models.Model): background-color: %(color_navbar_bg_hover)s !important; } } - .o_menu_systray .o-dropdown .dropdown-toggle { + .o_menu_systray button{ color: %(color_navbar_text)s !important; &:hover, &:focus, &:active, &:focus:active { background-color: %(color_navbar_bg_hover)s !important; From 3c3e32e78ba53761c317db577c6a41638adb2091 Mon Sep 17 00:00:00 2001 From: Arnau Date: Thu, 4 Sep 2025 15:50:31 +0200 Subject: [PATCH 07/23] [FIX] web_company_color: show company colors from active company --- web_company_color/models/assetsbundle.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_company_color/models/assetsbundle.py b/web_company_color/models/assetsbundle.py index c26e0e16f936..e416e20a28cd 100644 --- a/web_company_color/models/assetsbundle.py +++ b/web_company_color/models/assetsbundle.py @@ -10,7 +10,7 @@ def get_company_color_asset_node(self): """Process the user active company scss and returns the node to inject""" try: active_company_id = int( - request.httprequest.cookies.get("cids", "").split(",")[0] + request.httprequest.cookies.get("cids", "").split("-")[0] ) except Exception: active_company_id = False From 0b5aa6775dfcc46a183e142d3dfa7755b43fbd37 Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Fri, 5 Sep 2025 00:48:52 +0200 Subject: [PATCH 08/23] [REF] web_responsive: set as rebel module --- .github/workflows/test.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a06488079fed..6032014807ea 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -36,10 +36,19 @@ jobs: matrix: include: - container: ghcr.io/oca/oca-ci/py3.10-odoo18.0:latest + exclude: "web_responsive" name: test with Odoo - container: ghcr.io/oca/oca-ci/py3.10-ocb18.0:latest + exclude: "web_responsive" name: test with OCB makepot: "true" + - container: ghcr.io/oca/oca-ci/py3.10-odoo18.0:latest + include: "web_responsive" + name: test with Odoo (rebel modules) + - container: ghcr.io/oca/oca-ci/py3.10-ocb18.0:latest + include: "web_responsive" + name: test with OCB (rebel modules) + makepot: "true" services: postgres: image: postgres:12.0 @@ -50,6 +59,8 @@ jobs: ports: - 5432:5432 env: + INCLUDE: "${{ matrix.include }}" + EXCLUDE: "${{ matrix.exclude }}" OCA_ENABLE_CHECKLOG_ODOO: "1" steps: - uses: actions/checkout@v4 From 3e7773d8265e48151fbf8d92717eadad1b67e3a4 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 5 Sep 2025 19:14:52 +0000 Subject: [PATCH 09/23] [BOT] post-merge updates --- README.md | 2 +- web_company_color/README.rst | 8 +++-- web_company_color/__manifest__.py | 2 +- .../static/description/index.html | 30 +++++++++++-------- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 6235317335f3..aead21060996 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ addon | version | maintainers | summary --- | --- | --- | --- [web_calendar_slot_duration](web_calendar_slot_duration/) | 18.0.1.0.0 | Yajo | Customizable calendar slot durations [web_chatter_position](web_chatter_position/) | 18.0.1.0.0 | trisdoan | Add an option to change the chatter position -[web_company_color](web_company_color/) | 18.0.1.0.1 | | Web Company Color +[web_company_color](web_company_color/) | 18.0.1.0.2 | | Web Company Color [web_copy_confirm](web_copy_confirm/) | 18.0.1.0.0 | | Show confirmation dialogue before copying records [web_dialog_size](web_dialog_size/) | 18.0.1.0.0 | | A module that lets the user expand a dialog box to the full screen width. [web_disable_export_group](web_disable_export_group/) | 18.0.1.0.0 | | Web Disable Export Group diff --git a/web_company_color/README.rst b/web_company_color/README.rst index 5eeccac018c8..83fd7184eb15 100644 --- a/web_company_color/README.rst +++ b/web_company_color/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ================= Web Company Color ================= @@ -7,13 +11,13 @@ Web Company Color !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:603597734565684f2d0a6808b0bed21c04233046210e9c41d51b92d52c85cd57 + !! source digest: sha256:7263b476351456e8a32573a65a5baebffd64b158c6a17487f20b08aa010b17f3 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :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 diff --git a/web_company_color/__manifest__.py b/web_company_color/__manifest__.py index 0fbc91fc8373..54a7cb5cdd77 100644 --- a/web_company_color/__manifest__.py +++ b/web_company_color/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Web Company Color", "category": "web", - "version": "18.0.1.0.1", + "version": "18.0.1.0.2", "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/static/description/index.html b/web_company_color/static/description/index.html index ea9578d9926c..7ac7bfe3aa12 100644 --- a/web_company_color/static/description/index.html +++ b/web_company_color/static/description/index.html @@ -3,7 +3,7 @@ -Web Company Color +README.rst -
-

Web Company Color

+
+ + +Odoo Community Association + +
+

Web Company Color

-

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

+

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

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

Table of contents

@@ -386,18 +391,18 @@

Web Company Color

-

Usage

+

Usage

Go to company record and set a logo. Can see/modify applied colors on the “Navbar” section.

For optimal results use images with alpha channel.

-

Known issues / Roadmap

+

Known issues / Roadmap

White color is omitted in the addition operation to support images without alpha channel.

-

Bug Tracker

+

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 to smash it by providing a detailed and welcomed @@ -405,15 +410,15 @@

Bug Tracker

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Alexandre Díaz
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -443,5 +448,6 @@

Maintainers

+
From 6719362b257e51bc2a2d8f234c6f86acdf3ab7ac Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 8 Sep 2025 09:02:33 +0000 Subject: [PATCH 10/23] [BOT] post-merge updates --- README.md | 2 +- web_company_color/README.rst | 2 +- web_company_color/__manifest__.py | 2 +- web_company_color/static/description/index.html | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index aead21060996..564749008996 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ addon | version | maintainers | summary --- | --- | --- | --- [web_calendar_slot_duration](web_calendar_slot_duration/) | 18.0.1.0.0 | Yajo | Customizable calendar slot durations [web_chatter_position](web_chatter_position/) | 18.0.1.0.0 | trisdoan | Add an option to change the chatter position -[web_company_color](web_company_color/) | 18.0.1.0.2 | | Web Company Color +[web_company_color](web_company_color/) | 18.0.1.0.3 | | Web Company Color [web_copy_confirm](web_copy_confirm/) | 18.0.1.0.0 | | Show confirmation dialogue before copying records [web_dialog_size](web_dialog_size/) | 18.0.1.0.0 | | A module that lets the user expand a dialog box to the full screen width. [web_disable_export_group](web_disable_export_group/) | 18.0.1.0.0 | | Web Disable Export Group diff --git a/web_company_color/README.rst b/web_company_color/README.rst index 83fd7184eb15..38d79d4f2f0c 100644 --- a/web_company_color/README.rst +++ b/web_company_color/README.rst @@ -11,7 +11,7 @@ Web Company Color !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:7263b476351456e8a32573a65a5baebffd64b158c6a17487f20b08aa010b17f3 + !! source digest: sha256:622d249810675797d351ceaaa800f9df89d92067ce131c14087b0b92fbf78283 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/web_company_color/__manifest__.py b/web_company_color/__manifest__.py index 54a7cb5cdd77..6bd35b046e8c 100644 --- a/web_company_color/__manifest__.py +++ b/web_company_color/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Web Company Color", "category": "web", - "version": "18.0.1.0.2", + "version": "18.0.1.0.3", "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/static/description/index.html b/web_company_color/static/description/index.html index 7ac7bfe3aa12..36e812031a5a 100644 --- a/web_company_color/static/description/index.html +++ b/web_company_color/static/description/index.html @@ -372,7 +372,7 @@

Web Company Color

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:7263b476351456e8a32573a65a5baebffd64b158c6a17487f20b08aa010b17f3 +!! source digest: sha256:622d249810675797d351ceaaa800f9df89d92067ce131c14087b0b92fbf78283 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

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

From fbfb161344d708e595b64d143afcb21e049afb30 Mon Sep 17 00:00:00 2001 From: mymage Date: Mon, 8 Sep 2025 07:45:40 +0000 Subject: [PATCH 11/23] Translated using Weblate (Italian) Currently translated at 100.0% (1 of 1 strings) Translation: web-18.0/web-18.0-web_systray_button_init_action Translate-URL: https://translation.odoo-community.org/projects/web-18-0/web-18-0-web_systray_button_init_action/it/ --- web_systray_button_init_action/i18n/it.po | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/web_systray_button_init_action/i18n/it.po b/web_systray_button_init_action/i18n/it.po index d3c5dc888bee..f0bc80a43b1a 100644 --- a/web_systray_button_init_action/i18n/it.po +++ b/web_systray_button_init_action/i18n/it.po @@ -6,16 +6,18 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2025-09-08 10:43+0000\n" +"Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\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 5.10.4\n" #. module: web_systray_button_init_action #. odoo-javascript #: code:addons/web_systray_button_init_action/static/src/button/button.xml:0 msgid "Init Action" -msgstr "" +msgstr "Inizializza azione" From 0a5fffa6205eb051edcebb57193fdcddbb0c432f Mon Sep 17 00:00:00 2001 From: Florian Mounier Date: Fri, 28 Jun 2024 11:50:55 +0200 Subject: [PATCH 12/23] [ADD] web_notify_upgrade --- web_notify_upgrade/README.rst | 80 ++++ web_notify_upgrade/__init__.py | 1 + web_notify_upgrade/__manifest__.py | 14 + web_notify_upgrade/models/__init__.py | 1 + web_notify_upgrade/models/ir_model.py | 60 +++ web_notify_upgrade/readme/CONTRIBUTORS.rst | 3 + web_notify_upgrade/readme/DESCRIPTION.rst | 3 + .../static/description/index.html | 424 ++++++++++++++++++ 8 files changed, 586 insertions(+) create mode 100644 web_notify_upgrade/README.rst create mode 100644 web_notify_upgrade/__init__.py create mode 100644 web_notify_upgrade/__manifest__.py create mode 100644 web_notify_upgrade/models/__init__.py create mode 100644 web_notify_upgrade/models/ir_model.py create mode 100644 web_notify_upgrade/readme/CONTRIBUTORS.rst create mode 100644 web_notify_upgrade/readme/DESCRIPTION.rst create mode 100644 web_notify_upgrade/static/description/index.html diff --git a/web_notify_upgrade/README.rst b/web_notify_upgrade/README.rst new file mode 100644 index 000000000000..f71b7b8e8840 --- /dev/null +++ b/web_notify_upgrade/README.rst @@ -0,0 +1,80 @@ +================== +Web Notify Upgrade +================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:43d4c2b1f0259f640d095bcf8eb7e5afe9cba9ab249dad54c96068d2624bdec8 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :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_notify_upgrade + :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_notify_upgrade + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=14.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module uses web_notify send a notification to every active users whenever a module has been installed or upgraded. + +The notification will ask the user to refresh the page to get the latest changes. + +**Table of contents** + +.. contents:: + :local: + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Akretion + +Contributors +~~~~~~~~~~~~ + +* `Akretion `_: + + * Florian Mounier + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +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. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/web_notify_upgrade/__init__.py b/web_notify_upgrade/__init__.py new file mode 100644 index 000000000000..0650744f6bc6 --- /dev/null +++ b/web_notify_upgrade/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/web_notify_upgrade/__manifest__.py b/web_notify_upgrade/__manifest__.py new file mode 100644 index 000000000000..2bfd025f2992 --- /dev/null +++ b/web_notify_upgrade/__manifest__.py @@ -0,0 +1,14 @@ +# Copyright 2024 Akretion (http://www.akretion.com). +# @author Florian Mounier +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Web Notify Upgrade", + "summary": "Notify active users when a module is installed or updated", + "version": "14.0.1.0.0", + "license": "AGPL-3", + "depends": ["web_notify"], + "author": "Akretion, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/web", + "installable": True, +} diff --git a/web_notify_upgrade/models/__init__.py b/web_notify_upgrade/models/__init__.py new file mode 100644 index 000000000000..413bb2380140 --- /dev/null +++ b/web_notify_upgrade/models/__init__.py @@ -0,0 +1 @@ +from . import ir_model diff --git a/web_notify_upgrade/models/ir_model.py b/web_notify_upgrade/models/ir_model.py new file mode 100644 index 000000000000..684bf3623850 --- /dev/null +++ b/web_notify_upgrade/models/ir_model.py @@ -0,0 +1,60 @@ +# Copyright 2024 Akretion (http://www.akretion.com). +# @author Florian Mounier +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +import logging + +from odoo import api, models + +from odoo.addons.bus.models.bus_presence import AWAY_TIMER, DISCONNECTION_TIMER + +_logger = logging.getLogger(__name__) + + +class IrModelData(models.Model): + _inherit = "ir.model.data" + + @api.model + def _process_end(self, modules): + # This function is called at the end of the module installation + # only if at least a module has been installed or updated. + rv = super()._process_end(modules) + self._notify_active_users_of_upgrade() + return rv + + def _notify_active_users_of_upgrade(self): + # Look for active users + active_users = self._get_active_users_to_notify_of_upgrade() + if active_users: + _logger.info( + "Installation detected. Notifying %s active users", len(active_users) + ) + # Notify them + active_users.notify_info(**self._get_upgrade_notification_params()) + + def _get_active_users_to_notify_of_upgrade(self): + """Return the active users that should be notified of the upgrade.""" + self.env.cr.execute( + """ + SELECT user_id + FROM bus_presence + WHERE last_poll is not null + AND ( + age(now() AT TIME ZONE 'UTC', last_poll) < interval %s + OR age(now() AT TIME ZONE 'UTC', last_presence) < interval %s + ) + """, + ("%s seconds" % DISCONNECTION_TIMER, "%s seconds" % AWAY_TIMER), + ) + return self.env["res.users"].browse([res[0] for res in self.env.cr.fetchall()]) + + def _get_upgrade_notification_params(self): + """Return the parameters to pass to the notify_info method.""" + return dict( + message="Your odoo instance has been upgraded, " + "please reload the web page.
" + '", + title="Upgrade Notification", + sticky=True, + ) diff --git a/web_notify_upgrade/readme/CONTRIBUTORS.rst b/web_notify_upgrade/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000000..a4d0ad92299d --- /dev/null +++ b/web_notify_upgrade/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* `Akretion `_: + + * Florian Mounier diff --git a/web_notify_upgrade/readme/DESCRIPTION.rst b/web_notify_upgrade/readme/DESCRIPTION.rst new file mode 100644 index 000000000000..854e257a6c2d --- /dev/null +++ b/web_notify_upgrade/readme/DESCRIPTION.rst @@ -0,0 +1,3 @@ +This module uses web_notify send a notification to every active users whenever a module has been installed or upgraded. + +The notification will ask the user to refresh the page to get the latest changes. diff --git a/web_notify_upgrade/static/description/index.html b/web_notify_upgrade/static/description/index.html new file mode 100644 index 000000000000..aab5720bffe5 --- /dev/null +++ b/web_notify_upgrade/static/description/index.html @@ -0,0 +1,424 @@ + + + + + +Web Notify Upgrade + + + +
+

Web Notify Upgrade

+ + +

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

+

This module uses web_notify send a notification to every active users whenever a module has been installed or upgraded.

+

The notification will ask the user to refresh the page to get the latest changes.

+

Table of contents

+ +
+

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 to smash it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Akretion
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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.

+

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

+
+
+
+ + From a4b2b706ebe397666c2f488f4d4efa5d4d19115e Mon Sep 17 00:00:00 2001 From: oca-ci Date: Thu, 4 Jul 2024 09:22:40 +0000 Subject: [PATCH 13/23] [UPD] Update web_notify_upgrade.pot --- .../i18n/web_notify_upgrade.pot | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 web_notify_upgrade/i18n/web_notify_upgrade.pot diff --git a/web_notify_upgrade/i18n/web_notify_upgrade.pot b/web_notify_upgrade/i18n/web_notify_upgrade.pot new file mode 100644 index 000000000000..fc0b462bac97 --- /dev/null +++ b/web_notify_upgrade/i18n/web_notify_upgrade.pot @@ -0,0 +1,34 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_notify_upgrade +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.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_notify_upgrade +#: model:ir.model.fields,field_description:web_notify_upgrade.field_ir_model_data__display_name +msgid "Display Name" +msgstr "" + +#. module: web_notify_upgrade +#: model:ir.model.fields,field_description:web_notify_upgrade.field_ir_model_data__id +msgid "ID" +msgstr "" + +#. module: web_notify_upgrade +#: model:ir.model.fields,field_description:web_notify_upgrade.field_ir_model_data____last_update +msgid "Last Modified on" +msgstr "" + +#. module: web_notify_upgrade +#: model:ir.model,name:web_notify_upgrade.model_ir_model_data +msgid "Model Data" +msgstr "" From ae3999caff4b7ce0080e2198179b59b6450a3f1f Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 4 Jul 2024 09:27:51 +0000 Subject: [PATCH 14/23] [BOT] post-merge updates --- web_notify_upgrade/README.rst | 2 +- web_notify_upgrade/__manifest__.py | 2 +- web_notify_upgrade/static/description/icon.png | Bin 0 -> 9455 bytes web_notify_upgrade/static/description/index.html | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 web_notify_upgrade/static/description/icon.png diff --git a/web_notify_upgrade/README.rst b/web_notify_upgrade/README.rst index f71b7b8e8840..b03fd17ecfb8 100644 --- a/web_notify_upgrade/README.rst +++ b/web_notify_upgrade/README.rst @@ -7,7 +7,7 @@ Web Notify Upgrade !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:43d4c2b1f0259f640d095bcf8eb7e5afe9cba9ab249dad54c96068d2624bdec8 + !! source digest: sha256:73f36f681a3bdab0c199d3f256b69f03aba5a56d03e9a35545d14d1992c865bd !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/web_notify_upgrade/__manifest__.py b/web_notify_upgrade/__manifest__.py index 2bfd025f2992..2c4a2396c84f 100644 --- a/web_notify_upgrade/__manifest__.py +++ b/web_notify_upgrade/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Web Notify Upgrade", "summary": "Notify active users when a module is installed or updated", - "version": "14.0.1.0.0", + "version": "14.0.1.0.1", "license": "AGPL-3", "depends": ["web_notify"], "author": "Akretion, Odoo Community Association (OCA)", diff --git a/web_notify_upgrade/static/description/icon.png b/web_notify_upgrade/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zl&#s4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6# z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f# zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv! zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG z-wfS zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9 z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE# z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1 zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$ zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV( z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4 z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{ zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx} z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22 zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t< z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{} zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/web_notify_upgrade/static/description/index.html b/web_notify_upgrade/static/description/index.html index aab5720bffe5..0c307119ca94 100644 --- a/web_notify_upgrade/static/description/index.html +++ b/web_notify_upgrade/static/description/index.html @@ -366,7 +366,7 @@

Web Notify Upgrade

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:43d4c2b1f0259f640d095bcf8eb7e5afe9cba9ab249dad54c96068d2624bdec8 +!! source digest: sha256:73f36f681a3bdab0c199d3f256b69f03aba5a56d03e9a35545d14d1992c865bd !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

This module uses web_notify send a notification to every active users whenever a module has been installed or upgraded.

From 763bb9ca8e857f51ed0059cb5bb86cbae2052c5b Mon Sep 17 00:00:00 2001 From: David Beal Date: Mon, 5 Aug 2024 20:12:16 +0200 Subject: [PATCH 15/23] [16.0][MIG] web_notify_upgrade --- web_notify_upgrade/README.rst | 10 +++++----- web_notify_upgrade/__manifest__.py | 2 +- web_notify_upgrade/static/description/index.html | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/web_notify_upgrade/README.rst b/web_notify_upgrade/README.rst index b03fd17ecfb8..9346623b2a3e 100644 --- a/web_notify_upgrade/README.rst +++ b/web_notify_upgrade/README.rst @@ -17,13 +17,13 @@ Web Notify Upgrade :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_notify_upgrade + :target: https://github.com/OCA/web/tree/16.0/web_notify_upgrade :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_notify_upgrade + :target: https://translation.odoo-community.org/projects/web-16-0/web-16-0-web_notify_upgrade :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=14.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=16.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -43,7 +43,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 to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -75,6 +75,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_notify_upgrade/__manifest__.py b/web_notify_upgrade/__manifest__.py index 2c4a2396c84f..24ae27e06544 100644 --- a/web_notify_upgrade/__manifest__.py +++ b/web_notify_upgrade/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Web Notify Upgrade", "summary": "Notify active users when a module is installed or updated", - "version": "14.0.1.0.1", + "version": "16.0.1.0.0", "license": "AGPL-3", "depends": ["web_notify"], "author": "Akretion, Odoo Community Association (OCA)", diff --git a/web_notify_upgrade/static/description/index.html b/web_notify_upgrade/static/description/index.html index 0c307119ca94..35f304af5b6f 100644 --- a/web_notify_upgrade/static/description/index.html +++ b/web_notify_upgrade/static/description/index.html @@ -368,7 +368,7 @@

Web Notify Upgrade

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:73f36f681a3bdab0c199d3f256b69f03aba5a56d03e9a35545d14d1992c865bd !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

This module uses web_notify send a notification to every active users whenever a module has been installed or upgraded.

The notification will ask the user to refresh the page to get the latest changes.

Table of contents

@@ -388,7 +388,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 to smash it by providing a detailed and welcomed -feedback.

+feedback.

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

@@ -415,7 +415,7 @@

Maintainers

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.

From 629d7146696ebeae5df071a570ed57a978ef3ab7 Mon Sep 17 00:00:00 2001 From: David Beal Date: Mon, 5 Aug 2024 21:31:58 +0200 Subject: [PATCH 16/23] [16.0] web_notify_upgrade: fr translation --- web_notify_upgrade/README.rst | 6 ++- web_notify_upgrade/i18n/fr.po | 44 ++++++++++++++++++ web_notify_upgrade/i18n/it.po | 43 +++++++++++++++++ .../i18n/web_notify_upgrade.pot | 24 ++++++---- web_notify_upgrade/models/ir_model.py | 13 +++--- web_notify_upgrade/readme/DESCRIPTION.rst | 4 ++ .../static/description/index.html | 16 +++++-- .../static/description/notify.png | Bin 0 -> 27309 bytes 8 files changed, 129 insertions(+), 21 deletions(-) create mode 100644 web_notify_upgrade/i18n/fr.po create mode 100644 web_notify_upgrade/i18n/it.po create mode 100644 web_notify_upgrade/static/description/notify.png diff --git a/web_notify_upgrade/README.rst b/web_notify_upgrade/README.rst index 9346623b2a3e..55cf2f36c7fb 100644 --- a/web_notify_upgrade/README.rst +++ b/web_notify_upgrade/README.rst @@ -7,7 +7,7 @@ Web Notify Upgrade !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:73f36f681a3bdab0c199d3f256b69f03aba5a56d03e9a35545d14d1992c865bd + !! source digest: sha256:2eb8752f0e8e35c9d1a164c644532665c2ea80d249dc3a430df2c6579fbdfae1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -32,6 +32,10 @@ This module uses web_notify send a notification to every active users whenever a The notification will ask the user to refresh the page to get the latest changes. + +.. figure:: https://raw.githubusercontent.com/OCA/web/16.0/web_notify_upgrade/static/description/notify.png + :alt: Refresh page + **Table of contents** .. contents:: diff --git a/web_notify_upgrade/i18n/fr.po b/web_notify_upgrade/i18n/fr.po new file mode 100644 index 000000000000..b262d01acac9 --- /dev/null +++ b/web_notify_upgrade/i18n/fr.po @@ -0,0 +1,44 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_notify_upgrade +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2024-08-14 16:58+0000\n" +"Last-Translator: David Beal \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 5.6.2\n" + +#. module: web_notify_upgrade +#: model:ir.model,name:web_notify_upgrade.model_ir_model_data +msgid "Model Data" +msgstr "Model Data" + +#. module: web_notify_upgrade +#. odoo-python +#: code:addons/web_notify_upgrade/models/ir_model.py:0 +#, python-format +msgid "Reload" +msgstr "Recharger" + +#. module: web_notify_upgrade +#. odoo-python +#: code:addons/web_notify_upgrade/models/ir_model.py:0 +#, python-format +msgid "Upgrade Notification" +msgstr "Notification de mise à jour" + +#. module: web_notify_upgrade +#. odoo-python +#: code:addons/web_notify_upgrade/models/ir_model.py:0 +#, python-format +msgid "Your odoo instance has been upgraded, please reload the web page." +msgstr "Votre instance odoo a été mise à jour, merci de recharger la page web." diff --git a/web_notify_upgrade/i18n/it.po b/web_notify_upgrade/i18n/it.po new file mode 100644 index 000000000000..9eca29655e4a --- /dev/null +++ b/web_notify_upgrade/i18n/it.po @@ -0,0 +1,43 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_notify_upgrade +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-08-12 08:58+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\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 5.6.2\n" + +#. module: web_notify_upgrade +#: model:ir.model,name:web_notify_upgrade.model_ir_model_data +msgid "Model Data" +msgstr "Dati modello" + +#. module: web_notify_upgrade +#. odoo-python +#: code:addons/web_notify_upgrade/models/ir_model.py:0 +#, python-format +msgid "Reload" +msgstr "Ricarica" + +#. module: web_notify_upgrade +#. odoo-python +#: code:addons/web_notify_upgrade/models/ir_model.py:0 +#, python-format +msgid "Upgrade Notification" +msgstr "Aggiorna notifiche" + +#. module: web_notify_upgrade +#. odoo-python +#: code:addons/web_notify_upgrade/models/ir_model.py:0 +#, python-format +msgid "Your odoo instance has been upgraded, please reload the web page." +msgstr "L'istanza Odoo è stata aggiornata, ricaricare la pagina web." diff --git a/web_notify_upgrade/i18n/web_notify_upgrade.pot b/web_notify_upgrade/i18n/web_notify_upgrade.pot index fc0b462bac97..62a205b52152 100644 --- a/web_notify_upgrade/i18n/web_notify_upgrade.pot +++ b/web_notify_upgrade/i18n/web_notify_upgrade.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -14,21 +14,27 @@ msgstr "" "Plural-Forms: \n" #. module: web_notify_upgrade -#: model:ir.model.fields,field_description:web_notify_upgrade.field_ir_model_data__display_name -msgid "Display Name" +#: model:ir.model,name:web_notify_upgrade.model_ir_model_data +msgid "Model Data" msgstr "" #. module: web_notify_upgrade -#: model:ir.model.fields,field_description:web_notify_upgrade.field_ir_model_data__id -msgid "ID" +#. odoo-python +#: code:addons/web_notify_upgrade/models/ir_model.py:0 +#, python-format +msgid "Reload" msgstr "" #. module: web_notify_upgrade -#: model:ir.model.fields,field_description:web_notify_upgrade.field_ir_model_data____last_update -msgid "Last Modified on" +#. odoo-python +#: code:addons/web_notify_upgrade/models/ir_model.py:0 +#, python-format +msgid "Upgrade Notification" msgstr "" #. module: web_notify_upgrade -#: model:ir.model,name:web_notify_upgrade.model_ir_model_data -msgid "Model Data" +#. odoo-python +#: code:addons/web_notify_upgrade/models/ir_model.py:0 +#, python-format +msgid "Your odoo instance has been upgraded, please reload the web page." msgstr "" diff --git a/web_notify_upgrade/models/ir_model.py b/web_notify_upgrade/models/ir_model.py index 684bf3623850..d973e4e36bc0 100644 --- a/web_notify_upgrade/models/ir_model.py +++ b/web_notify_upgrade/models/ir_model.py @@ -3,7 +3,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). import logging -from odoo import api, models +from odoo import _, api, models from odoo.addons.bus.models.bus_presence import AWAY_TIMER, DISCONNECTION_TIMER @@ -50,11 +50,12 @@ def _get_active_users_to_notify_of_upgrade(self): def _get_upgrade_notification_params(self): """Return the parameters to pass to the notify_info method.""" return dict( - message="Your odoo instance has been upgraded, " - "please reload the web page.
" + message=_( + "Your odoo instance has been upgraded, " "please reload the web page." + ) + + "
" '", - title="Upgrade Notification", + '' + _("Reload") + "", + title=_("Upgrade Notification"), sticky=True, ) diff --git a/web_notify_upgrade/readme/DESCRIPTION.rst b/web_notify_upgrade/readme/DESCRIPTION.rst index 854e257a6c2d..49656f4d69f1 100644 --- a/web_notify_upgrade/readme/DESCRIPTION.rst +++ b/web_notify_upgrade/readme/DESCRIPTION.rst @@ -1,3 +1,7 @@ This module uses web_notify send a notification to every active users whenever a module has been installed or upgraded. The notification will ask the user to refresh the page to get the latest changes. + + +.. figure:: ../static/description/notify.png + :alt: Refresh page diff --git a/web_notify_upgrade/static/description/index.html b/web_notify_upgrade/static/description/index.html index 35f304af5b6f..b666ccd0a466 100644 --- a/web_notify_upgrade/static/description/index.html +++ b/web_notify_upgrade/static/description/index.html @@ -8,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -274,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -300,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -366,11 +367,14 @@

Web Notify Upgrade

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:73f36f681a3bdab0c199d3f256b69f03aba5a56d03e9a35545d14d1992c865bd +!! source digest: sha256:2eb8752f0e8e35c9d1a164c644532665c2ea80d249dc3a430df2c6579fbdfae1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

This module uses web_notify send a notification to every active users whenever a module has been installed or upgraded.

The notification will ask the user to refresh the page to get the latest changes.

+
+Refresh page +

Table of contents

    @@ -411,7 +415,9 @@

    Contributors

    Maintainers

    This module is maintained by the OCA.

    -Odoo Community Association + +Odoo Community Association +

    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.

    diff --git a/web_notify_upgrade/static/description/notify.png b/web_notify_upgrade/static/description/notify.png new file mode 100644 index 0000000000000000000000000000000000000000..d605e3ff894eab41624e6efd61b0b73d56f9c668 GIT binary patch literal 27309 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

    ?CIV0-*+-SExRL?j5c$lLiim7VtM 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 Date: Wed, 9 Jul 2025 18:05:43 +0200 Subject: [PATCH 17/23] [IMP] web_notify_upgrade: pre-commit execution --- web_notify_upgrade/README.rst | 30 ++++++++++--------- web_notify_upgrade/pyproject.toml | 3 ++ web_notify_upgrade/readme/CONTRIBUTORS.md | 2 ++ web_notify_upgrade/readme/CONTRIBUTORS.rst | 3 -- web_notify_upgrade/readme/DESCRIPTION.md | 7 +++++ web_notify_upgrade/readme/DESCRIPTION.rst | 7 ----- .../static/description/index.html | 16 +++++----- 7 files changed, 36 insertions(+), 32 deletions(-) create mode 100644 web_notify_upgrade/pyproject.toml create mode 100644 web_notify_upgrade/readme/CONTRIBUTORS.md delete mode 100644 web_notify_upgrade/readme/CONTRIBUTORS.rst create mode 100644 web_notify_upgrade/readme/DESCRIPTION.md delete mode 100644 web_notify_upgrade/readme/DESCRIPTION.rst diff --git a/web_notify_upgrade/README.rst b/web_notify_upgrade/README.rst index 55cf2f36c7fb..02a946cdd467 100644 --- a/web_notify_upgrade/README.rst +++ b/web_notify_upgrade/README.rst @@ -17,24 +17,26 @@ Web Notify Upgrade :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/16.0/web_notify_upgrade + :target: https://github.com/OCA/web/tree/18.0/web_notify_upgrade :alt: OCA/web .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/web-16-0/web-16-0-web_notify_upgrade + :target: https://translation.odoo-community.org/projects/web-18-0/web-18-0-web_notify_upgrade :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| -This module uses web_notify send a notification to every active users whenever a module has been installed or upgraded. +This module uses web_notify send a notification to every active users +whenever a module has been installed or upgraded. -The notification will ask the user to refresh the page to get the latest changes. +The notification will ask the user to refresh the page to get the latest +changes. +|image1| -.. figure:: https://raw.githubusercontent.com/OCA/web/16.0/web_notify_upgrade/static/description/notify.png - :alt: Refresh page +.. |image1| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_notify_upgrade/static/description/notify.png **Table of contents** @@ -47,7 +49,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 to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -55,19 +57,19 @@ Credits ======= Authors -~~~~~~~ +------- * Akretion Contributors -~~~~~~~~~~~~ +------------ -* `Akretion `_: +- `Akretion `__: - * Florian Mounier + - Florian Mounier Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -79,6 +81,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_notify_upgrade/pyproject.toml b/web_notify_upgrade/pyproject.toml new file mode 100644 index 000000000000..4231d0cccb3d --- /dev/null +++ b/web_notify_upgrade/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/web_notify_upgrade/readme/CONTRIBUTORS.md b/web_notify_upgrade/readme/CONTRIBUTORS.md new file mode 100644 index 000000000000..3b52e04e621e --- /dev/null +++ b/web_notify_upgrade/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- [Akretion](https://www.akretion.com): + - Florian Mounier diff --git a/web_notify_upgrade/readme/CONTRIBUTORS.rst b/web_notify_upgrade/readme/CONTRIBUTORS.rst deleted file mode 100644 index a4d0ad92299d..000000000000 --- a/web_notify_upgrade/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,3 +0,0 @@ -* `Akretion `_: - - * Florian Mounier diff --git a/web_notify_upgrade/readme/DESCRIPTION.md b/web_notify_upgrade/readme/DESCRIPTION.md new file mode 100644 index 000000000000..1e3a0476e3e7 --- /dev/null +++ b/web_notify_upgrade/readme/DESCRIPTION.md @@ -0,0 +1,7 @@ +This module uses web_notify send a notification to every active users +whenever a module has been installed or upgraded. + +The notification will ask the user to refresh the page to get the latest +changes. + +![](../static/description/notify.png) diff --git a/web_notify_upgrade/readme/DESCRIPTION.rst b/web_notify_upgrade/readme/DESCRIPTION.rst deleted file mode 100644 index 49656f4d69f1..000000000000 --- a/web_notify_upgrade/readme/DESCRIPTION.rst +++ /dev/null @@ -1,7 +0,0 @@ -This module uses web_notify send a notification to every active users whenever a module has been installed or upgraded. - -The notification will ask the user to refresh the page to get the latest changes. - - -.. figure:: ../static/description/notify.png - :alt: Refresh page diff --git a/web_notify_upgrade/static/description/index.html b/web_notify_upgrade/static/description/index.html index b666ccd0a466..6270b0935a02 100644 --- a/web_notify_upgrade/static/description/index.html +++ b/web_notify_upgrade/static/description/index.html @@ -369,12 +369,12 @@

    Web Notify Upgrade

    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:2eb8752f0e8e35c9d1a164c644532665c2ea80d249dc3a430df2c6579fbdfae1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

    -

    This module uses web_notify send a notification to every active users whenever a module has been installed or upgraded.

    -

    The notification will ask the user to refresh the page to get the latest changes.

    -
    -Refresh page -
    +

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

    +

    This module uses web_notify send a notification to every active users +whenever a module has been installed or upgraded.

    +

    The notification will ask the user to refresh the page to get the latest +changes.

    +

    image1

    Table of contents

      @@ -392,7 +392,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 to smash it by providing a detailed and welcomed -feedback.

      +feedback.

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

    @@ -421,7 +421,7 @@

    Maintainers

    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.

    From 7ff3451e70f9d0e209441a4a3732174b057636ae Mon Sep 17 00:00:00 2001 From: David Beal Date: Wed, 3 Sep 2025 12:23:02 +0200 Subject: [PATCH 18/23] [MIG] web_notify_upgrade: Migration to 18.0 --- web_notify_upgrade/__manifest__.py | 2 +- web_notify_upgrade/models/ir_model.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web_notify_upgrade/__manifest__.py b/web_notify_upgrade/__manifest__.py index 24ae27e06544..4b38b46129e5 100644 --- a/web_notify_upgrade/__manifest__.py +++ b/web_notify_upgrade/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Web Notify Upgrade", "summary": "Notify active users when a module is installed or updated", - "version": "16.0.1.0.0", + "version": "18.0.1.0.0", "license": "AGPL-3", "depends": ["web_notify"], "author": "Akretion, Odoo Community Association (OCA)", diff --git a/web_notify_upgrade/models/ir_model.py b/web_notify_upgrade/models/ir_model.py index d973e4e36bc0..fdb4e5509290 100644 --- a/web_notify_upgrade/models/ir_model.py +++ b/web_notify_upgrade/models/ir_model.py @@ -43,7 +43,7 @@ def _get_active_users_to_notify_of_upgrade(self): OR age(now() AT TIME ZONE 'UTC', last_presence) < interval %s ) """, - ("%s seconds" % DISCONNECTION_TIMER, "%s seconds" % AWAY_TIMER), + (f"{DISCONNECTION_TIMER} seconds", f"{AWAY_TIMER} seconds"), ) return self.env["res.users"].browse([res[0] for res in self.env.cr.fetchall()]) From 8ab6ccc1176926a1a2236038ee8fe01f5c77e8ea Mon Sep 17 00:00:00 2001 From: oca-ci Date: Mon, 8 Sep 2025 13:04:15 +0000 Subject: [PATCH 19/23] [UPD] Update web_excel_export_dynamic_expand.pot --- .../i18n/web_excel_export_dynamic_expand.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_excel_export_dynamic_expand/i18n/web_excel_export_dynamic_expand.pot b/web_excel_export_dynamic_expand/i18n/web_excel_export_dynamic_expand.pot index a11baf5cd77c..aadee09bfeda 100644 --- a/web_excel_export_dynamic_expand/i18n/web_excel_export_dynamic_expand.pot +++ b/web_excel_export_dynamic_expand/i18n/web_excel_export_dynamic_expand.pot @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 15.0\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" From b5041488569d80861c0493626658480b28b52ed4 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 8 Sep 2025 13:09:46 +0000 Subject: [PATCH 20/23] [BOT] post-merge updates --- README.md | 1 + setup/_metapackage/pyproject.toml | 3 ++- web_excel_export_dynamic_expand/README.rst | 8 ++++-- .../static/description/index.html | 26 ++++++++++++------- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 564749008996..482324070e26 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ addon | version | maintainers | summary [web_disable_export_group](web_disable_export_group/) | 18.0.1.0.0 | | Web Disable Export Group [web_editor_class_selector](web_editor_class_selector/) | 18.0.1.0.0 | carlos-lopez-tecnativa | Web editor class selector [web_environment_ribbon](web_environment_ribbon/) | 18.0.1.0.3 | | Web Environment Ribbon +[web_excel_export_dynamic_expand](web_excel_export_dynamic_expand/) | 18.0.1.0.0 | | Export collapsed groups or the full tree, based on its view. [web_favicon](web_favicon/) | 18.0.1.0.0 | | Allows to set a custom shortcut icon (aka favicon) [web_filter_header_button](web_filter_header_button/) | 18.0.1.0.0 | | Show selected filters as buttons in the control panel [web_group_expand](web_group_expand/) | 18.0.1.0.1 | | Group Expand Buttons diff --git a/setup/_metapackage/pyproject.toml b/setup/_metapackage/pyproject.toml index 476136524c43..e14586c8431e 100644 --- a/setup/_metapackage/pyproject.toml +++ b/setup/_metapackage/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "odoo-addons-oca-web" -version = "18.0.20250826.0" +version = "18.0.20250908.0" dependencies = [ "odoo-addon-web_calendar_slot_duration==18.0.*", "odoo-addon-web_chatter_position==18.0.*", @@ -10,6 +10,7 @@ dependencies = [ "odoo-addon-web_disable_export_group==18.0.*", "odoo-addon-web_editor_class_selector==18.0.*", "odoo-addon-web_environment_ribbon==18.0.*", + "odoo-addon-web_excel_export_dynamic_expand==18.0.*", "odoo-addon-web_favicon==18.0.*", "odoo-addon-web_filter_header_button==18.0.*", "odoo-addon-web_group_expand==18.0.*", diff --git a/web_excel_export_dynamic_expand/README.rst b/web_excel_export_dynamic_expand/README.rst index be552181b08f..91705a9b6a1d 100644 --- a/web_excel_export_dynamic_expand/README.rst +++ b/web_excel_export_dynamic_expand/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + =============================== Web Excel Export Dynamic Expand =============================== @@ -7,13 +11,13 @@ Web Excel Export Dynamic Expand !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:5ad1b7f0aa063083e8b6f4dc47af3a7a7b3f85ada220e2e86483a74c0e1129f3 + !! source digest: sha256:0ebaf3ae34e14b004119de667f5e9923e0e3cc6a0e57349fd4b860af03a2b9c2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :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 diff --git a/web_excel_export_dynamic_expand/static/description/index.html b/web_excel_export_dynamic_expand/static/description/index.html index 69be98684075..efbef42210e4 100644 --- a/web_excel_export_dynamic_expand/static/description/index.html +++ b/web_excel_export_dynamic_expand/static/description/index.html @@ -3,7 +3,7 @@ -Web Excel Export Dynamic Expand +README.rst -
    -

    Web Excel Export Dynamic Expand

    +
    + + +Odoo Community Association + +
    +

    Web Excel Export Dynamic Expand

    -

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

    +

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

    When exporting a tree view to an Excel file, you can decide if you want to export only the main groups or the full tree, depending if all groups are collapsed, or there is one open.

    @@ -386,7 +391,7 @@

    Web Excel Export Dynamic Expand

-

Bug Tracker

+

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 to smash it by providing a detailed and welcomed @@ -394,21 +399,21 @@

Bug Tracker

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

+ From fc6c8601661b65f1165a73de5072c568d46a346b Mon Sep 17 00:00:00 2001 From: oca-ci Date: Mon, 8 Sep 2025 13:13:39 +0000 Subject: [PATCH 21/23] [UPD] Update web_notify_upgrade.pot --- web_notify_upgrade/i18n/web_notify_upgrade.pot | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/web_notify_upgrade/i18n/web_notify_upgrade.pot b/web_notify_upgrade/i18n/web_notify_upgrade.pot index 62a205b52152..68c79cfebbe9 100644 --- a/web_notify_upgrade/i18n/web_notify_upgrade.pot +++ b/web_notify_upgrade/i18n/web_notify_upgrade.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -21,20 +21,17 @@ msgstr "" #. module: web_notify_upgrade #. odoo-python #: code:addons/web_notify_upgrade/models/ir_model.py:0 -#, python-format msgid "Reload" msgstr "" #. module: web_notify_upgrade #. odoo-python #: code:addons/web_notify_upgrade/models/ir_model.py:0 -#, python-format msgid "Upgrade Notification" msgstr "" #. module: web_notify_upgrade #. odoo-python #: code:addons/web_notify_upgrade/models/ir_model.py:0 -#, python-format msgid "Your odoo instance has been upgraded, please reload the web page." msgstr "" From 068e09ec1b9c0274bdca9c5e8885497c38f249a6 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 8 Sep 2025 13:18:20 +0000 Subject: [PATCH 22/23] [BOT] post-merge updates --- README.md | 1 + setup/_metapackage/pyproject.toml | 3 ++- web_notify_upgrade/README.rst | 12 ++++++--- .../static/description/index.html | 26 ++++++++++++------- 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 482324070e26..e3d1080a22c3 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,7 @@ addon | version | maintainers | summary [web_no_bubble](web_no_bubble/) | 18.0.1.0.0 | | Remove the bubbles from the web interface [web_notify](web_notify/) | 18.0.1.1.0 | | Send notification messages to user [web_notify_channel_message](web_notify_channel_message/) | 18.0.1.0.0 | | Send an instant notification to channel users when a new message is posted +[web_notify_upgrade](web_notify_upgrade/) | 18.0.1.0.0 | | Notify active users when a module is installed or updated [web_pivot_computed_measure](web_pivot_computed_measure/) | 18.0.1.0.4 | CarlosRoca13 | Web Pivot Computed Measure [web_quick_start_screen](web_quick_start_screen/) | 18.0.1.0.0 | | Configurable start screen for quick actions [web_refresher](web_refresher/) | 18.0.1.0.0 | | Web Refresher diff --git a/setup/_metapackage/pyproject.toml b/setup/_metapackage/pyproject.toml index e14586c8431e..b29201ae1e4d 100644 --- a/setup/_metapackage/pyproject.toml +++ b/setup/_metapackage/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "odoo-addons-oca-web" -version = "18.0.20250908.0" +version = "18.0.20250908.1" dependencies = [ "odoo-addon-web_calendar_slot_duration==18.0.*", "odoo-addon-web_chatter_position==18.0.*", @@ -20,6 +20,7 @@ dependencies = [ "odoo-addon-web_no_bubble==18.0.*", "odoo-addon-web_notify==18.0.*", "odoo-addon-web_notify_channel_message==18.0.*", + "odoo-addon-web_notify_upgrade==18.0.*", "odoo-addon-web_pivot_computed_measure==18.0.*", "odoo-addon-web_quick_start_screen==18.0.*", "odoo-addon-web_refresher==18.0.*", diff --git a/web_notify_upgrade/README.rst b/web_notify_upgrade/README.rst index 02a946cdd467..09e5d119f152 100644 --- a/web_notify_upgrade/README.rst +++ b/web_notify_upgrade/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ================== Web Notify Upgrade ================== @@ -7,13 +11,13 @@ Web Notify Upgrade !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:2eb8752f0e8e35c9d1a164c644532665c2ea80d249dc3a430df2c6579fbdfae1 + !! source digest: sha256:c19c68174a60ed18be65dbd1dd4464927509139187f14f42a4c378d48d73312b !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :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 @@ -64,9 +68,9 @@ Authors Contributors ------------ -- `Akretion `__: +- `Akretion `__: - - Florian Mounier + - Florian Mounier Maintainers ----------- diff --git a/web_notify_upgrade/static/description/index.html b/web_notify_upgrade/static/description/index.html index 6270b0935a02..c9af547f9785 100644 --- a/web_notify_upgrade/static/description/index.html +++ b/web_notify_upgrade/static/description/index.html @@ -3,7 +3,7 @@ -Web Notify Upgrade +README.rst -
-

Web Notify Upgrade

+
+ + +Odoo Community Association + +
+

Web Notify Upgrade

-

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

+

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

This module uses web_notify send a notification to every active users whenever a module has been installed or upgraded.

The notification will ask the user to refresh the page to get the latest @@ -388,7 +393,7 @@

Web Notify Upgrade

-

Bug Tracker

+

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 to smash it by providing a detailed and welcomed @@ -396,15 +401,15 @@

Bug Tracker

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Akretion
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -426,5 +431,6 @@

Maintainers

+
From 5ead77b239cb5a9850a3338b9a19e8b19d9e1e5e Mon Sep 17 00:00:00 2001 From: mymage Date: Tue, 9 Sep 2025 10:49:56 +0000 Subject: [PATCH 23/23] Added translation using Weblate (Italian) --- web_excel_export_dynamic_expand/i18n/it.po | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 web_excel_export_dynamic_expand/i18n/it.po diff --git a/web_excel_export_dynamic_expand/i18n/it.po b/web_excel_export_dynamic_expand/i18n/it.po new file mode 100644 index 000000000000..c0d5085374bd --- /dev/null +++ b/web_excel_export_dynamic_expand/i18n/it.po @@ -0,0 +1,14 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: it\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"