Manifest
The manifest file serves to declare a python package as an Odoo module and to specify module metadata.
It is a file called __manifest__.py
and contains a single Python
dictionary, where each key specifies module metadatum.
{
'name': "A Module",
'version': '1.0',
'depends': ['base'],
'author': "Author Name",
'category': 'Category',
'description': """
Description text
""",
# data files always loaded at installation
'data': [
'views/mymodule_view.xml',
],
# data files containing optionally loaded demonstration data
'demo': [
'demo/demo_data.xml',
],
}
Available manifest fields are:
name
(str
, required)- the human-readable name of the module
version
(str
)- this module's version, should follow semantic versioning rules
description
(str
)- extended description for the module, in reStructuredText
author
(str
)- name of the module author
website
(str
)- website URL for the module author
license
(str
, defaults:LGPL-3
)- distribution license for the module
category
(str
, default:Uncategorized
)classification category within Odoo, rough business domain for the module.
Although using existing categories is recommended, the field is freeform and unknown categories are created on-the-fly. Category hierarchies can be created using the separator
/
e.g.Foo / Bar
will create a categoryFoo
, a categoryBar
as child category ofFoo
, and will setBar
as the module's category.depends
(list(str)
)Odoo modules which must be loaded before this one, either because this module uses features they create or because it alters resources they define.
When a module is installed, all of its dependencies are installed before it. Likewise dependencies are loaded before a module is loaded.
data
(list(str)
)- List of data files which must always be installed or updated with the module. A list of paths from the module root directory
demo
(list(str)
)- List of data files which are only installed or updated in demonstration mode
auto_install
(bool
, default:False
)If
True
, this module will automatically be installed if all of its dependencies are installed.It is generally used for "link modules" implementing synergic integration between two otherwise independent modules.
For instance
sale_crm
depends on bothsale
andcrm
and is set toauto_install
. When bothsale
andcrm
are installed, it automatically adds CRM campaigns tracking to sale orders without eithersale
orcrm
being aware of one another