customContentKanbanLikeWidget
The card grid for building a quotation PDF: pick headers, per-line documents and footers, and fill the form fields inside them.
August 27, 2026Updated August 27, 20264 min read
| Technical name | customContentKanbanLikeWidget |
|---|---|
| Views | form (view widget, <widget> element) |
| Module | sale_pdf_quote_builder, the Sales app |
| Used in core | The quotation form in sale_pdf_quote_builder |
| Versions | Odoo 20.0, Odoo 19.0, Odoo 18.0 |
| No-code setup | No. It is set in view XML and depends on module-specific data |
| Alternatives | quotation_document_many2many, many2many_binary, pdf_viewer |
What the quote PDF picker does
What this means for your team
Supported options in Odoo 19
| Option | Type | What it does |
|---|---|---|
customizable_pdf_form_fields | field written by the widget | Receives the serialized selections and form field values as a single JSON string. |
sale_order_template_id | field watched by an effect | Changing it refetches the available documents, because the template decides which apply. |
state | field watched by an effect | On confirmation the widget forces itself read-only and saves, freezing the composition. |
product_document_ids | relation written per line | Linked or unlinked with parent updates and change handlers deliberately suppressed. |
It saves before it fetches. The refresh saves the quotation first and only fetches when that succeeded, which is what makes documents on newly added order lines available without a manual save.
Working examples
Three suppressions, and a prop written from inside
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | Partial / changed | Not released. Reworked alongside the newer state conventions. |
| Odoo 19.0 | Verified | Verified against the shipped source. |
| Odoo 18.0 | Verified | First version with this card grid. |
| Odoo 17.0 | Not available | Widget does not exist. |
| Odoo 16.0 | Not available | Widget does not exist. |
Upgrade note. Present since Odoo 18 in this form. Odoo 17 had an earlier PDF quote builder without this card grid, so an upgrade changes how documents are chosen.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| No documents are offered | The quotation template and the products carry none. Attach documents to the template or the products first. |
| The cards go read-only | The quotation was confirmed, which freezes the composition deliberately. Expected. Amend before confirming. |
| Documents change when I switch template | An effect refetches on template change. Expected; the template decides which documents apply. |
| Selecting a line document does not trigger pricing changes | Change handlers are deliberately suppressed on that write. Expected, and intentional for performance. |
| Form field values are lost | They live in the serialized JSON field, written when a selection changes. Change a selection to force a rewrite, then save. |
| The widget is missing | The PDF quote builder module is not installed. Install it. |
Quote PDF picker vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
customContentKanbanLikeWidget | Assembling a quotation PDF from selectable header, line and footer documents | Serializes every selection and form value into one JSON field, suppressing change handlers as it writes |
quotation_document_many2many | The document relation itself | A relation field rather than a card grid |
| many2many_binary | Attaching files to a quotation | Separate files rather than one assembled PDF |
| pdf_viewer | Reading a PDF inline | Viewing rather than composing |
Frequently asked questions
Where are the selections stored?+
Why does it save before showing documents?+
Why do line document changes not trigger recalculation?+
Why do the cards lock after confirmation?+
Which versions have it?+
Quotes that look like the deal is worth it
Assembled PDFs, dynamic pricing and templates turn quoting from a document exercise into a sales asset. We implement Odoo Sales and the quote builder, on versions 16 through 19.
Book a free consultation