プロジェクト

全般

プロフィール

Vote #81405

完了

Change total spent time link to global time entries when issue has subtasks that can be on non descendent projects

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

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

0%

予定工数:
category_id:
2
version_id:
167
issue_org_id:
35134
author_id:
399232
assigned_to_id:
107353
comments:
14
status_id:
5
tracker_id:
1
plus1:
0
affected_version:
closed_on:
affected_version_id:
152
ステータス-->[Closed]

説明

Parent issue displays total spent hours. It includes self time entries and all of subtasks and also gives user a link to @time_entries@ controller. Link leads to @time_entries@ inside a parent issue project so if any of subtask will be in different project than parent you won't see it.

@Issue.total_spent_hours@ does not filter time entries by a project.

I guess it's more natural to give link to @time_entries@ instead @projects/:id/time_entries@.


Index: app/helpers/issues_helper.rb
<+>UTF-8
===================================================================
diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb
--- a/app/helpers/issues_helper.rb  (revision ad087516f4f11bb530ea96777e3edc32940e323b)
+++ b/app/helpers/issues_helper.rb  (revision 3c8f6a9152e28c5057710f68b13559db56990dbf)
@@ -259,7 +259,7 @@
 
   def issue_spent_hours_details(issue)
     if issue.total_spent_hours > 0
-      path = project_time_entries_path(issue.project, :issue_id => "~#{issue.id}")
+      path = time_entries_path(:issue_id => "~#{issue.id}")
 
       if issue.total_spent_hours == issue.spent_hours
         link_to(l_hours_short(issue.spent_hours), path)


journals

--------------------------------------------------------------------------------
Indeed, giving link to @time_entries@ instead @projects/:id/time_entries@ fixes this, but with a downside, the user context is changed from project level to global level.

What about setting the link to @time_entries@ only when the "Allow cross-projects subtasks" is set to "With all projects"? If I'm not wrong, this is the only case when this issue reproduces.

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

--------------------------------------------------------------------------------
Marius BALTEANU wrote:
> What about setting the link to @time_entries@ only when the "Allow cross-projects subtasks" is set to "With all projects"? If I'm not wrong, this is the only case when this issue reproduces.
Yes, it is. Agreed that is a better approach, I'll try to redo the patch.

--------------------------------------------------------------------------------
Here is the patch.
--------------------------------------------------------------------------------
The implementation links to global path instead of project path only when:
* the total spent time is greater than spent time (means that the issue has subtasks with time entries logged) *and*
* setting "Allow cross-project subtasks" is "With all projects", "With project tree" or "With project hierarchy".
--------------------------------------------------------------------------------
Patch committed.
--------------------------------------------------------------------------------

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

--------------------------------------------------------------------------------
IssuesHelperTest in 4.2-stable and 4.1-stable branches fails with Ruby 2.4.

<pre>
laphroaig:4.2-stable maeda$ ruby test/helpers/issues_helper_test.rb
Run options: --seed 4533

# Running:

....F

Failure:
IssuesHelperTest#test_issue_spent_hours_details_should_link_to_project_time_entries_depending_on_cross_project_setting [test/helpers/issues_helper_test.rb:385]:
Expected /href="\/projects\/ecookbook\/time_entries\?issue_id=~1"/ to match "154.25 h (Total: <a href=\"/projects/ecookbook/time_entries?issue_id=%7E1\">161.25 h</a>)".

bin/rails test test/helpers/issues_helper_test.rb:379

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

Failure:
IssuesHelperTest#test_issue_spent_hours_details_should_link_to_global_time_entries_depending_on_cross_project_setting [test/helpers/issues_helper_test.rb:396]:
Expected /href="\/time_entries\?issue_id=~1"/ to match "154.25 h (Total: <a href=\"/time_entries?issue_id=%7E1\">161.25 h</a>)".

bin/rails test test/helpers/issues_helper_test.rb:390
</pre>
--------------------------------------------------------------------------------
Thanks for reporting the failures, I've committed the fixes.

Considering that the issue reproduces only on Ruby 2.4 which is no longer supported on trunk, is it ok to fix the tests only on @4.2-stable@ and @4.1-stable@ branches?
--------------------------------------------------------------------------------

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

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

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

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

  • カテゴリIssues_2 にセット
  • 対象バージョン4.1.4_167 にセット

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

いいね!0
いいね!0