Skip to content

Chatter Collapse Toggle

Every form opens with the chatter absent, and one click brings it back.

The short answer

Chatter Collapse Toggle is a free Odoo app that opens every form view with the chatter absent and gives the record sheet the width it was holding. A button in a narrow rail brings the messages back, and leaving the record puts them away again. It covers every model that declares a chatter, with no allow-list and nothing to configure per model.

What it is for

Odoo caps the form sheet so the chatter can sit next to it, which on a wide monitor hands a column of messages a large share of the screen. What you are actually looking at is the order lines, or a company's sub-contacts, or a change request with a wide table in it. All of it squeezed, so that a thread reading Sales Order created can keep its seat. Sometimes those messages are the reason you opened the record. Most of the time they are not.

Platform
Odoo
Category
Odoo workspace
Works with
Odoo 18 · Odoo 19
Technical name
webbox_chatter_collapse
Status
Published on the Odoo App Store
On the store
Odoo 19 Odoo 18
Pricing
Free

What is inside it

  1. 01

    One click apart

    Collapsed, the sheet runs out to the edge of the screen. Expanded, the chatter takes the width mail designs it for and the sheet takes what is left, so neither pane pads white space.

  2. 02

    Every model

    No settings page and no allow-list. The rule is applied while the form arch is compiled, so any view that declares a chatter is covered, including views from modules installed afterwards.

  3. 03

    The toggle

    A small button in a narrow rail between sheet and chatter, with a tooltip and aria-expanded that change with the state. Absent on forms with no chatter, in dialogs, and on print.

  4. 04

    How it is built

    The mail layout computation is left alone. FormCompiler.compile is patched after mail has placed its chatter hooks and one condition is added to each, so the attachment preview keeps working.

  5. 05

    What ships

    One model, for the activation record. No record rules, no field added to any model of yours, two dependencies that both ship with Odoo, and everything else front-end.

What it looks like in practice

  1. A sales order's Amount column sits two thirds of the way across the screen

    The sheet is capped so the messages can sit beside it, so a document with several columns is squeezed while a thread of notes holds its width.

    The form opens with no chatter nodes in the DOM at all, not hidden with CSS, and the sheet takes the freed width out to the toggle rail.

    Chatter on screen
    978 px
    Chatter collapsed
    1554 px
    Handed back to the sheet
    +576 px

    Figures from the module's own demo data, on a fresh install. Install with demo data, activate under Settings then Chatter Collapse Toggle, and open sales order S00022 at 1600 px.

    One click apartThe toggle

  2. A form from a module installed last week needs no setup

    A newly installed app brings its own form views, and some of them declare a chatter. Nothing was added to any list of models.

    The condition rides on the arch compilation rather than a configured list, so the new view opens collapsed the first time it renders. There is no model to register and none you can exempt.

    Behaviour of the shipped code.

    Every modelHow it is built

  3. You expand the messages, leave the record, and come straight back

    A log note was worth reading on one task, so the panel was opened. Then you navigate away and open the same task again.

    A useEffect watching the model and record id collapses the panel, so re-opening the record you just left starts collapsed as well. The reset keys on the record rather than on unmount, and nothing is stored anywhere.

    Behaviour of the shipped code.

    One click apartThe toggle

What it deliberately does not do

It never remembers
There is no user preference, no cookie and no field on res.users. Expanding lasts as long as that record is on screen.
No per-model configuration
You cannot exempt a model, a view or a user group. It is every chatter form or none, and uninstalling is the off switch.
Dialogs are untouched
A record opened in a modal keeps its chatter and gets no toggle. A dialog is already narrow, and a button that shuffles its width would be wrong there.
Forms only
List, kanban, calendar, pivot and the Discuss app are all left exactly as Odoo ships them.

Questions

Can I install this on Odoo Online?
No. Odoo Online cannot install modules that contain Python, so this runs on Odoo.sh or a self-hosted instance. Check the versions listed above for the series and edition it is verified against.
Can the chatter stay open once I expand it?
Only while that record is on screen. There is no user preference, no cookie and no field on res.users, so every form opens collapsed and re-opening the record you just left starts collapsed too. If you want the panel to stay open across records, this is the wrong module.
What does activation send, and what does it not?
Company name, your name, work email, phone, country, how many Odoo users you have, this module's technical name and version, and whether you ticked the optional marketing box. No record counts, no customer data, no field values, no usage tracking afterwards. The module makes exactly one outbound request in its life.
What happens if my server cannot reach the internet?
The details are stored locally, activation completes anyway, and an hourly scheduled action delivers them if the network ever allows. Until the form is filled in the module does nothing at all: every form behaves exactly as Odoo ships it, so an un-activated database is never worse off.

Have something to build?

Tell us the problem. We'll come back with a plan, a price, and who'd actually build it.

  • Free scoping call
  • Reply within 1 business day
  • No lock-in