Date: Wed, 2 Sep 2026 05:17:54 +0000
Subject: [PATCH 09/26] [BOT] post-merge updates
---
README.md | 2 +-
web_dialog_size/README.rst | 2 +-
web_dialog_size/__manifest__.py | 2 +-
web_dialog_size/static/description/index.html | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 4b3068cf6cb7..e97e92774e6f 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,7 @@ addon | version | maintainers | summary
[web_copy_confirm](web_copy_confirm/) | 18.0.1.0.0 | | Show confirmation dialogue before copying records
[web_dark_mode](web_dark_mode/) | 18.0.1.0.0 | | Enabled Dark Mode for the Odoo Backend
[web_datetime_picker_default_time](web_datetime_picker_default_time/) | 18.0.1.0.0 |
| Allows to define a default time on datetime picker
-[web_dialog_size](web_dialog_size/) | 18.0.1.0.2 | | A module that lets the user expand a dialog box to the full screen width.
+[web_dialog_size](web_dialog_size/) | 18.0.1.0.3 | | 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
[web_editor_class_selector](web_editor_class_selector/) | 18.0.1.0.0 |
| Web editor class selector
[web_editor_disable_chatgpt](web_editor_disable_chatgpt/) | 18.0.1.0.0 | | Web Disable ChatGPT
diff --git a/web_dialog_size/README.rst b/web_dialog_size/README.rst
index 8d0caa21b843..8e2581e53f20 100644
--- a/web_dialog_size/README.rst
+++ b/web_dialog_size/README.rst
@@ -11,7 +11,7 @@ Web Dialog Size
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! source digest: sha256:ef5e339b0accce605dac153ffd572aaf492759d0a6a2b91a27b51e4c3d1ee5d1
+ !! source digest: sha256:a306b45986bf786b971c49a98fb0d1a7af7ca0317b0eee223c5bb7bf8505d836
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
diff --git a/web_dialog_size/__manifest__.py b/web_dialog_size/__manifest__.py
index 3898a5f82284..86d6955bf95f 100644
--- a/web_dialog_size/__manifest__.py
+++ b/web_dialog_size/__manifest__.py
@@ -15,7 +15,7 @@
"Odoo Community Association (OCA)",
"website": "https://github.com/OCA/web",
"category": "web",
- "version": "18.0.1.0.2",
+ "version": "18.0.1.0.3",
"license": "AGPL-3",
"depends": ["web"],
"installable": True,
diff --git a/web_dialog_size/static/description/index.html b/web_dialog_size/static/description/index.html
index e1422c84b95c..de66368f3edb 100644
--- a/web_dialog_size/static/description/index.html
+++ b/web_dialog_size/static/description/index.html
@@ -372,7 +372,7 @@ Web Dialog Size
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!! source digest: sha256:ef5e339b0accce605dac153ffd572aaf492759d0a6a2b91a27b51e4c3d1ee5d1
+!! source digest: sha256:a306b45986bf786b971c49a98fb0d1a7af7ca0317b0eee223c5bb7bf8505d836
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

