activities = (project ? project.activities : TimeEntryActivity.shared)
add_available_filter(
"activity_id",
- :type => :list, :values => activities.map {|a| [a.name, a.id.to_s]}
+ :type => :list, :values => activities.map {|a| [a.name, (a.parent_id || a.id).to_s]}
)
add_available_filter(
"project.status",
assert_include ['Dave2 Lopper2', '5', 'locked'], json
assert_include ['A Team', '10', 'active'], json
end
+
+ def test_activity_filter_should_return_active_and_system_activity_ids
+ TimeEntryActivity.create!(:name => 'Design', :parent_id => 9, :project_id => 1)
+ TimeEntryActivity.create!(:name => 'QA', :active => false, :parent_id => 11, :project_id => 1)
+ TimeEntryActivity.create!(:name => 'Inactive Activity', :active => true, :parent_id => 14, :project_id => 1)
+
+ @request.session[:user_id] = 2
+ get(
+ :filter,
+ :params => {
+ :project_id => 1,
+ :type => 'TimeEntryQuery',
+ :name => 'activity_id'
+ }
+ )
+ assert_response :success
+ assert_equal 'application/json', response.media_type
+ json = ActiveSupport::JSON.decode(response.body)
+
+ assert_equal 3, json.count
+ assert_include ["Design", "9"], json
+ assert_include ["Development", "10"], json
+ assert_include ["Inactive Activity", "14"], json
+ end
end