Allow issues grouping by start and due dates (#13803).

git-svn-id: http://svn.redmine.org/redmine/trunk@17723 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2018-12-12 19:10:28 +00:00
parent 887b8d2fdf
commit 72980f4175
2 changed files with 21 additions and 2 deletions

View File

@@ -33,8 +33,8 @@ class IssueQuery < Query
QueryColumn.new(:updated_on, :sortable => "#{Issue.table_name}.updated_on", :default_order => 'desc'), QueryColumn.new(:updated_on, :sortable => "#{Issue.table_name}.updated_on", :default_order => 'desc'),
QueryColumn.new(:category, :sortable => "#{IssueCategory.table_name}.name", :groupable => true), QueryColumn.new(:category, :sortable => "#{IssueCategory.table_name}.name", :groupable => true),
QueryColumn.new(:fixed_version, :sortable => lambda {Version.fields_for_order_statement}, :groupable => true), QueryColumn.new(:fixed_version, :sortable => lambda {Version.fields_for_order_statement}, :groupable => true),
QueryColumn.new(:start_date, :sortable => "#{Issue.table_name}.start_date"), QueryColumn.new(:start_date, :sortable => "#{Issue.table_name}.start_date", :groupable => true),
QueryColumn.new(:due_date, :sortable => "#{Issue.table_name}.due_date"), QueryColumn.new(:due_date, :sortable => "#{Issue.table_name}.due_date", :groupable => true),
QueryColumn.new(:estimated_hours, :sortable => "#{Issue.table_name}.estimated_hours", :totalable => true), QueryColumn.new(:estimated_hours, :sortable => "#{Issue.table_name}.estimated_hours", :totalable => true),
QueryColumn.new(:total_estimated_hours, QueryColumn.new(:total_estimated_hours,
:sortable => "COALESCE((SELECT SUM(estimated_hours) FROM #{Issue.table_name} subtasks" + :sortable => "COALESCE((SELECT SUM(estimated_hours) FROM #{Issue.table_name} subtasks" +

View File

@@ -333,6 +333,25 @@ class IssuesControllerTest < Redmine::ControllerTest
assert_select 'tr.group span.count' assert_select 'tr.group span.count'
end end
def test_index_grouped_by_due_date
Issue.destroy_all
Issue.generate!(:due_date => '2018-08-10')
Issue.generate!(:due_date => '2018-08-10')
Issue.generate!
get :index, :params => {
:set_filter => 1,
:group_by => "due_date"
}
assert_response :success
assert_select 'tr.group span.name', :value => '2018-08-10' do
assert_select '~ span.count', value:'2'
end
assert_select 'tr.group span.name', :value => '(blank)' do
assert_select '~ span.count', value:'1'
end
end
def test_index_with_query_grouped_by_list_custom_field def test_index_with_query_grouped_by_list_custom_field
get :index, :params => { get :index, :params => {
:project_id => 1, :project_id => 1,