Module Manifests¶
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. Possible values:
GPL-2GPL-2 or any later versionGPL-3GPL-3 or any later versionAGPL-3LGPL-3Other OSI approved licenceOEEL-1(Odoo Enterprise Edition License v1.0)OPL-1(Odoo Proprietary License v1.0)Other proprietary
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 / Barwill create a categoryFoo, a categoryBaras child category ofFoo, and will setBaras 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.
توجه
Module base is always installed in any Odoo instance.
But you still need to specify it as dependency to make sure your module is updated when base is updated.
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(boolorlist(str), 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 synergetic integration between two otherwise independent modules.
برای مثال
sale_crmبه هر دوsaleوcrmوابسته است و رویauto_installتنظیم شده است. وقتی هر دویsaleوcrmنصب باشند، بهصورت خودکار ردیابی کمپینهای CRM را به سفارشهای فروش اضافه میکند، بدون آنکهsaleیاcrmاز وجود یکدیگر آگاه باشند.اگر لیستی باشد، باید زیرمجموعهای از وابستگیها را در بر بگیرد. این ماژول بهمحض اینکه همه وابستگیهای آن زیرمجموعه نصب شوند، بهصورت خودکار نصب خواهد شد. وابستگیهای باقیمانده نیز بهصورت خودکار نصب خواهند شد. اگر لیست خالی باشد، این ماژول همواره صرفنظر از وابستگیهایش بهصورت خودکار نصب خواهد شد و آنها نیز نصب خواهند شد.
external_dependencies(dict(key=list(str)))یک دیکشنری حاوی وابستگیهای python و/یا باینری.
برای وابستگیهای python، کلید
pythonباید برای این دیکشنری تعریف شود و فهرستی از ماژولهای python که باید import شوند به آن اختصاص داده شود.برای وابستگیهای باینری، کلید
binباید برای این دیکشنری تعریف شود و فهرستی از نامهای اجرایی باینری به آن اختصاص داده شود.اگر ماژول python در ماشین میزبان نصب نشده باشد یا فایل اجرایی باینری در متغیر محیطی PATH ماشین میزبان یافت نشود، ماژول نصب نخواهد شد.
application(bool، پیشفرض:False)اینکه ماژول بهعنوان یک اپلیکیشن کامل (
True) در نظر گرفته شود یا فقط یک ماژول فنی (False) است که برخی قابلیتهای اضافی را به یک ماژول اپلیکیشن موجود میافزاید.assets(dict)تعریفی از نحوه بارگذاری همه فایلهای استاتیک در باندلهای دارایی مختلف. برای جزئیات بیشتر درباره نحوه توصیف باندلها، صفحه assets را ببینید.
installable(boolپیشفرض:True)اینکه کاربر باید بتواند ماژول را از رابط وب نصب کند یا خیر.
maintainer(str)شخص یا نهاد مسئول نگهداری این ماژول؛ بهصورت پیشفرض فرض میشود که نویسنده، نگهدارنده است.
{pre_init, post_init, uninstall}_hook(str)هوکهایی برای نصب/حذف ماژول؛ مقدار آنها باید رشتهای باشد که نمایانگر نام تابعی تعریفشده در
__init__.pyماژول است.pre_init_hookیک env را بهعنوان تنها آرگومان خود میگیرد؛ این تابع پیش از نصب ماژول اجرا میشود.post_init_hookیک env را بهعنوان تنها آرگومان خود میگیرد؛ این تابع بلافاصله پس از نصب ماژول اجرا میشود.uninstall_hookیک env را بهعنوان تنها آرگومان خود میگیرد؛ این تابع پس از حذف ماژول اجرا میشود.این هوکها فقط زمانی باید استفاده شوند که راهاندازی/پاکسازی مورد نیاز برای این ماژول از طریق api بسیار دشوار یا غیرممکن باشد.
active(bool)منسوخ شده. توسط
auto_installجایگزین شده است.