:conditions => ["#{Project.table_name}.status=#{Project::STATUS_ACTIVE}"]
before_create :default_assign
- before_save :close_duplicates, :update_done_ratio_from_issue_status
+ before_save :close_duplicates, :update_done_ratio_from_issue_status, :force_updated_on_change
after_save {|issue| issue.send :after_project_change if !issue.id_changed? && issue.project_id_changed?}
after_save :reschedule_following_issues, :update_nested_set_attributes, :update_parent_attributes, :create_journal
after_destroy :update_parent_attributes
@custom_values_before_change = {}
self.custom_field_values.each {|c| @custom_values_before_change.store c.custom_field_id, c.value }
end
- # Make sure updated_on is updated when adding a note.
- updated_on_will_change!
@current_journal
end
end
end
+ # Make sure updated_on is updated when adding a note
+ def force_updated_on_change
+ if @current_journal
+ self.updated_on = current_time_from_proper_timezone
+ end
+ end
+
# Saves the changes in a Journal
# Called after_save
def create_journal
issue.save!
end
+ def test_adding_journal_should_update_timestamp
+ issue = Issue.find(1)
+ updated_on_was = issue.updated_on
+
+ issue.init_journal(User.first, "Adding notes")
+ assert_difference 'Journal.count' do
+ assert issue.save
+ end
+ issue.reload
+
+ assert_not_equal updated_on_was, issue.updated_on
+ end
+
def test_should_close_duplicates
# Create 3 issues
project = Project.find(1)