summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGo MAEDA <maeda@farend.jp>2024-10-26 06:38:43 +0000
committerGo MAEDA <maeda@farend.jp>2024-10-26 06:38:43 +0000
commitc8b6859ba6ecbef2626a933e83ba6632f36306bb (patch)
tree075236c4abd11cf5eb0e91e5f638eba1ccc93152
parent2e4c0df758132e0e6f7d743fcf44ece896f349de (diff)
downloadredmine-c8b6859ba6ecbef2626a933e83ba6632f36306bb.tar.gz
redmine-c8b6859ba6ecbef2626a933e83ba6632f36306bb.zip
Add column totals to Issues Summary Report (#691).
Contributed by David Petersen (user:petersendidit). git-svn-id: https://svn.redmine.org/redmine/trunk@23163 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/assets/stylesheets/application.css1
-rw-r--r--app/views/reports/_details.html.erb11
-rw-r--r--app/views/reports/_simple.html.erb8
-rw-r--r--test/functional/reports_controller_test.rb11
4 files changed, 31 insertions, 0 deletions
diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css
index e8242c6ca..630c78476 100644
--- a/app/assets/stylesheets/application.css
+++ b/app/assets/stylesheets/application.css
@@ -352,6 +352,7 @@ tr.idnt-8 td.subject, tr.idnt-8 td.name {padding-left: 136px; background-positio
tr.idnt-9 td.subject, tr.idnt-9 td.name {padding-left: 152px; background-position: 136px 50%;}
table.issue-report {table-layout:fixed;}
+table.issue-report tr.total, table.issue-report-detailed tr.total { font-weight: bold; border-top:2px solid #d0d7de;}
.issue-report-graph {width: 75%; margin: 2em 0;}
tr.entry td { white-space: nowrap; }
diff --git a/app/views/reports/_details.html.erb b/app/views/reports/_details.html.erb
index ab660bc16..930fca6a8 100644
--- a/app/views/reports/_details.html.erb
+++ b/app/views/reports/_details.html.erb
@@ -24,6 +24,17 @@
</tr>
<% end %>
</tbody>
+<tfoot>
+<tr class="total">
+ <td><%= l(:label_total) %></td>
+ <% for status in @statuses %>
+ <td><%= aggregate data, { "status_id" => status.id } %></td>
+ <% end %>
+ <td><%= aggregate data, { "closed" => 0 } %></td>
+ <td><%= aggregate data, { "closed" => 1 } %></td>
+ <td><%= aggregate data, { } %></td>
+</tr>
+</tfoot>
</table>
<% other_formats_links do |f| %>
<%= f.link_to_with_query_parameters 'CSV', {}, :onclick => "showModal('csv-export-options', '330px'); return false;" %>
diff --git a/app/views/reports/_simple.html.erb b/app/views/reports/_simple.html.erb
index 754b1f21d..2237728b2 100644
--- a/app/views/reports/_simple.html.erb
+++ b/app/views/reports/_simple.html.erb
@@ -17,6 +17,14 @@
<td><%= aggregate_link data, { field_name => row.id }, aggregate_path(@project, field_name, row, :status_id => "*", :subproject_id => nil) %></td>
</tr>
<% end %>
+<tfoot>
+<tr class="total">
+ <td><%= l(:label_total) %></td>
+ <td><%= aggregate data, { "closed" => 0 } %></td>
+ <td><%= aggregate data, { "closed" => 1 } %></td>
+ <td><%= aggregate data, { } %></td>
+</tr>
+</tfoot>
</tbody>
</table>
<% end %>
diff --git a/test/functional/reports_controller_test.rb b/test/functional/reports_controller_test.rb
index 497176b1d..a68c13536 100644
--- a/test/functional/reports_controller_test.rb
+++ b/test/functional/reports_controller_test.rb
@@ -208,6 +208,17 @@ class ReportsControllerTest < Redmine::ControllerTest
assert_select ':nth-child(9)', :text => '1' # closed
assert_select ':nth-child(10)', :text => '3' # total
end
+ assert_select 'table.list tfoot :nth-child(1)' do
+ assert_select 'td', :text => 'Total'
+ assert_select ':nth-child(2)', :text => '3' # status:1
+ assert_select ':nth-child(3)', :text => '0' # status:2
+ assert_select ':nth-child(4)', :text => '0' # status:3
+ assert_select ':nth-child(5)', :text => '0' # status:4
+ assert_select ':nth-child(6)', :text => '1' # status:5
+ assert_select ':nth-child(8)', :text => '3' # open
+ assert_select ':nth-child(9)', :text => '1' # closed
+ assert_select ':nth-child(10)', :text => '4' # total
+ end
end
def test_get_issue_report_details_by_assignee_should_show_non_assigned_issue_count