プロジェクト

全般

プロフィール

Vote #80472

完了

Add support for grouping by issue on timelog view

Admin Redmine さんが3年以上前に追加. 3年以上前に更新.

ステータス:
Closed
優先度:
通常
担当者:
-
カテゴリ:
Time tracking_13
対象バージョン:
開始日:
2022/05/09
期日:
進捗率:

0%

予定工数:
category_id:
13
version_id:
152
issue_org_id:
32436
author_id:
58128
assigned_to_id:
1
comments:
10
status_id:
5
tracker_id:
2
plus1:
0
affected_version:
closed_on:
affected_version_id:
ステータス-->[Closed]

説明

We can view how many hours we spend for the target issue and its child issues in timelog view (@/projects/${PROJECT}/time_entries?set_filter=1&f[]=issue_id&op[issue_id]=~&v[issue_id][]=${ISSUE_ID}@).

If we can group by issue, we can confirm how many hours we spend for each issue in the view easily. It's useful to analysis which issue was heavy.

The attached patch implements this feature.


journals

This is a nice improvement. Setting the target version to 4.1.0.

!{width: 802px; border: 1px solid #ccc;}.spent-time-group-by-issue@2x.png!
--------------------------------------------------------------------------------
Committed, thanks.
--------------------------------------------------------------------------------
A test fails on Postgresql (because of the #32404):

<pre><code>
Failure:
TimelogControllerTest#test_index_grouped_by_issue [/builds/redmine-org/redmine/test/functional/timelog_controller_test.rb:1429]:
--- expected
+++ actual
@@ -1 +1 @@
-"Bug #1: Cannot print recipes"
+"Bug #3: Error 281 when updating a recipe"

bin/rails test test/functional/timelog_controller_test.rb:1422
</code></pre>

Until we fix that issue, I think it is good enough to rewrite the test added in r19063 as following:

<pre><code class="diff">
index 9c0b958b9..a362e769d 100644
--- a/test/functional/timelog_controller_test.rb
+++ b/test/functional/timelog_controller_test.rb
@@ -1426,10 +1426,6 @@ class TimelogControllerTest < Redmine::ControllerTest
}
assert_response :success

- assert_select 'tr.group span.name' do |elements|
- target_element = elements[1]
- assert_equal "Bug #1: Cannot print recipes", target_element.text
- assert_select target_element, '+ span.count', :text => '2'
- end
+ assert_select 'tr.group span.name', :text => "Bug #1: Cannot print recipes"
end
end

</code></pre>
--------------------------------------------------------------------------------
Does the following also work on PostgreSQL?

<pre><code class="diff">
diff --git a/test/functional/timelog_controller_test.rb b/test/functional/timelog_controller_test.rb
index 9c0b958b99..d2f6c94640 100644
--- a/test/functional/timelog_controller_test.rb
+++ b/test/functional/timelog_controller_test.rb
@@ -1426,10 +1426,8 @@ class TimelogControllerTest < Redmine::ControllerTest
}
assert_response :success

- assert_select 'tr.group span.name' do |elements|
- target_element = elements[1]
- assert_equal "Bug #1: Cannot print recipes", target_element.text
- assert_select target_element, '+ span.count', :text => '2'
+ assert_select 'tr.group span.name', :text => 'Bug #1: Cannot print recipes' do
+ assert_select '+ span.count', :text => '2'
end
end
end
</code></pre>
--------------------------------------------------------------------------------
Kouhei Sutou wrote:
> Does the following also work on PostgreSQL?
>
> [...]

From my point of view, it is not so important to validate the group count number in this case.
--------------------------------------------------------------------------------
I don't have strong opinion for this. I'm OK without assertion for count.
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
Kouhei Sutou wrote:
> Does the following also work on PostgreSQL?
>
> [...]

TimelogControllerTest passed after applying the #32436-4 patch.

-- Before: trunk(r19089) --

<pre>
$ RAILS_ENV=test bundle exec rake db:migrate:reset

$ RAILS_ENV=test bundle exec rake test TEST=test/functional/timelog_controller_test.rb
Run options: --seed 27908

# Running:

............................................................................................F

Failure:
TimelogControllerTest#test_index_grouped_by_issue [test/functional/timelog_controller_test.rb:1429]:
--- expected
+++ actual
@@ -1 +1 @@
-"Bug #1: Cannot print recipes"
+"Bug #3: Error 281 when updating a recipe"

bin/rails test test/functional/timelog_controller_test.rb:1422

..........

Finished in 19.580212s, 5.2604 runs/s, 16.1387 assertions/s.
103 runs, 316 assertions, 1 failures, 0 errors, 0 skips
</pre>

-- After: Apply #32436-4 patch --

<pre>
$ RAILS_ENV=test bundle exec rake db:migrate:reset

$ RAILS_ENV=test bundle exec rake test TEST=test/functional/timelog_controller_test.rb
Run options: --seed 52670

# Running:

.......................................................................................................

Finished in 21.153100s, 4.8693 runs/s, 14.9387 assertions/s.
103 runs, 316 assertions, 0 failures, 0 errors, 0 skips
</pre>
--------------------------------------------------------------------------------
Kouhei Sutou wrote:
> Does the following also work on PostgreSQL?

Thanks, the assertion is better like this as it doesn't rely on the display order. It's committed.
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

Admin Redmine さんが3年以上前に更新

  • カテゴリTime tracking_13 にセット
  • 対象バージョン4.2.0_152 にセット

他の形式にエクスポート: Atom PDF

いいね!0
いいね!0