跳转到主要内容

为模型添加多公司支持提供基础。

项目描述

License: LGPL-3

多公司基础

本模块提供了一个抽象模型,这些模型需要继承以实现多公司功能。

本模块不提供直接功能。

实现

多公司抽象

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_hookuninstall_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)。

Try me on Runbot

错误跟踪器

错误在 GitHub Issues 上跟踪。如果遇到问题,请检查是否已经报告了您的问题。如果您是第一个发现它的,请通过提供详细且受欢迎的反馈来帮助我们解决问题。

致谢

图像

  • Odoo 社区协会: 图标

贡献者

维护者

Odoo Community Association

本模块由 OCA 维护。

OCA,即 Odoo 社区协会,是一个非营利组织,其使命是支持 Odoo 功能的协作开发并促进其广泛使用。

要为此模块做出贡献,请访问 http://odoo-community.org

项目详细信息


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

此版本没有可用的源代码分发文件。请参阅 生成分发存档的教程

构建分发

odoo10_addon_base_multi_company-10.0.2.0.1-py2-none-any.whl (29.5 kB 查看哈希值

上传时间 Python 2

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面