mirror of
https://github.com/redmine/redmine.git
synced 2025-11-12 16:26:03 +01:00
Adds "Target Version" column to the list of "Available columns" in "Spent time" tab (#30346).
Patch by Marius BALTEANU. git-svn-id: http://svn.redmine.org/redmine/trunk@19059 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -34,6 +34,7 @@ class TimeEntryQuery < Query
|
|||||||
QueryAssociationColumn.new(:issue, :tracker, :caption => :field_tracker, :sortable => "#{Tracker.table_name}.position"),
|
QueryAssociationColumn.new(:issue, :tracker, :caption => :field_tracker, :sortable => "#{Tracker.table_name}.position"),
|
||||||
QueryAssociationColumn.new(:issue, :status, :caption => :field_status, :sortable => "#{IssueStatus.table_name}.position"),
|
QueryAssociationColumn.new(:issue, :status, :caption => :field_status, :sortable => "#{IssueStatus.table_name}.position"),
|
||||||
QueryAssociationColumn.new(:issue, :category, :caption => :field_category, :sortable => "#{IssueCategory.table_name}.name"),
|
QueryAssociationColumn.new(:issue, :category, :caption => :field_category, :sortable => "#{IssueCategory.table_name}.name"),
|
||||||
|
QueryAssociationColumn.new(:issue, :fixed_version, :caption => :field_fixed_version, :sortable => Version.fields_for_order_statement),
|
||||||
QueryColumn.new(:comments),
|
QueryColumn.new(:comments),
|
||||||
QueryColumn.new(:hours, :sortable => "#{TimeEntry.table_name}.hours", :totalable => true),
|
QueryColumn.new(:hours, :sortable => "#{TimeEntry.table_name}.hours", :totalable => true),
|
||||||
]
|
]
|
||||||
@@ -251,6 +252,9 @@ class TimeEntryQuery < Query
|
|||||||
if order_options.include?('issue_categories')
|
if order_options.include?('issue_categories')
|
||||||
joins << "LEFT OUTER JOIN #{IssueCategory.table_name} ON #{IssueCategory.table_name}.id = #{Issue.table_name}.category_id"
|
joins << "LEFT OUTER JOIN #{IssueCategory.table_name} ON #{IssueCategory.table_name}.id = #{Issue.table_name}.category_id"
|
||||||
end
|
end
|
||||||
|
if order_options.include?('versions')
|
||||||
|
joins << "LEFT OUTER JOIN #{Version.table_name} ON #{Version.table_name}.id = #{Issue.table_name}.fixed_version_id"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
joins.compact!
|
joins.compact!
|
||||||
|
|||||||
@@ -1193,6 +1193,20 @@ class TimelogControllerTest < Redmine::ControllerTest
|
|||||||
assert_select 'td.issue-category', :text => 'Printing'
|
assert_select 'td.issue-category', :text => 'Printing'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_index_with_issue_fixed_version_column
|
||||||
|
issue = Issue.find(1)
|
||||||
|
issue.fixed_version = Version.find(3)
|
||||||
|
issue.save!
|
||||||
|
|
||||||
|
get :index, :params => {
|
||||||
|
:project_id => 'ecookbook',
|
||||||
|
:c => %w(project spent_on issue comments hours issue.fixed_version)
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_response :success
|
||||||
|
assert_select 'td.issue-fixed_version', :text => '2.0'
|
||||||
|
end
|
||||||
|
|
||||||
def test_index_with_author_filter
|
def test_index_with_author_filter
|
||||||
get :index, :params => {
|
get :index, :params => {
|
||||||
:project_id => 'ecookbook',
|
:project_id => 'ecookbook',
|
||||||
@@ -1230,6 +1244,25 @@ class TimelogControllerTest < Redmine::ControllerTest
|
|||||||
assert_equal ['Printing', 'Printing', 'Recipes'], values
|
assert_equal ['Printing', 'Printing', 'Recipes'], values
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_index_with_issue_fixed_version_sort
|
||||||
|
issue = Issue.find(1)
|
||||||
|
issue.fixed_version = Version.find(3)
|
||||||
|
issue.save!
|
||||||
|
|
||||||
|
TimeEntry.generate!(:issue => Issue.find(12))
|
||||||
|
|
||||||
|
get :index, :params => {
|
||||||
|
:project_id => 'ecookbook',
|
||||||
|
:c => ["hours", 'issue.fixed_version'],
|
||||||
|
:sort => 'issue.fixed_version'
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_response :success
|
||||||
|
# Make sure that values are properly sorted
|
||||||
|
values = css_select("td.issue-fixed_version").map(&:text).reject(&:blank?)
|
||||||
|
assert_equal ['1.0', '2.0', '2.0'], values
|
||||||
|
end
|
||||||
|
|
||||||
def test_index_with_filter_on_issue_custom_field
|
def test_index_with_filter_on_issue_custom_field
|
||||||
issue = Issue.generate!(:project_id => 1, :tracker_id => 1, :custom_field_values => {2 => 'filter_on_issue_custom_field'})
|
issue = Issue.generate!(:project_id => 1, :tracker_id => 1, :custom_field_values => {2 => 'filter_on_issue_custom_field'})
|
||||||
entry = TimeEntry.generate!(:issue => issue, :hours => 2.5)
|
entry = TimeEntry.generate!(:issue => issue, :hours => 2.5)
|
||||||
|
|||||||
Reference in New Issue
Block a user