Index: app/models/issue_query.rb =================================================================== --- app/models/issue_query.rb (revision 12027) +++ app/models/issue_query.rb (working copy) @@ -263,6 +263,17 @@ :default_order => 'desc', :caption => :label_spent_time ) + + @available_columns.insert index+1, QueryColumn.new(:total_spent_hours, + :sortable => "COALESCE( " + + "(SELECT SUM(t.hours) FROM #{TimeEntry.table_name} AS t JOIN #{Issue.table_name} AS i ON t.issue_id = i.id " + + "WHERE (i.root_id = #{Issue.table_name}.root_id) " + + "AND (i.lft >= #{Issue.table_name}.lft) " + + "AND (i.rgt <= #{Issue.table_name}.rgt) " + + "), 0) ", + :default_order => 'desc', + :caption => :label_total_spent_time + ) end if User.current.allowed_to?(:set_issues_private, nil, :global => true) || Index: config/locales/de.yml =================================================================== --- config/locales/de.yml (revision 12027) +++ config/locales/de.yml (working copy) @@ -726,6 +726,7 @@ label_sort_lower: Eins tiefer label_sort_lowest: Ans Ende label_spent_time: Aufgewendete Zeit + label_total_spent_time: Kumulierte aufgewendete Zeit (mit Unteraufgaben) label_start_to_end: Anfang - Ende label_start_to_start: Anfang - Anfang label_statistics: Statistiken Index: config/locales/en.yml =================================================================== --- config/locales/en.yml (revision 12027) +++ config/locales/en.yml (working copy) @@ -732,6 +732,7 @@ label_changes_details: Details of all changes label_issue_tracking: Issue tracking label_spent_time: Spent time + label_total_spent_time: Cumulated spent time (with subissues) label_overall_spent_time: Overall spent time label_f_hour: "%{value} hour" label_f_hour_plural: "%{value} hours"