OdooWiki OCA HUB
CMS License: LGPL-3

Provide basic information for website records / models via website.published.mixin. This module is meant to be used as a base to build your own CMS.

auto_awesome What this module does

AI-generated from the code · Odoo 16.0

Adds a reusable technical foundation that gives any Odoo record the URLs and permission checks needed to be managed from a CMS front-end. It is a base module for developers, not a ready-made website feature.

This module does not add menus or screens for end users. It provides a mixin (a reusable block of behaviour) called cms.info.mixin that other modules can attach to their own records so those records can be viewed, edited, copied and deleted through CMS-style web addresses.

On any record using the mixin, Odoo automatically computes several read-only web addresses: a public view URL, a CMS edit URL, a CMS copy URL, a CMS delete URL and a delete confirmation URL. These are built from the record's model name and its database ID, so they always point to the right record.

The mixin also answers permission questions: whether the current user created the record, and whether they are allowed to create, edit, publish or delete it. These checks respect Odoo's normal access rights and record rules, so a user only sees actions they are actually permitted to perform.

Finally, a helper method returns a single summary dictionary combining ownership, the create/edit/delete permissions and the relevant URLs. This is meant to be consumed by a CMS front-end to decide which buttons to show. No scheduled jobs, emails or reports are added by this module.

Depends on

base

Required by other modules

Models and fields (1)
  • cms.info.mixin · new modelurl (URL), cms_copy_url (CMS copy URL), cms_edit_url (CMS edit URL), cms_delete_url (CMS delete URL), cms_delete_confirm_url (CMS delete confirm URL)

Text generated by AI (DeepSeek) from reading the Odoo 16.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 3 confirmed, 6 with no information of 9 versions.

Sources · Odoo 14.0

Confirmed on 2026-11-03 in branch 14.0 of OCA/website-cms.

terminal Installation and usage

OCA documentation · Odoo 16.0

New attributes

* ``cms_create_url``: lead to create view. By default ``/cms/create/my.model``
* ``cms_search_url``: lead to search view. By default ``/cms/search/my.model``
* ``cms_edit_url`` (computed field): lead to edit view. By default ``/cms/edit/my.model/model_id``

.. note:: No routing provided.
   This attributes provide only basic information on contents' URLs.
   If you use `cms_form` default routes are handled automatically.
   If not, is up to you to provide your own routes to handle them.


Permission and extra information
  • record.cms_is_owner(): current user is the owner of the record?
  • record.cms_can_edit(): current user can edit this record?
  • record.cms_can_publish(): current user can publish this record?
  • record.cms_can_delete(): current user can delete this record?
  • model.cms_can_create(): current user can create a new record?

Info all in one

When you build CMS UIs you need all those info at once.
This module provides also an helper method `cms_info()`
that gives you back a dictionary containing:

* `is_owner`: True/False,
* `can_edit`: True/False,
* `can_create`: True/False,
* `can_publish`: True/False,
* `can_delete`: True/False,
* `create_url`
* `edit_url`
* `delete_url`

No verified information in OCA: Installation, Configuration.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.