Defect #9090 » do_not_allow_spent_time_with_0_hours.patch
app/models/time_entry.rb | ||
---|---|---|
44 | 44 |
validates_presence_of :user_id, :activity_id, :project_id, :hours, :spent_on |
45 | 45 |
validates_presence_of :issue_id, :if => lambda { Setting.timelog_required_fields.include?('issue_id') } |
46 | 46 |
validates_presence_of :comments, :if => lambda { Setting.timelog_required_fields.include?('comments') } |
47 |
validates_numericality_of :hours, :allow_nil => true, :message => :invalid
|
|
47 |
validates_numericality_of :hours, :allow_nil => true, :greater_than => 0, :less_than_or_equal_to => 1000
|
|
48 | 48 |
validates_length_of :comments, :maximum => 1024, :allow_nil => true |
49 | 49 |
validates :spent_on, :date => true |
50 | 50 |
before_validation :set_project_if_nil |
... | ... | |
122 | 122 |
end |
123 | 123 | |
124 | 124 |
def validate_time_entry |
125 |
errors.add :hours, :invalid if hours && (hours < 0 || hours >= 1000) |
|
126 | 125 |
errors.add :project_id, :invalid if project.nil? |
127 | 126 |
errors.add :issue_id, :invalid if (issue_id && !issue) || (issue && project!=issue.project) || @invalid_issue_id |
128 | 127 |
errors.add :activity_id, :inclusion if activity_id_changed? && project && !project.activities.include?(activity) |
test/unit/time_entry_test.rb | ||
---|---|---|
184 | 184 |
assert_equal ["Comment cannot be blank", "Issue cannot be blank"], entry.errors.full_messages.sort |
185 | 185 |
end |
186 | 186 |
end |
187 | ||
188 |
def test_create_should_not_allow_spent_time_with_0_hours |
|
189 |
entry = TimeEntry.new(:project_id => 1, :spent_on => '2010-01-01', :hours => 0, :user => User.find(1), :activity => TimeEntryActivity.first) |
|
190 | ||
191 |
assert !entry.save |
|
192 |
assert_equal 1, entry.errors.count |
|
193 |
end |
|
187 | 194 |
end |