char_with_placeholder_field_to_check
The widget behind Odoo 19's To review pill on journal entry lists: a char field that flags posted, unreviewed entries to accountants, and quietly disappears again in Odoo 20.
August 25, 2026Updated August 25, 20266 min read
| Technical name | char_with_placeholder_field_to_check |
|---|---|
| Field types | char, text |
| Views | list (core), form |
| Module | account, installed with Invoicing or Accounting |
| Used in core | 2 occurrences in 1 module: the entry number column of two account.move list views |
| Versions | Odoo 19.0 |
| No-code setup | No. Applied in view XML only; Studio has no toggle for it |
| Alternatives | char_with_placeholder_field, badge, account_document_state |
What the To review badge widget does
What this means for your team
Supported options in Odoo 19
| Option | Type | What it does |
|---|---|---|
placeholder_field | field name | Inherited from the char field. A char field on the record whose value serves as a dynamic placeholder. The base widget then displays that placeholder as a muted value when the field is empty. |
dynamic_placeholder | boolean | Inherited from the char field's extractProps. Enables the dynamic placeholder popup used in template-editing contexts; irrelevant on entry lists but technically present. |
The companion field is the real configuration. The badge only works if the view loads checked. Core does this with an invisible column and a comment: <field name="checked" column_invisible="True" groups="account.group_account_user"/>. Drop that line from a customized view and every badge silently disappears, with no error anywhere.
Working examples
One template, two widgets: how the badge is wired
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | In development | Not released. The development branch deletes the widget and reverts both views to char_with_placeholder_field. Re-verified after launch. |
| Odoo 19.0 | Verified | Introduced in Odoo 19; behavior verified against the shipped source. |
| Odoo 18.0 | Not available | The widget does not exist. The checked field already exists on account.move, but the lists use the base widget with no badge. |
| Odoo 17.0 | Not available | Neither this widget nor its base widget exists. |
| Odoo 16.0 | Not available | The widget does not exist. |
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| No To review badges anywhere, even on posted unreviewed entries | The view does not load the checked companion field, so record.data.checked is undefined, which fails the strict === false test. Add <field name="checked" column_invisible="True"/> to the list, as core does. |
| Some users see badges and others do not | The badge node is gated by groups="account.group_account_user". Expected. Grant the Accountant access level to reviewers who should see it. |
| Badges appear on a column using the plain base widget | The badge is injected into the shared base template by extension-mode inheritance, and that view loads checked and state fields that satisfy the condition. Remove the companion fields from that view, or accept the badge; the markup is shared by design. |
| Draft entries never show the badge | The condition requires state to be exactly 'posted'. Expected. Draft entries are not reviewable yet. |
| Missing-widget console warning after an upgrade past 19 | The widget is removed on the Odoo 20 development branch. Swap the view back to char_with_placeholder_field during migration. |
To review badge widget vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
char_with_placeholder_field_to_check | Entry-number columns that must flag posted, unreviewed records | Adds a group-gated To review pill driven by the checked and state fields |
| char_with_placeholder_field | The same column without a review flag | Identical display, including placeholder-as-value, minus the badge |
| badge | Showing a status value as a colored pill on its own | Renders the field value itself as the badge instead of appending one to a char value |
| account_document_state | Status fields that must explain themselves on hover | Selection-based label with an info popover fed by a message field |
Frequently asked questions
What makes the To review badge appear in Odoo 19 journal entry lists?+
Why don't invoicing-only users see the badge?+
Is char_with_placeholder_field_to_check configurable?+
Can I reuse the widget for my own review workflow?+
Why does the source file name end in _to_check_to_check.js?+
What replaces the widget in Odoo 20?+
Need review and approval flags your team actually sees?
Inline status nudges beat buried filters: badge conditions, access-group gating and companion fields have to line up exactly, as this widget shows. We build approval and review workflows inside Odoo lists and forms for versions 16 through 19.
Design my review workflow