Commit 9fb40b1a authored by Eric Davis's avatar Eric Davis

Project#activities should check all overridden activities, not just active ones.

Fixes #4084

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3239 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent 62c83bdd
......@@ -626,8 +626,8 @@ class Project < ActiveRecord::Base
# Returns all the active Systemwide and project specific activities
def active_activities
overridden_activity_ids = self.time_entry_activities.active.collect(&:parent_id)
overridden_activity_ids = self.time_entry_activities.collect(&:parent_id)
if overridden_activity_ids.empty?
return TimeEntryActivity.shared.active
else
......@@ -657,7 +657,7 @@ class Project < ActiveRecord::Base
else
return TimeEntryActivity.shared.active.
find(:all,
:conditions => ["id NOT IN (?)", self.time_entry_activities.active.collect(&:parent_id)]) +
:conditions => ["id NOT IN (?)", self.time_entry_activities.collect(&:parent_id)]) +
self.time_entry_activities.active
end
end
......
......@@ -521,6 +521,17 @@ class ProjectTest < ActiveSupport::TestCase
assert project.activities(true).include?(overridden_activity), "Inactive Project specific Activity not found"
end
test 'activities should not include active System activities if the project has an override that is inactive' do
project = Project.find(1)
system_activity = TimeEntryActivity.find_by_name('Design')
assert system_activity.active?
overridden_activity = TimeEntryActivity.generate!(:project => project, :parent => system_activity, :active => false)
assert overridden_activity.save!
assert !project.activities.include?(overridden_activity), "Inactive Project specific Activity not found"
assert !project.activities.include?(system_activity), "System activity found when the project has an inactive override"
end
def test_close_completed_versions
Version.update_all("status = 'open'")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment