我们最近在我们的组织中安装了 Redmine 。
我想知道如何仅允许用户跟踪过去3 days
的花费时间。
e.g。如果今天为21 May 2018
,则用户只能跟踪18,19,20 & 21 May 2018
的时间。用户无法跟踪15th May 2018
有任何插件需要在数据库脚本或其他内容中添加验证。
提前致谢。
答案 0 :(得分:1)
我在内部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类补丁的一部分。下载几乎所有Redmine插件并阅读其./lib/*/patches文件夹以了解如何修补。您需要在spent_on
字段进行验证> 3.days.ago
。
以下是修补TimeEntry并添加验证的Redmine插件示例:
https://searchcode.com/file/11439509/tags/0.1/lib/cmi/time_entry_patch.rb
如果你遇到任何问题,请在这里询问。