Skip to main content
iVentureTeam

todo_chatter_panel

The chatter for a to-do, hidden by default on large screens and shown on small ones, toggled from elsewhere in the interface.

Siddharth JambukiyaSiddharth JambukiyaOdoo Techno-Functional Consultant
August 27, 2026Updated August 29, 20264 min read
Technical nametodo_chatter_panel
Viewsform (view widget, <widget> element)
Moduleproject_todo, the To-Do app
Used in coreThe to-do form in project_todo
VersionsOdoo 20.0, Odoo 19.0, Odoo 18.0, Odoo 17.0
No-code setupNo. It is set in view XML and depends on module-specific data
Alternativesmail_activity_list_reschedule_dropdown, subtask_counter, html

What the to-do chatter does

A to-do is mostly a note, and the chatter beside it is mostly empty. Showing it permanently costs half the width of the form for something that is usually not being used.

This widget makes it a panel that can be collapsed. On a phone it starts open, because there the two are stacked rather than side by side; on a desktop it starts closed and is revealed on demand.

The control that reveals it is not part of the widget. A button elsewhere in the interface fires an application event, and this panel listens for it.

What this means for your team

To-do lists live or die on how quickly a note can be captured, and anything permanently occupying screen space works against that. Collapsing the discussion by default is the right default for a personal tool.

The pattern generalizes: for any record where the conversation is occasional rather than continuous, a collapsible chatter is worth considering over the standard permanent one.

Supported options in Odoo 19

The widget declares no options and takes the standard view widget props. The event it listens for and the classes its registration supplies are listed below. Read from the to-do chatter panel source, Odoo 19.0.

OptionTypeWhat it does
TODO:TOGGLE_CHATTERapplication eventCarries a display flag. The only thing that opens or closes the panel.
the small screen flagread from the environmentDecides the starting state: open on small screens, closed otherwise.
additionalClassesregistration hintFive layout classes including the one that hides the panel before the first render.

It manipulates its own parent. Toggling adds or removes a hiding class on the element containing the widget, rather than on the widget's own root, which is what lets it collapse the whole column.

Working examples

Placing it

<widget name="todo_chatter_panel"/>

No attributes. It embeds the standard chatter.

What toggles it

# an application event carrying a display flag
TODO:TOGGLE_CHATTER

Fired by a control elsewhere.

The classes it ships with

o_todo_chatter  d-none
position-relative  p-0  overflow-y-auto

Supplied by the registration.

Open on phones, closed on desktops

The starting state is decided from the environment's small screen flag, and it is worth reading twice: the panel is open when the screen is small and closed when it is not. That is the opposite of what a side panel usually does, and it follows from the layout being stacked on small screens rather than beside the note.

Communication is by application event. The widget subscribes to the bus for a to-do specific toggle event and reads a display flag from it. Nothing in the widget opens or closes itself, which means the control can live wherever the layout needs it.

The toggle then does two things: it records the new state, and it adds or removes a hiding class on the widget's parent element. Reaching for the parent rather than the root is what collapses the entire column, including whatever padding the layout put around the panel.

The registration supplies five layout classes, one of which hides the panel by default. That is why the closed state does not flash on load: the element starts hidden in markup rather than being hidden after the first render.

Version compatibility

VersionStatusNotes
Odoo 20.0Partial / changedNot released. Reworked around newer conventions.
Odoo 19.0VerifiedVerified against the shipped source.
Odoo 18.0VerifiedSame event and class list.
Odoo 17.0VerifiedSame approach with older component conventions.
Odoo 16.0Not availableWidget does not exist.

Upgrade note. Present since Odoo 17 alongside the To-Do app's current form. The event name and the class list have been stable across those versions.

What is changing in Odoo 20

Odoo 20 is expected at Odoo Experience in Brussels, 24 to 26 September 2026. The development branch is unstable and this may still change; we re-verify this page after the release.

Reworked. The development branch updates the component to the newer state and reference conventions. The event-driven toggle and the class list are what to expect to survive.

Common problems and fixes

SymptomCause and fix
The panel never appearsNothing is firing the toggle event. Use the standard to-do form, which provides the control.
It starts open on a desktopThe environment reported a small screen. Check the viewport width and any layout override.
Collapsing leaves a gapThe hiding class is applied to the parent; something is styling a grandparent. Check the surrounding layout classes.
The panel flashes on loadThe hiding class from the registration was removed. Keep the registration's additional classes.
The chatter is emptyThe to-do has no messages or followers yet. Expected on a new record.
The widget is missingThe To-Do module is not installed in that database. Install To-Do.

To-do chatter vs the alternatives

WidgetBest forKey difference
todo_chatter_panelA collapsible chatter beside a to-do, revealed on demandToggled by an application event and hidden by a class on its own parent
mail_activity_list_reschedule_dropdownRescheduling activities from a listAn action rather than a discussion panel
subtask_counterSub-task progress on a rowA counter rather than a panel
htmlThe to-do's own contentThe note rather than the conversation

The standard chatter on the form is right wherever discussion is continuous rather than occasional. This widget exists for the case where the conversation is the exception.

Frequently asked questions

Why is it open on phones and closed on desktops?+
On a small screen the layout stacks rather than sitting side by side, so the panel is not competing with the note for width. On a desktop it is.
How is it toggled?+
By an application event carrying a display flag. Nothing inside the widget opens or closes it, which lets the control live wherever the layout needs it.
Why does it style its parent element?+
Because hiding the widget's own root would leave the column and its padding behind. Applying the class to the parent collapses the whole thing.
Why does it not flash on load?+
The registration ships a hiding class, so the element starts hidden in markup rather than being hidden after the first render.
Which versions have it?+
Odoo 17 onwards. The development branch reworks it around newer conventions.

Personal task tools your team will keep using

To-do lists compete with notebooks and chat, and they lose whenever capture is slow. We configure Odoo To-Do and Project so the quick note and the tracked task are the same thing, on versions 16 through 19.

Book a free consultation

How this page was produced

The small screen dependent starting state, the application event subscription and its display flag, the class toggle applied to the parent element and the five layout classes supplied by the registration were read from the to-do chatter panel source on the Odoo 19.0 branch. Version coverage comes from comparing the file across the 17.0 and 18.0 branches and its absence on 16.0, plus a comparison against the public development branch. Spotted an error? Tell us and we will correct the page.