Widget category
Odoo Discuss / Productivity widgets
Discuss and productivity widgets drive messaging, activities, followers and notifications — the chatter column and everything that schedules or logs a follow-up.
They tend to be composite widgets with their own sub-components, so the per-widget pages document which parts accept options and which are fixed.
20 widgets documented212 uses in Odoo coreVersions 16.0 → 20.0 verified per widget
Every discuss / productivity widget, by use in Odoo core
| Widget | What it does | Field types | Uses in core |
|---|---|---|---|
| many2one_avatar_user | The assignee field with a face: many2one_avatar_user renders a user link as an avatar with online presence and chat access, and wires up the Assign to me command. | many2one | 157 |
| html_mail | The editor behind Odoo's email bodies. html_mail is the html field retuned for mail clients: styles inlined on save, layouts email clients cannot render stripped out. | html | 12 |
| many2many_tags_email | The email tags field is the recipient picker behind Odoo's share and invite dialogs: partner pills that show emails, accept Name <email> input, and can fix a bad address inline. | many2many, one2many | 9 |
| sms_widget | The message box in Odoo's Send SMS dialog does live math while you type: sms_widget detects the character encoding, counts the characters, and tells you how many SMS segments, and therefore credits, the message will cost. | text, char, html | 6 |
| datetime-picker | Despite the name, datetime-picker is not something you put in a widget= attribute on a form view. It is a website side interaction that upgrades any frontend <input> carrying data-widget="datetime-picker" into Odoo's calendar picker. | — | 4 |
| html_composer_message | The rich text area of Odoo's full email composer is its own field widget. html_composer_message tunes the HTML editor for writing messages: mentions, collapsed quotes, batch-only placeholders, and attachment syncing. | html | 3 |
| mail_composer_attachment_list | The attachment rows under Odoo's email composer are the mail_composer_attachment_list widget: a stripped-down many2many_binary that lists, opens and deletes, but never uploads. | many2many | 3 |
| selection_badge_icons | The activity scheduling dialog in Odoo 19 picks the activity type from icon-labeled badges. That row of buttons is selection_badge_icons, a many2one-only twist on selection_badge. | many2one | 3 |
| shortcut | Odoo 19's shortcut widget dresses a plain char field with a fixed :: prefix, so the canned response form reads exactly like what users will type in the Discuss composer. | char | 3 |
| text_scheduled_date | New in Odoo 19, the text_scheduled_date widget renders the composer's Send Later button: a clock that opens a dialog with preset slots and a custom picker, then stores the choice in the wizard's scheduled_date field. | char, text | 2 |
| activity_model_selector | Choose a model, then choose a record: the two-step picker on the Schedule Activity wizard. Its cleverest part is protecting the summary you already typed from being wiped by the model change. | char | 1 |
| boolean_update_flag | A checkbox that also answers a second question: did a human change this, or did the server? boolean_update_flag exists because an onchange cannot tell the difference. | boolean | 1 |
| calendar_event_notes_html | The rich text editor for meeting notes, with exactly one plugin taken out. In a narrow calendar panel, drag handles on every block were doing more harm than good. | html | 1 |
| integer_update_flag | The numeric twin of boolean_update_flag: an integer input that also records whether a human, rather than a recalculation, moved the number. It has one sharp edge above 999. | integer | 1 |
| many2manyattendee | Attendee avatars with a tick, a cross or a question mark on each, plus flags for missing emails and people who are already busy. All of it from one server call the widget makes itself. | many2many | 1 |
| many2manyattendeeexpandable | The attendee widget again, with a collapse. In a calendar popover there is no room for thirty avatars, so it shows the counts and lets you open the list when you want it. | many2many | 1 |
| portal_wizard_user_one2many | The Grant Access dialog is one of the few places in Odoo where a double click can send two invitation emails. portal_wizard_user_one2many is the twenty-line widget that stops it. | one2many | 1 |
| question_page_one2many | The survey question list looks like an ordinary embedded list until you add a section. question_page_one2many is the widget that makes sections behave, and it saves the whole survey behind your back on every edit. | one2many, many2many | 1 |
| radio_selection_with_filter | Radio buttons that show only the choices this record is actually allowed to make. Small idea, and in Odoo 19 it changed contract in a way that silently breaks Odoo 18 views. | selection | 1 |
| survey_description_page | A text cell with two affordances bolted on: a button that opens the row, and a pencil marking section rows. Both depend on the widget around it, which is why it does nothing on its own. | char, text | 1 |
Each widget page has the usage XML, Studio steps, every developer option, and a per-version compatibility table verified against the shipped Odoo source.
Other widget categories
Need these working in your Odoo?
The team that documented every widget also builds with them — custom views, upgrades and performance work by senior Odoo developers.
