Project.activities should always return a ActiveRecord::Relation (#15983).

git-svn-id: http://svn.redmine.org/redmine/trunk@12854 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2014-02-07 08:36:49 +00:00
parent 8b58c95212
commit 171581da7e
2 changed files with 10 additions and 8 deletions

View File

@ -995,15 +995,15 @@ class Project < ActiveRecord::Base
# Returns the systemwide active activities merged with the project specific overrides
def system_activities_and_project_overrides(include_inactive=false)
if include_inactive
return TimeEntryActivity.shared.
where("id NOT IN (?)", self.time_entry_activities.collect(&:parent_id)).all +
self.time_entry_activities
else
return TimeEntryActivity.shared.active.
where("id NOT IN (?)", self.time_entry_activities.collect(&:parent_id)).all +
self.time_entry_activities.active
t = TimeEntryActivity.table_name
scope = TimeEntryActivity.where(
"(#{t}.project_id IS NULL AND #{t}.id NOT IN (?)) OR (#{t}.project_id = ?)",
time_entry_activities.map(&:parent_id), id
)
unless include_inactive
scope = scope.active
end
scope
end
# Archives subprojects recursively

View File

@ -730,6 +730,7 @@ class ProjectTest < ActiveSupport::TestCase
def test_activities_should_use_the_system_activities
project = Project.find(1)
assert_equal project.activities, TimeEntryActivity.where(:active => true).all
assert_kind_of ActiveRecord::Relation, project.activities
end
@ -739,6 +740,7 @@ class ProjectTest < ActiveSupport::TestCase
assert overridden_activity.save!
assert project.activities.include?(overridden_activity), "Project specific Activity not found"
assert_kind_of ActiveRecord::Relation, project.activities
end
def test_activities_should_not_include_the_inactive_project_specific_activities