跳转到主要内容

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

项目描述

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 问题 上跟踪。如果遇到麻烦,请检查是否已报告您的问题。如果您是第一个发现的,请通过提供详细且受欢迎的反馈来帮助我们解决问题。

鸣谢

图片

  • Odoo 社区协会:图标

贡献者

维护者

Odoo Community Association

此模块由 OCA 维护。

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

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

项目详情


下载文件

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

源分发

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

构建分发

odoo11_addon_base_multi_company-11.0.1.0.0.99.dev9-py2.py3-none-any.whl (28.4 kB 查看散列)

上传日期 Python 2 Python 3

支持者:

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