Я добавил в наш внутренний плагин 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
.
Вот пример плагина Redmine, который исправляет TimeEntry и добавляет проверку:
https://searchcode.com/file/11439509/tags/0.1/lib/cmi/time_entry_patch.rb
Спросите здесь, если вы застряли на чем-либо.