summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Balteanu <marius.balteanu@zitec.com>2021-07-26 20:55:09 +0000
committerMarius Balteanu <marius.balteanu@zitec.com>2021-07-26 20:55:09 +0000
commit0765042d64828b277adc47e3a9120f38ca4e96fe (patch)
treeffce38f1ff7ec4d0b16e22fdb57bd3e251cd1c6a
parent2045128a6f4fd9da7cd23f5af90639486089573c (diff)
downloadredmine-0765042d64828b277adc47e3a9120f38ca4e96fe.tar.gz
redmine-0765042d64828b277adc47e3a9120f38ca4e96fe.zip
Total spent time from issue page should link to global time entries if the issue has subtasks and the subtasks can be on projects that are not descendants of the current project (#35134).
git-svn-id: http://svn.redmine.org/redmine/trunk@21085 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/helpers/issues_helper.rb5
-rw-r--r--test/helpers/issues_helper_test.rb22
2 files changed, 27 insertions, 0 deletions
diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb
index 756d7ed4c..b8e1dd414 100644
--- a/app/helpers/issues_helper.rb
+++ b/app/helpers/issues_helper.rb
@@ -264,6 +264,11 @@ module IssuesHelper
if issue.total_spent_hours == issue.spent_hours
link_to(l_hours_short(issue.spent_hours), path)
else
+ # link to global time entries if cross-project subtasks are allowed
+ # in order to show time entries from not descendents projects
+ if %w(system tree hierarchy).include?(Setting.cross_project_subtasks)
+ path = time_entries_path(:issue_id => "~#{issue.id}")
+ end
s = issue.spent_hours > 0 ? l_hours_short(issue.spent_hours) : ""
s += " (#{l(:label_total)}: #{link_to l_hours_short(issue.total_spent_hours), path})"
s.html_safe
diff --git a/test/helpers/issues_helper_test.rb b/test/helpers/issues_helper_test.rb
index a46b44b5b..28a520b3e 100644
--- a/test/helpers/issues_helper_test.rb
+++ b/test/helpers/issues_helper_test.rb
@@ -375,4 +375,26 @@ class IssuesHelperTest < Redmine::HelperTest
assert_equal new_project_issue_path(issue.project, params),
url_for_new_subtask(issue)
end
+
+ def test_issue_spent_hours_details_should_link_to_project_time_entries_depending_on_cross_project_setting
+ %w(descendants).each do |setting|
+ with_settings :cross_project_subtasks => setting do
+ TimeEntry.generate!(:issue => Issue.generate!(:parent_issue_id => 1), :hours => 3)
+ TimeEntry.generate!(:issue => Issue.generate!(:parent_issue_id => 1), :hours => 4)
+
+ assert_match "href=\"/projects/ecookbook/time_entries?issue_id=~1\"", issue_spent_hours_details(Issue.find(1))
+ end
+ end
+ end
+
+ def test_issue_spent_hours_details_should_link_to_global_time_entries_depending_on_cross_project_setting
+ %w(system tree hierarchy).each do |setting|
+ with_settings :cross_project_subtasks => setting do
+ TimeEntry.generate!(:issue => Issue.generate!(:parent_issue_id => 1), :hours => 3)
+ TimeEntry.generate!(:issue => Issue.generate!(:parent_issue_id => 1), :hours => 4)
+
+ assert_match "href=\"/time_entries?issue_id=~1\"", issue_spent_hours_details(Issue.find(1))
+ end
+ end
+ end
end