From 34472448744354f910805c2358b9a7f06f20fbc2 Mon Sep 17 00:00:00 2001 From: Pani-k-folk Date: Thu, 15 Oct 2026 16:39:07 +0700 Subject: [PATCH 1/4] [FIX] web_chatter_position: avoid x2many column resize loop With the "bottom" or "sided" position, the width of the form sheet followed its content, while x2many lists compute their column widths from that same width. After a window resize the columns shrank step by step every 200ms instead of settling at once. - bottom: keep the core width of the sheet background (100%), only remove its max width. - sided: keep the core classes of the form renderer (they were all replaced, dropping o_form_renderer, o_form_editable...) and let the sheet background shrink beside the chatter. Assisted-by: Claude Opus 5.5 --- .../static/src/js/web_chatter_position.esm.js | 8 ++++++-- .../static/src/scss/form_controller.scss | 10 +++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/web_chatter_position/static/src/js/web_chatter_position.esm.js b/web_chatter_position/static/src/js/web_chatter_position.esm.js index d332d1e3aa20..5a92926faa4c 100644 --- a/web_chatter_position/static/src/js/web_chatter_position.esm.js +++ b/web_chatter_position/static/src/js/web_chatter_position.esm.js @@ -71,9 +71,13 @@ patch(FormCompiler.prototype, { const form = super.compileForm(el, params); const sheet = form.querySelector(".o_form_sheet_bg"); if (sheet && odoo.web_chatter_position === "sided") { + // Keep the core classes, only force the side by side layout + const tAttfClass = form.getAttribute("t-attf-class") || ""; setAttributes(form, { - "t-attf-class": "", - class: "d-flex d-print-block flex-nowrap h-100", + "t-attf-class": tAttfClass.replace( + /\{\{[^}]*"flex-column"[^}]*\}\}/, + "flex-nowrap h-100" + ), }); } return form; diff --git a/web_chatter_position/static/src/scss/form_controller.scss b/web_chatter_position/static/src/scss/form_controller.scss index d61773f02a73..7ea7ea8cdb6f 100644 --- a/web_chatter_position/static/src/scss/form_controller.scss +++ b/web_chatter_position/static/src/scss/form_controller.scss @@ -7,6 +7,14 @@ .o_form_sheet_bg.o_fullwidth, .o_form_sheet_bg.o_fullwidth .o_form_sheet { max-width: none !important; - width: auto !important; + } + // Width must not follow the content: x2many lists size their columns + // from it, which would loop on every resize + .o_form_sheet_bg.o_fullwidth { + width: 100% !important; + } + // Same for the sheet beside a sided chatter + .o_form_renderer.flex-nowrap > .o_form_sheet_bg { + min-width: 0; } } From 5ee605962df607c20b0d8db9ea6e1236718620b7 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 28 Oct 2026 04:43:54 +0000 Subject: [PATCH 2/4] [BOT] post-merge updates --- README.md | 2 +- web_chatter_position/README.rst | 2 +- web_chatter_position/__manifest__.py | 2 +- web_chatter_position/static/description/index.html | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 07969e758a77..280423f7d26a 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Available addons addon | version | maintainers | summary --- | --- | --- | --- [web_calendar_slot_duration](web_calendar_slot_duration/) | 19.0.1.0.0 | Yajo | Customizable calendar slot durations -[web_chatter_position](web_chatter_position/) | 19.0.1.0.0 | trisdoan | Add an option to change the chatter position +[web_chatter_position](web_chatter_position/) | 19.0.1.0.1 | trisdoan | Add an option to change the chatter position [web_company_color](web_company_color/) | 19.0.1.0.0 | | Web Company Color [web_company_context_highlight](web_company_context_highlight/) | 19.0.1.0.0 | pverkest | Highlight the company switcher when multiple companies are selected [web_dark_mode](web_dark_mode/) | 19.0.1.0.0 | | Enabled Dark Mode for the Odoo Backend diff --git a/web_chatter_position/README.rst b/web_chatter_position/README.rst index ea02f243ad96..27bf5f2e84c0 100644 --- a/web_chatter_position/README.rst +++ b/web_chatter_position/README.rst @@ -11,7 +11,7 @@ Chatter Position !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:83e45f7147e5ef37d3b63106b80b6dd4e5820a1f32f3b4b308c400cca0cfc21e + !! source digest: sha256:538930881311c77fd879ff1d7f93f1290d893faa58f4235c5ccbad586d483ef1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/web_chatter_position/__manifest__.py b/web_chatter_position/__manifest__.py index a5ce749b93c1..7a372c4cbb36 100644 --- a/web_chatter_position/__manifest__.py +++ b/web_chatter_position/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Chatter Position", "summary": "Add an option to change the chatter position", - "version": "19.0.1.0.0", + "version": "19.0.1.0.1", "author": "Hynsys Technologies, Camptocamp, Alitec Pte Ltd," " Odoo Community Association (OCA)", "maintainers": ["trisdoan"], diff --git a/web_chatter_position/static/description/index.html b/web_chatter_position/static/description/index.html index e0edde707086..c20d0aee4a1e 100644 --- a/web_chatter_position/static/description/index.html +++ b/web_chatter_position/static/description/index.html @@ -3,7 +3,7 @@ -README.rst +Chatter Position