Patch #12737 ยป no_negative_duration.diff
app/models/issue.rb | ||
---|---|---|
68 | 68 |
validates_length_of :subject, :maximum => 255 |
69 | 69 |
validates_inclusion_of :done_ratio, :in => 0..100 |
70 | 70 |
validates_numericality_of :estimated_hours, :allow_nil => true |
71 |
validate :validate_issue, :validate_required_fields |
|
71 |
validate :validate_issue, :validate_required_fields, :validate_estimated_hours
|
|
72 | 72 | |
73 | 73 |
scope :visible, lambda {|*args| |
74 | 74 |
includes(:project).where(Issue.visible_condition(args.shift || User.current, *args)) |
... | ... | |
147 | 147 |
self.priority ||= IssuePriority.default |
148 | 148 |
self.watcher_user_ids = [] |
149 | 149 |
end |
150 |
self.estimated_hours = nil if estimated_hours == 0 |
|
150 | 151 |
end |
151 | 152 | |
152 | 153 |
# AR#Persistence#destroy would raise and RecordNotFound exception |
... | ... | |
600 | 601 |
end |
601 | 602 |
end |
602 | 603 |
end |
604 |
|
|
605 |
def validate_estimated_hours |
|
606 |
errors.add :estimated_hours, :invalid if estimated_hours && (estimated_hours < 0 || estimated_hours >= 1000) |
|
607 |
end |
|
603 | 608 | |
604 | 609 |
# Set the done_ratio using the status if that setting is set. This will keep the done_ratios |
605 | 610 |
# even if the user turns off the setting later |