# 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
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
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'")