A module that lets the user expand/restore the dialog box size through a
From d9433e1c994ef43d2527737fed2ea9a8d2d68346 Mon Sep 17 00:00:00 2001
From: Peter Zaoral
Date: Wed, 2 Sep 2026 12:25:31 +0200
Subject: [PATCH 10/26] [FIX] web_responsive: prevent duplicate navigation on
app menu click
Closes: #3653
Signed-off-by: Peter Zaoral
---
.../static/src/components/apps_menu_item/apps_menu_item.esm.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/web_responsive/static/src/components/apps_menu_item/apps_menu_item.esm.js b/web_responsive/static/src/components/apps_menu_item/apps_menu_item.esm.js
index de8ef526aab1..50930ac3944f 100644
--- a/web_responsive/static/src/components/apps_menu_item/apps_menu_item.esm.js
+++ b/web_responsive/static/src/components/apps_menu_item/apps_menu_item.esm.js
@@ -31,7 +31,8 @@ export class AppMenuItem extends Component {
this.webIconData = getWebIconData(nextProps.app);
}
- onClick() {
+ onClick(ev) {
+ ev.preventDefault();
if (typeof this.props.onClick === "function") {
this.props.onClick(this.props.app);
}
From 71880c6cccb24dc20167354308cbea90b959fccf Mon Sep 17 00:00:00 2001
From: mymage
Date: Thu, 3 Sep 2026 07:34:37 +0000
Subject: [PATCH 11/26] Added translation using Weblate (Italian)
---
web_responsive_company_color/i18n/it.po | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
create mode 100644 web_responsive_company_color/i18n/it.po
diff --git a/web_responsive_company_color/i18n/it.po b/web_responsive_company_color/i18n/it.po
new file mode 100644
index 000000000000..4b20ded83139
--- /dev/null
+++ b/web_responsive_company_color/i18n/it.po
@@ -0,0 +1,20 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * web_responsive_company_color
+#
+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"
+
+#. module: web_responsive_company_color
+#: model:ir.model,name:web_responsive_company_color.model_res_company
+msgid "Companies"
+msgstr ""
From c918d67bf8cc25a2ebdc216b5890d4847251ac63 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Fri, 4 Sep 2026 12:37:19 +0000
Subject: [PATCH 12/26] [BOT] post-merge updates
---
README.md | 2 +-
web_responsive/README.rst | 2 +-
web_responsive/__manifest__.py | 2 +-
web_responsive/static/description/index.html | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index e97e92774e6f..426bcbd6adcb 100644
--- a/README.md
+++ b/README.md
@@ -54,7 +54,7 @@ addon | version | maintainers | summary
[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.1 | | Web Refresher
[web_remember_tree_column_width](web_remember_tree_column_width/) | 18.0.1.0.2 |
| Remember the tree columns' widths across sessions.
-[web_responsive](web_responsive/) | 18.0.1.0.7 |
| Responsive web client, community-supported
+[web_responsive](web_responsive/) | 18.0.1.0.8 |
| Responsive web client, community-supported
[web_responsive_company_color](web_responsive_company_color/) | 18.0.1.0.0 | | Styling hooks for web_responsive elements
[web_save_discard_button](web_save_discard_button/) | 18.0.1.0.1 |
| Save & Discard Buttons
[web_search_with_and](web_search_with_and/) | 18.0.1.0.1 | | Use AND conditions on omnibar search
diff --git a/web_responsive/README.rst b/web_responsive/README.rst
index a080dbd16a41..69dc22b93f86 100644
--- a/web_responsive/README.rst
+++ b/web_responsive/README.rst
@@ -11,7 +11,7 @@ Web Responsive
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! source digest: sha256:ebe111b566ba52389e9ade067a40de491ca4da8f07eb96a66719d55c05d6fd58
+ !! source digest: sha256:e119f248ecb98473e7141eb27ac6c6eba437e5139e0e87a726fa5c0a4a4c6392
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
diff --git a/web_responsive/__manifest__.py b/web_responsive/__manifest__.py
index 5fc2721b92b8..b7860572a48a 100644
--- a/web_responsive/__manifest__.py
+++ b/web_responsive/__manifest__.py
@@ -9,7 +9,7 @@
{
"name": "Web Responsive",
"summary": "Responsive web client, community-supported",
- "version": "18.0.1.0.7",
+ "version": "18.0.1.0.8",
"category": "Website",
"website": "https://github.com/OCA/web",
"author": "LasLabs, Tecnativa, ITerra, Onestein, "
diff --git a/web_responsive/static/description/index.html b/web_responsive/static/description/index.html
index 61d5a9f83aac..837fef2d745a 100644
--- a/web_responsive/static/description/index.html
+++ b/web_responsive/static/description/index.html
@@ -372,7 +372,7 @@ Web Responsive
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!! source digest: sha256:ebe111b566ba52389e9ade067a40de491ca4da8f07eb96a66719d55c05d6fd58
+!! source digest: sha256:e119f248ecb98473e7141eb27ac6c6eba437e5139e0e87a726fa5c0a4a4c6392
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

This module adds responsiveness to web backend.
From 56c99f5b5ff044594495bb4e866ca282481d3621 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Abraham=20Jes=C3=BAs?=
Date: Tue, 2 Sep 2025 12:15:52 -0400
Subject: [PATCH 13/26] [IMP] Adds a font size selector (pt) to the Document
Layout wizard
---
web_font_size_report_layout/README.rst | 114 ++++
web_font_size_report_layout/__init__.py | 1 +
web_font_size_report_layout/__manifest__.py | 22 +
.../models/__init__.py | 2 +
.../models/base_document_layout.py | 19 +
.../models/res_company.py | 47 ++
web_font_size_report_layout/pyproject.toml | 3 +
.../readme/CONTRIBUTORS.md | 3 +
.../readme/DESCRIPTION.md | 10 +
web_font_size_report_layout/readme/INSTALL.md | 3 +
web_font_size_report_layout/readme/USAGE.md | 7 +
.../static/description/index.html | 485 ++++++++++++++++++
.../static/src/scss/report_font_size.scss | 15 +
web_font_size_report_layout/tests/__init__.py | 2 +
.../tests/test_company_font_size.py | 41 ++
.../tests/test_document_layout_onchange.py | 52 ++
.../views/base_document_layout_views.xml | 14 +
.../views/report_templates_inherit.xml | 113 ++++
18 files changed, 953 insertions(+)
create mode 100644 web_font_size_report_layout/README.rst
create mode 100644 web_font_size_report_layout/__init__.py
create mode 100644 web_font_size_report_layout/__manifest__.py
create mode 100644 web_font_size_report_layout/models/__init__.py
create mode 100644 web_font_size_report_layout/models/base_document_layout.py
create mode 100644 web_font_size_report_layout/models/res_company.py
create mode 100644 web_font_size_report_layout/pyproject.toml
create mode 100644 web_font_size_report_layout/readme/CONTRIBUTORS.md
create mode 100644 web_font_size_report_layout/readme/DESCRIPTION.md
create mode 100644 web_font_size_report_layout/readme/INSTALL.md
create mode 100644 web_font_size_report_layout/readme/USAGE.md
create mode 100644 web_font_size_report_layout/static/description/index.html
create mode 100644 web_font_size_report_layout/static/src/scss/report_font_size.scss
create mode 100644 web_font_size_report_layout/tests/__init__.py
create mode 100644 web_font_size_report_layout/tests/test_company_font_size.py
create mode 100644 web_font_size_report_layout/tests/test_document_layout_onchange.py
create mode 100644 web_font_size_report_layout/views/base_document_layout_views.xml
create mode 100644 web_font_size_report_layout/views/report_templates_inherit.xml
diff --git a/web_font_size_report_layout/README.rst b/web_font_size_report_layout/README.rst
new file mode 100644
index 000000000000..c50764417f4c
--- /dev/null
+++ b/web_font_size_report_layout/README.rst
@@ -0,0 +1,114 @@
+===================================
+Report Font Size in Document Layout
+===================================
+
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:ee6f96a1077aace09df8bdf60b5d93ee172924b3bf73a462880b7c52adf87ab2
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |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-LGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
+ :alt: License: LGPL-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_font_size_report_layout
+ :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_font_size_report_layout
+ :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
+ :alt: Try me on Runboat
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This Odoo module adds the capability to customize font size in all PDF
+reports throughout the system. Through a simple configuration,
+administrators can select from a range of predefined font sizes
+(measured in points) to optimize readability and appearance of invoices,
+quotations, sales orders, and other printed documents.
+
+The module offers the following font size options (in points):
+
+=========== ==== =========================
+Option Size Description
+=========== ==== =========================
+Small 9pt For maximum compactness
+Standard 10pt Odoo's default size
+Large 12pt Better readability
+Extra Large 14pt For high visibility needs
+=========== ==== =========================
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Installation
+============
+
+1. Copy the ``web_font_size_report_layout`` directory to your Odoo
+ addons folder
+2. Update the module list from developer mode
+3. Search for "Report Font Size in Document Layout" in the app store and
+ install it.
+
+Usage
+=====
+
+Once installed:
+
+1. Go to **Settings → General Settings → Companies → Configure Document
+ Layout**
+2. Locate the new **"Font Size"** field
+3. Select your preferred size from the dropdown list
+4. Look at Preview or Download PDF Preview
+5. Save changes
+
+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
+-------
+
+* Binhex
+
+Contributors
+------------
+
+- `Binhex `__:
+- Mario Montes
+- Abraham J. Febres
+
+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_font_size_report_layout/__init__.py b/web_font_size_report_layout/__init__.py
new file mode 100644
index 000000000000..0650744f6bc6
--- /dev/null
+++ b/web_font_size_report_layout/__init__.py
@@ -0,0 +1 @@
+from . import models
diff --git a/web_font_size_report_layout/__manifest__.py b/web_font_size_report_layout/__manifest__.py
new file mode 100644
index 000000000000..1c01e500ce92
--- /dev/null
+++ b/web_font_size_report_layout/__manifest__.py
@@ -0,0 +1,22 @@
+{
+ "name": "Report Font Size in Document Layout",
+ "version": "16.0.1.1.0",
+ "summary": "Adds a font size selector (pt) to the Document Layout wizard",
+ "author": "Binhex," "Odoo Community Association (OCA)",
+ "website": "https://github.com/OCA/web",
+ "license": "LGPL-3",
+ "depends": ["web"],
+ "data": [
+ "views/base_document_layout_views.xml",
+ "views/report_templates_inherit.xml",
+ ],
+ "assets": {
+ "web.report_assets_common": [
+ "web_font_size_report_layout/static/src/scss/report_font_size.scss"
+ ],
+ "web.report_assets_pdf": [
+ "web_font_size_report_layout/static/src/scss/report_font_size.scss"
+ ],
+ },
+ "installable": True,
+}
diff --git a/web_font_size_report_layout/models/__init__.py b/web_font_size_report_layout/models/__init__.py
new file mode 100644
index 000000000000..290c7e13846b
--- /dev/null
+++ b/web_font_size_report_layout/models/__init__.py
@@ -0,0 +1,2 @@
+from . import res_company
+from . import base_document_layout
diff --git a/web_font_size_report_layout/models/base_document_layout.py b/web_font_size_report_layout/models/base_document_layout.py
new file mode 100644
index 000000000000..cfc7540d0014
--- /dev/null
+++ b/web_font_size_report_layout/models/base_document_layout.py
@@ -0,0 +1,19 @@
+from odoo import api, fields, models
+
+
+class BaseDocumentLayout(models.TransientModel):
+ _inherit = "base.document.layout"
+
+ report_font_size = fields.Selection(
+ related="company_id.report_font_size",
+ readonly=False,
+ string="Font size",
+ )
+
+ @api.onchange("report_font_size")
+ def _onchange_report_font_size(self):
+ if hasattr(self, "_compute_preview"):
+ try:
+ self._compute_preview()
+ except Exception:
+ self.preview = False
diff --git a/web_font_size_report_layout/models/res_company.py b/web_font_size_report_layout/models/res_company.py
new file mode 100644
index 000000000000..eb0a6b47569d
--- /dev/null
+++ b/web_font_size_report_layout/models/res_company.py
@@ -0,0 +1,47 @@
+from odoo import api, fields, models
+
+
+class ResCompany(models.Model):
+ _inherit = "res.company"
+
+ report_font_size = fields.Selection(
+ selection=[
+ ("9", "9 pt"),
+ ("10", "10 pt"),
+ ("11", "11 pt"),
+ ("12", "12 pt"),
+ ("13", "13 pt"),
+ ("14", "14 pt"),
+ ],
+ string="Report font size",
+ default="11",
+ help="Base font size for PDF content (in points), applied on the external "
+ "report layout.",
+ )
+
+ @api.model_create_multi
+ def create(self, vals_list):
+ companies = super().create(vals_list)
+ style_fields = {
+ "external_report_layout_id",
+ "font",
+ "report_font_size",
+ "primary_color",
+ "secondary_color",
+ }
+ if any(not style_fields.isdisjoint(values) for values in vals_list):
+ self._update_asset_style()
+ return companies
+
+ def write(self, values):
+ res = super().write(values)
+ style_fields = {
+ "external_report_layout_id",
+ "font",
+ "report_font_size",
+ "primary_color",
+ "secondary_color",
+ }
+ if not style_fields.isdisjoint(values):
+ self._update_asset_style()
+ return res
diff --git a/web_font_size_report_layout/pyproject.toml b/web_font_size_report_layout/pyproject.toml
new file mode 100644
index 000000000000..4231d0cccb3d
--- /dev/null
+++ b/web_font_size_report_layout/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["whool"]
+build-backend = "whool.buildapi"
diff --git a/web_font_size_report_layout/readme/CONTRIBUTORS.md b/web_font_size_report_layout/readme/CONTRIBUTORS.md
new file mode 100644
index 000000000000..f796d63ad965
--- /dev/null
+++ b/web_font_size_report_layout/readme/CONTRIBUTORS.md
@@ -0,0 +1,3 @@
+- [Binhex](https://www.binhex.cloud):
+- Mario Montes\<\>
+- Abraham J. Febres \<\>
diff --git a/web_font_size_report_layout/readme/DESCRIPTION.md b/web_font_size_report_layout/readme/DESCRIPTION.md
new file mode 100644
index 000000000000..f6edbaf0a458
--- /dev/null
+++ b/web_font_size_report_layout/readme/DESCRIPTION.md
@@ -0,0 +1,10 @@
+This Odoo module adds the capability to customize font size in all PDF reports throughout the system. Through a simple configuration, administrators can select from a range of predefined font sizes (measured in points) to optimize readability and appearance of invoices, quotations, sales orders, and other printed documents.
+
+The module offers the following font size options (in points):
+
+| Option | Size | Description |
+|--------|------|-------------|
+| Small | 9pt | For maximum compactness |
+| Standard | 10pt | Odoo's default size |
+| Large | 12pt | Better readability |
+| Extra Large | 14pt | For high visibility needs |
diff --git a/web_font_size_report_layout/readme/INSTALL.md b/web_font_size_report_layout/readme/INSTALL.md
new file mode 100644
index 000000000000..91069158fc0e
--- /dev/null
+++ b/web_font_size_report_layout/readme/INSTALL.md
@@ -0,0 +1,3 @@
+1. Copy the `web_font_size_report_layout` directory to your Odoo addons folder
+2. Update the module list from developer mode
+3. Search for "Report Font Size in Document Layout" in the app store and install it.
diff --git a/web_font_size_report_layout/readme/USAGE.md b/web_font_size_report_layout/readme/USAGE.md
new file mode 100644
index 000000000000..cf1e758aaa01
--- /dev/null
+++ b/web_font_size_report_layout/readme/USAGE.md
@@ -0,0 +1,7 @@
+Once installed:
+
+1. Go to **Settings → General Settings → Companies → Configure Document Layout**
+2. Locate the new **"Font Size"** field
+3. Select your preferred size from the dropdown list
+5. Look at Preview or Download PDF Preview
+4. Save changes
diff --git a/web_font_size_report_layout/static/description/index.html b/web_font_size_report_layout/static/description/index.html
new file mode 100644
index 000000000000..7d7e1d3eb685
--- /dev/null
+++ b/web_font_size_report_layout/static/description/index.html
@@ -0,0 +1,485 @@
+
+
+
+
+
+Report Font Size in Document Layout
+
+
+
+
+
Report Font Size in Document Layout
+
+
+

+
This Odoo module adds the capability to customize font size in all PDF
+reports throughout the system. Through a simple configuration,
+administrators can select from a range of predefined font sizes
+(measured in points) to optimize readability and appearance of invoices,
+quotations, sales orders, and other printed documents.
+
The module offers the following font size options (in points):
+
+
+
+
+
+
+
+| Option |
+Size |
+Description |
+
+
+
+| Small |
+9pt |
+For maximum compactness |
+
+| Standard |
+10pt |
+Odoo’s default size |
+
+| Large |
+12pt |
+Better readability |
+
+| Extra Large |
+14pt |
+For high visibility needs |
+
+
+
+
Table of contents
+
+
+
+
+- Copy the web_font_size_report_layout directory to your Odoo
+addons folder
+- Update the module list from developer mode
+- Search for “Report Font Size in Document Layout” in the app store and
+install it.
+
+
+
+
+
Once installed:
+
+- Go to Settings → General Settings → Companies → Configure Document
+Layout
+- Locate the new “Font Size” field
+- Select your preferred size from the dropdown list
+- Look at Preview or Download PDF Preview
+- Save changes
+
+
+
+
+
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.
+
+
+
+
+
+
+
+
This module is maintained by the OCA.
+
+
+
+
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_font_size_report_layout/static/src/scss/report_font_size.scss b/web_font_size_report_layout/static/src/scss/report_font_size.scss
new file mode 100644
index 000000000000..3aa60f231e11
--- /dev/null
+++ b/web_font_size_report_layout/static/src/scss/report_font_size.scss
@@ -0,0 +1,15 @@
+/* Valor por defecto en pt */
+:root {
+ --report-font-size: 11pt;
+}
+
+/* Aplica al wrapper típico y a .page (usado por algunos informes) */
+.o_report_layout,
+.page {
+ font-size: var(--report-font-size) !important;
+}
+
+.o_report_layout *,
+.page * {
+ font-size: inherit !important;
+}
diff --git a/web_font_size_report_layout/tests/__init__.py b/web_font_size_report_layout/tests/__init__.py
new file mode 100644
index 000000000000..18a2b6ed09f7
--- /dev/null
+++ b/web_font_size_report_layout/tests/__init__.py
@@ -0,0 +1,2 @@
+from . import test_company_font_size
+from . import test_document_layout_onchange
diff --git a/web_font_size_report_layout/tests/test_company_font_size.py b/web_font_size_report_layout/tests/test_company_font_size.py
new file mode 100644
index 000000000000..d7412963da0e
--- /dev/null
+++ b/web_font_size_report_layout/tests/test_company_font_size.py
@@ -0,0 +1,41 @@
+from odoo.tests.common import TransactionCase, tagged
+
+
+@tagged("post_install", "-at_install")
+class TestCompanyFontSize(TransactionCase):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ cls.Company = cls.env["res.company"]
+
+ def test_default_and_selection_values(self):
+ co = self.Company.create({"name": "Co A"})
+ # Default del módulo: "11"
+ self.assertEqual(co.report_font_size, "11")
+ # Selección válida
+ co.report_font_size = "9"
+ self.assertEqual(co.report_font_size, "9")
+
+ def test_create_with_explicit_font_size_persists(self):
+ co = self.Company.create({"name": "Co B", "report_font_size": "12"})
+ self.assertEqual(co.report_font_size, "12")
+
+ def test_write_only_style_field_is_safe(self):
+ co = self.Company.create({"name": "Co C"})
+ # Cambiar sólo el tamaño de fuente no debe romper ni requerir otros campos
+ co.write({"report_font_size": "14"})
+ self.assertEqual(co.report_font_size, "14")
+
+ def test_write_unrelated_fields_dont_affect_font_size(self):
+ co = self.Company.create({"name": "Co D"})
+ old = co.report_font_size
+ co.write({"email": "x@example.com"})
+ self.assertEqual(co.report_font_size, old)
+
+ def test_multi_company_independence(self):
+ co1 = self.Company.create({"name": "Co E"})
+ co2 = self.Company.create({"name": "Co F"})
+ co1.write({"report_font_size": "9"})
+ co2.write({"report_font_size": "14"})
+ self.assertEqual(co1.report_font_size, "9")
+ self.assertEqual(co2.report_font_size, "14")
diff --git a/web_font_size_report_layout/tests/test_document_layout_onchange.py b/web_font_size_report_layout/tests/test_document_layout_onchange.py
new file mode 100644
index 000000000000..29130da11af6
--- /dev/null
+++ b/web_font_size_report_layout/tests/test_document_layout_onchange.py
@@ -0,0 +1,52 @@
+from odoo.tests.common import TransactionCase, tagged
+
+
+@tagged("post_install", "-at_install")
+class TestDocumentLayoutWizard(TransactionCase):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ cls.Company = cls.env["res.company"]
+ cls.company = cls.Company.create({"name": "WZ Co", "report_font_size": "11"})
+ cls.Wizard = cls.env["base.document.layout"]
+
+ def test_wizard_default_inherits_company_value(self):
+ wiz = cls = self.__class__
+ wiz = cls.Wizard.with_company(cls.company.id).create(
+ {"company_id": cls.company.id}
+ )
+ self.assertEqual(wiz.report_font_size, "11")
+
+ def test_onchange_updates_wizard_field_without_crash(self):
+ wiz = cls = self.__class__
+ wiz = cls.Wizard.with_company(cls.company.id).create(
+ {"company_id": cls.company.id}
+ )
+ wiz.report_font_size = "14"
+ # Debe ejecutarse el onchange sin excepción
+ if hasattr(wiz, "_onchange_report_font_size"):
+ wiz._onchange_report_font_size()
+ self.assertEqual(wiz.report_font_size, "14")
+
+ def test_apply_wizard_persists_on_company(self):
+ wiz = cls = self.__class__
+ wiz = cls.Wizard.with_company(cls.company.id).create(
+ {"company_id": cls.company.id}
+ )
+ wiz.report_font_size = "12"
+
+ done = False
+ for meth in (
+ "execute",
+ "action_confirm",
+ "action_apply",
+ "action_configure_document_layout",
+ ):
+ if hasattr(wiz, meth):
+ getattr(wiz, meth)()
+ done = True
+ break
+ if not done:
+ cls.company.write({"report_font_size": wiz.report_font_size})
+
+ self.assertEqual(cls.company.report_font_size, "12")
diff --git a/web_font_size_report_layout/views/base_document_layout_views.xml b/web_font_size_report_layout/views/base_document_layout_views.xml
new file mode 100644
index 000000000000..9d1ebae03fb8
--- /dev/null
+++ b/web_font_size_report_layout/views/base_document_layout_views.xml
@@ -0,0 +1,14 @@
+
+
+
+ base.document.layout.font.size
+ base.document.layout
+
+ 50
+
+
+
+
+
+
+
diff --git a/web_font_size_report_layout/views/report_templates_inherit.xml b/web_font_size_report_layout/views/report_templates_inherit.xml
new file mode 100644
index 000000000000..67e834f2008e
--- /dev/null
+++ b/web_font_size_report_layout/views/report_templates_inherit.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ body, .o_report_layout, .page,
+ .o_report_layout *, .page *,
+ table, td, th, p, li, span, div {
+ font-size: pt !important;
+ }
+ .o_report_layout h1, .page h1 { font-size: 1.6em !important; }
+ .o_report_layout h2, .page h2 { font-size: 1.3em !important; }
+ .o_report_layout h3, .page h3 { font-size: 1.15em !important; }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From 92231f23ea3fead60b6d13dea59bf75fd4f3369c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Abraham=20Jes=C3=BAs?=
Date: Tue, 20 Jan 2026 13:34:57 +0100
Subject: [PATCH 14/26] [IMP] web_font_size_report_layout: pre-commit auto
fixes
---
web_font_size_report_layout/README.rst | 10 +++++-----
.../static/description/index.html | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/web_font_size_report_layout/README.rst b/web_font_size_report_layout/README.rst
index c50764417f4c..b3d69397eb27 100644
--- a/web_font_size_report_layout/README.rst
+++ b/web_font_size_report_layout/README.rst
@@ -17,13 +17,13 @@ Report Font Size in Document Layout
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-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_font_size_report_layout
+ :target: https://github.com/OCA/web/tree/17.0/web_font_size_report_layout
: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_font_size_report_layout
+ :target: https://translation.odoo-community.org/projects/web-17-0/web-17-0-web_font_size_report_layout
: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=17.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -77,7 +77,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.
@@ -109,6 +109,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_font_size_report_layout/static/description/index.html b/web_font_size_report_layout/static/description/index.html
index 7d7e1d3eb685..63e018ae358d 100644
--- a/web_font_size_report_layout/static/description/index.html
+++ b/web_font_size_report_layout/static/description/index.html
@@ -369,7 +369,7 @@ Report Font Size in Document Layout
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:ee6f96a1077aace09df8bdf60b5d93ee172924b3bf73a462880b7c52adf87ab2
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

This Odoo module adds the capability to customize font size in all PDF
reports throughout the system. Through a simple configuration,
administrators can select from a range of predefined font sizes
@@ -448,7 +448,7 @@
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.