跳转到主要内容

链式交换器

项目描述

Mature License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runboat

此模块允许交换字段的值并以链式方式传播到相关记录。例如:更改已确认销售订单的交货地址,它应该也在其交货订单中更改。

它还允许根据规则应用约束,不允许执行此更改,因此业务逻辑不会中断。例如:如果交货订单已验证,则不允许更改交货地址。

此模块设置链式交换和约束需要一些技术知识,因为它通过技术名称和Python代码定义。

警告:请谨慎使用此模块,因为如果交换没有正确设计,可能会破坏数据库的一致性。

目录

配置

要配置此模块,您需要

  1. 转到 设置 > 字段交换 > 字段交换

  2. 创建一个新对象,并按以下示例设置数据

    • 用于识别它并用于操作名称的名称。

    • 选择交换将开始的源模型。

    • 选择要执行的交换的起始字段。

    • 添加多个链式字段。它们使用点表示法表示为字符串,以源模型为起点查找第一个字段,并从那里继续钻取。例如:对于 sale.order 模型的 picking_ids.partner_id 将进入相关的交货订单,并更改那里的客户。

    • 添加限制链式交换的可能约束。它们是必须作为布尔值评估的Python表达式,且必须是一行。如果评估结果为真,则会抛出消息,不允许交换。您可以在代码中使用变量records,它将引用用于交换的选中记录。示例:限制已验证的送货订单的销售订单。

      any(p.state == ‘done’ for p in records.mapped(‘picking_ids.state’))

      您还可以使用其他变量,如envdatedatetime。每个约束都有一个名称,用于标识它,并在尝试执行交换时显示该名称。

  3. 单击“添加操作”智能按钮以在源模型中添加新操作。

在演示数据库中,您可以检查示例“语言”,该示例更改联系人的语言并将其传播给子联系人。

用法

要使用此模块,您需要

  1. 以列表模式转到源文档。

  2. 选择一个或多个记录。

  3. 单击操作,找到“链式交换:<交换名称>”选项。

  4. 如果选中的记录之一不符合约束之一,则会显示消息,且交换将不会继续。

  5. 如果一切正常,将弹出一个窗口,您将看到一个用于填写新值的字段。

  6. 单击“更改”,交换将被执行。

  7. 在源文档的聊天中,将记录完成的交换。

错误跟踪器

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

请不要直接联系贡献者以寻求支持或帮助解决技术问题。

致谢

作者

  • Tecnativa

贡献者

维护者

本模块由OCA维护。

Odoo Community Association

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

本模块是OCA/server-ux项目在GitHub上的组成部分。

欢迎您贡献力量。有关如何贡献的更多信息,请访问https://odoo-community.org/page/Contribute

项目详情


下载文件

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

源代码分发

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

构建的分发

odoo_addon_chained_swapper-15.0.1.0.4-py3-none-any.whl (42.2 kB 查看哈希值)

上传时间 Python 3

由以下提供支持