跳转到主要内容

处理时间窗口的基本模型

项目描述

Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runbot

此模块提供基类和模型,通过 time.window.mixin 来管理时间窗口。

目录

使用

示例实现可以在模块 test_base_time_window 中找到。

由于时间窗口将始终通过M2o关系链接到相关模型,因此在定义继承混合模型的新模型时,应注意以下点以确保重叠检查正常工作

  • 定义类属性 _overlap_check_field:此属性必须指定用于检查与相关模型特定记录链接的重叠时间窗口记录的M2o字段。

  • 将M2o字段添加到相关模型中的 api.constrains

例如

class PartnerTimeWindow(models.Model):
    _name = 'partner.time.window'
    _inherit = 'time.window.mixin'

    partner_id = fields.Many2one(
        res.partner', required=True, index=True, ondelete='cascade'
    )

    _overlap_check_field = 'partner_id'

    @api.constrains('partner_id')
    def check_window_no_overlaps(self):
        return super().check_window_no_overlaps()

已知问题/路线图

  • 使用 float_time 小部件存储时间需要额外处理以确保在正确的时间区域内执行计算,因为该值不是以UTC存储在数据库中,因此必须与 tz 字段相关联。

    在这种情况下,float_time 应仅用于持续时间,而不是用于“时间点”,因为这始终需要一个日期来进行时区转换。 (因为从UTC转换为例如欧洲/布鲁塞尔不会在冬夏因为夏令时给出相同的结果)。

    因此,正确的做法是使用 resource.calendar 使用带重复的DateTime定义时间窗口。

错误跟踪器

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

请不要直接联系贡献者关于支持或技术问题。

鸣谢

作者

  • ACSONE SA/NV

  • Camptocamp

贡献者

维护者

此模块由OCA维护。

Odoo Community Association

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

此模块是GitHub上OCA/server-tools项目的一部分。

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

项目详情


下载文件

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

源代码分发

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

构建分发

支持者

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