Redmine 花时间追踪限制

Redmine spent time tracking restriction

我们最近在我们的组织中安装了 Redmine

我想知道如何只允许用户跟踪过去 3 days 的花费时间。

例如如果今天是 21 May 2018,则用户只能跟踪 18,19,20 & 21 May 2018 的时间。用户无法跟踪 15th May 2018

的时间

有任何插件需要在数据库脚本或其他东西中添加验证。

提前致谢。

我在我们的内部 Redmine 插件中添加了一个验证,以将 TimeEntry#hours 限制为 8 小时。实际行只是标准的 ActiveRecord 验证:

    base.class_eval do
      validate :revalidate_time_entry
    end

...

    def revalidate_time_entry
      if hours && hours >= 0 && hours < 1000  #  Dodge the original validation
        errors.add :hours, :invalid if hours > 8
      end
    end

base.class_eval 是插件中 TimeEntry class 补丁的一部分。下载几乎所有 Redmine 插件并阅读其 ./lib/*/patches 文件夹以了解如何打补丁。您需要在 spent_on 字段上验证它是 > 3.days.ago

这是一个 Redmine 插件示例,它修补了 TimeEntry 并添加了验证:

https://searchcode.com/file/11439509/tags/0.1/lib/cmi/time_entry_patch.rb

如果您遇到任何问题,请在这里询问。