]> source.dussan.org Git - redmine.git/commitdiff
Error displaying time entries filtered by Activity (#26387).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 9 Jul 2017 17:16:01 +0000 (17:16 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 9 Jul 2017 17:16:01 +0000 (17:16 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@16808 e93f8b46-1217-0410-a6f0-8f06a7374b81

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

index 35ff2df1d22a31f16ff7c1eeec727ecc570781f2..ee15699f44cc239985bfa504f27ef5f0932b048c 100644 (file)
@@ -115,6 +115,8 @@ class TimeEntryQuery < Query
   def base_scope
     TimeEntry.visible.
       joins(:project, :user).
+      includes(:activity).
+      references(:activity).
       left_join_issue.
       where(statement)
   end
@@ -124,9 +126,7 @@ class TimeEntryQuery < Query
 
     base_scope.
       order(order_option).
-      joins(joins_for_order_statement(order_option.join(','))).
-      includes(:activity).
-      references(:activity)
+      joins(joins_for_order_statement(order_option.join(',')))
   end
 
   # Returns sum of all the spent hours
index 1f8ad936de071966f77b90e4b7c192a541b71f7a..89b1ccfcf2347270546a1d283ad9f3149e8bc04e 100644 (file)
@@ -847,6 +847,20 @@ class TimelogControllerTest < Redmine::ControllerTest
     assert_equal [t3, t1, t2].map(&:id).map(&:to_s), css_select('input[name="ids[]"]').map {|e| e.attr('value')}
   end
 
+  def test_index_with_activity_filter
+    activity = TimeEntryActivity.create!(:name => 'Activity')
+    entry = TimeEntry.generate!(:issue_id => 1, :hours => 4.5, :activity => activity)
+
+    get :index, :params => {
+      :f => ['activity_id'],
+      :op => {'activity_id' => '='},
+      :v => {'activity_id' => [activity.id.to_s]}
+    }
+    assert_response :success
+    assert_select "tr#time-entry-#{entry.id}"
+    assert_select "table.time-entries tbody tr", 1
+  end
+
   def test_index_with_issue_status_filter
     Issue.where(:status_id => 4).update_all(:status_id => 2)
     issue = Issue.generate!(:project_id => 1, :tracker_id => 1, :status_id => 4)