跳转到主要内容

处理时间窗口的基本模型

项目描述

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字段。

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

例如

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

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

致谢

作者

  • ACSONE SA/NV

  • Camptocamp

贡献者

Trobz

其他致谢

本模块的开发得到了以下机构的财务支持

  • 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 状态页面