]> source.dussan.org Git - redmine.git/commitdiff
Fix time entries of sub-projects are not listed when activity is specified in filters...
authorMarius Balteanu <marius.balteanu@zitec.com>
Sun, 20 Feb 2022 18:50:22 +0000 (18:50 +0000)
committerMarius Balteanu <marius.balteanu@zitec.com>
Sun, 20 Feb 2022 18:50:22 +0000 (18:50 +0000)
Patch by Yuichi HARADA.

git-svn-id: http://svn.redmine.org/redmine/trunk@21423 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/time_entry_query.rb
test/functional/queries_controller_test.rb

index 64ba53b6f51df6151bf68e17763745bad571ae87..3b884820f91964b3e142a65196486249bc2cb862 100644 (file)
@@ -88,7 +88,7 @@ class TimeEntryQuery < Query
     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",
index c6b3fec74cc9048ef5817ad618cd0ab3d3069c2a..02dba38ad349318918acd73f403cbbcf96a5388a 100644 (file)
@@ -917,4 +917,28 @@ class QueriesControllerTest < Redmine::ControllerTest
     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