versions_timeline
A document's earlier versions, shown as a timeline rather than a table, with each entry restorable or downloadable.
August 27, 2026Updated August 28, 20264 min read
| Technical name | versions_timeline |
|---|---|
| Field types | one2many |
| Views | form |
| Module | documents, the Documents app |
| Used in core | The version history on a document form in documents |
| Versions | Odoo 20.0, Odoo 19.0 |
| No-code setup | No. It is set in view XML and depends on module-specific data |
| Alternatives | one2many, many2many_binary, pdf_viewer, attach_document |
What the version timeline does
What this means for your team
Supported options in Odoo 19
| Option | Type | What it does |
|---|---|---|
restore | server call per entry | Promotes the chosen version back to current, demoting the current file to a version.(since Odoo 19.0) |
download | link per entry | Fetches that version's stored file alone, leaving the current version untouched.(since Odoo 19.0) |
delete | server call per entry | Removes the version record and its stored file together, then refreshes the record.(since Odoo 19.0) |
All three actions go to the server. Restoring, downloading and deleting each call a method rather than manipulating the relation in the browser, because each one has to move or remove a stored file.
Working examples
Three actions, all server side
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | In development | Not released. Byte-identical to Odoo 19 on the development branch. |
| Odoo 19.0 | Verified | First version. Verified against the shipped source. |
| Odoo 18.0 | Not available | Widget does not exist. |
| Odoo 17.0 | Not available | Widget does not exist. |
| Odoo 16.0 | Not available | Widget does not exist. |
Upgrade note. The widget is new in Odoo 19. On earlier versions the same records were shown as a plain list, so an upgrade improves the presentation with the standard views and nothing needs migrating.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| The timeline is empty | The document has only ever had one file, so there are no earlier versions. Expected. Versions appear once a replacement is uploaded. |
| Restoring seems to lose the current file | It does not; the current file becomes a version. Look further down the timeline for it. |
| Deleting leaves the entry visible | The record was not refreshed after the call. Reload the form; the deletion happened server side. |
| Users can restore who should not | The widget offers the action to anyone who can edit the record. Control it through access rights on the document. |
| Missing widget error | The Documents module is not installed in that database. Install Documents, or use a plain child list. |
| Options are ignored | The widget declares none. Nothing to configure; the timeline draws from the relation. |
Version timeline vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
versions_timeline | A document's earlier versions, with restore and download per entry | A timeline with three server-side actions rather than a table of records |
| one2many | The same records as a table | No restore, download or delete actions |
| many2many_binary | A set of attachments | Files without version semantics |
| pdf_viewer | Reading the current file | A preview rather than a history |
attach_document | Attaching a document to a record | An upload action rather than a version history |
Frequently asked questions
What does restoring do to the current file?+
Can I download an old version without restoring it?+
Why is deleting a server call?+
Does it have options?+
Which versions have it?+
Document control that survives an audit
Versions, approvals and retention are easy to promise and hard to prove. We implement Odoo Documents with the trail your auditors will ask for, on versions 16 through 19.
Book a free consultation