Файл манифеста
Файл манифеста служит для объявления пакета python в качестве модуля Odoo и для указания метаданных модуля.
Это файл под названием __manifest__.py
, содержащий словарь Python, где каждый ключ определяет метаданные модуля.
{
'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',
],
}
Доступные поля манифеста:
name
(str
, обязательный параметр)- удобочитаемое имя модуля
version
(str
)- версия модуля должна соответствовать правилам semantic versioning
description
(str
)- расширенное описание модуля, в формате reStructuredText
author
(str
)- имя автора модуля
website
(str
)- URL веб-сайта автора модуля
license
(str
, по умолчанию:LGPL-3
)лицензия на распространение для модуля:
- GPL-2
- GPL-2 или любая более поздняя версия
- GPL-3
- GPL-3 или любая более поздняя версия
- AGPL-3
- LGPL-3
- Другая утвержденная OSI лицензия
- OEEL-1 (Odoo Enterprise Edition License v1.0)
- OPL-1 (Odoo Proprietary License v1.0)
- Другие проприетарные
category
(str
, по умолчанию:Uncategorized
)категория классификации в Odoo, примерная область бизнеса применения модуля.
Рекомендуется использовать существующие категории. Если введена произвольная категория, которой не существует, она создастся «на лету». Иерархия категорий может быть создана с использованием разделителя
/
, напримерFoo / Bar
создаст категориюFoo
, категориюBar
в качестве дочерней категорииFoo
, и установитBar
, как категорию модуля.depends
(list(str)
)Модули Odoo, которые должны быть предварительно установлены для работы данного модуля, или потому, что этот модуль использует их функции, или потому, что он изменяет ресурсы, которые они определяют.
Когда модуль установлен, все его зависимости устанавливаются перед ним. Аналогично, зависимости загружаются до загрузки модуля.
data
(list(str)
)- Список файлов данных, которые необходимо всегда устанавливать или обновлять с помощью модуля. В списке пути начинаются от корневого каталога модуля.
demo
(list(str)
)- Список файлов данных, которые устанавливаются или обновляются только в демонстрационном режиме.
auto_install
(bool
, по умолчанию:False
)Если значение
True
, этот модуль будет автоматически установлен, если все его зависимости установлены.Данный параметр обычно используется для установки «связующих модулей», реализующих интеграцию между двумя независимыми друг от друга модулями.
Например,
sale_crm
зависит отsale
иcrm
и имеет значениеauto_install
. Когда установлены какsale
, так иcrm
, он автоматически добавляет к Sale Order отслеживание кампаний в CRMexternal_dependencies
(dict(key=list(str))
)Словарь содержащий python и/или бинарные файлы зависимостей.
Для зависимостей python определите ключ
python
и в качестве значения присвойте ему список импортируемых модулей python.Для зависимостей в виде бинарных файлов определите ключ ``bin`, а ему в качестве значения установите список имен исполняемых двоичных файлов.
Модуль не будет установлен, если на хост-машине не установлен модуль python или двоичный исполняемый файл не найден в переменной окружения PATH.
auto_install
(bool
, по умолчанию:False
)- Должен ли модуль рассматриваться как полноценное приложение (установите значение в
True
) или просто как технический модуль (False
), который предоставляет дополнительную функциональность существующему приложению. css
(list(str)
)- Настройте специальные правила для импорта CSS, эти файлы должны находится в каталоге
static/src/css
внутри самого модуля. images
(list(str)
)- Укажите файлы с изображениями, которые будут использоваться в модуле.
installable
(bool
по умолчанию:True
)- Должен ли пользователь иметь возможность установить модуль из веб-интерфейса или нет.
maintainer
(str
)- Физическое или юридическое лицо, отвечающее за обслуживание этого модуля, по умолчанию предполагается, что автор является сопровождающим.
{pre_init, post_init, uninstall}_hook
(str
)Хуки для установки/удаления модуля, имя функции в файле
__init__.py
внутри модуля, объявленной в строковом виде.pre_init_hook
принимает курсор в качестве единственного аргумента, эта функция выполняется перед установкой модуля.post_init_hook
принимает курсор и реестр в качестве аргументов, эта функция выполняется сразу после установки модуля.uninstall_hook
принимает курсор и реестр в качестве аргументов, эта функция выполняется после удаления модуля.Эти хуки должны использоваться только тогда, когда настройка/очистка, необходимая для этого модуля, либо чрезвычайно сложна, либо невозможна через API.