为模型添加多公司支持提供基础。
项目描述
多公司基础
本模块提供了一个抽象模型,这些模型需要继承以实现多公司功能。
本模块不提供直接功能。
实现
多公司抽象
multi.company.abstract 模型旨在被任何希望实现多公司功能的模型继承。逻辑不要求在继承的模型上预先存在公司字段,但即使存在也不会受到影响。
当继承 multi.company.abstract 模型时,您必须注意它是在 _inherit 数组中列出的第一个模型
class ProductTemplate(models.Model):
_inherit = ["multi.company.abstract", "product.template"]
_name = "product.template"
_description = "Product Template (Multi-Company)"
multi.company.abstract 提供以下字段
company_ids - 所有属于此记录的公司。这是一个特殊的 res.company.assignment 视图,允许绕过标准的跨公司安全策略。这些策略通常会在用户不是当前运营公司的情况下阻止用户查看另一个公司的记录。当比较此字段中的记录与实际公司记录时,请注意苹果与橙子的问题。
company_id - 基于当前用户和记录允许的公司传递单个公司。
钩子
提供了一个通用的 post_init_hook 和 uninstall_hook,这将改变预存在的单公司安全规则以使其能够识别多公司。
不幸的是,这些钩子并不是在所有情况下都能工作,但它们在相关情况下可以大大减少样板代码。
import logging
_logger = logging.getLogger(__name__)
try:
from odoo.addons.base_multi_company import hooks
except ImportError:
_logger.info('Cannot find `base_multi_company` module in addons path.')
def post_init_hook(cr, registry):
hooks.post_init_hook(
cr,
'product.product_comp_rule',
'product.template',
)
def uninstall_hook(cr, registry):
hooks.uninstall_hook(
cr,
'product.product_comp_rule',
)
实现这些钩子的模块首先需要确定记录的正确规则(例如,上面的示例中的 product.product_comp_rule)。
错误跟踪器
错误在 GitHub Issues 上跟踪。如果遇到问题,请检查是否已经报告了您的问题。如果您是第一个发现它的,请通过提供详细且受欢迎的反馈来帮助我们解决问题。
致谢
图像
Odoo 社区协会: 图标。
贡献者
Dave Lasley <dave@laslabs.com>
Pedro M. Baeza <pedro.baeza@tecnativa.com>
Laurent Mignon <laurent.mignon@acsone.eu>
Cédric Pigeon <cedric.pigeon@acsone.eu>
维护者
本模块由 OCA 维护。
OCA,即 Odoo 社区协会,是一个非营利组织,其使命是支持 Odoo 功能的协作开发并促进其广泛使用。
要为此模块做出贡献,请访问 http://odoo-community.org。
项目详细信息
哈希值 for odoo10_addon_base_multi_company-10.0.2.0.1-py2-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9a81d4d756b4ec3209cc83b7d74faf295561963290391c41780637f8de962885 |
|
MD5 | 6e30cce4512c0ee8b98b1d222408918e |
|
BLAKE2b-256 | 67cff2a01ce63762b62bdd5fa997819fb69c5072bc2edbab713eb0099c6d78d6 |