Feature #28391 » 0002-adds-issue-category-column-to-spent-time-queries.patch
| app/models/time_entry_query.rb | ||
|---|---|---|
| 30 | 30 |
QueryColumn.new(:issue, :sortable => "#{Issue.table_name}.id"),
|
| 31 | 31 |
QueryAssociationColumn.new(:issue, :tracker, :caption => :field_tracker, :sortable => "#{Tracker.table_name}.position"),
|
| 32 | 32 |
QueryAssociationColumn.new(:issue, :status, :caption => :field_status, :sortable => "#{IssueStatus.table_name}.position"),
|
| 33 |
QueryAssociationColumn.new(:issue, :category, :caption => :field_category, :sortable => "#{IssueCategory.table_name}.name"),
|
|
| 33 | 34 |
QueryColumn.new(:comments), |
| 34 | 35 |
QueryColumn.new(:hours, :sortable => "#{TimeEntry.table_name}.hours", :totalable => true),
|
| 35 | 36 |
] |
| ... | ... | |
| 228 | 229 |
if order_options.include?('trackers')
|
| 229 | 230 |
joins << "LEFT OUTER JOIN #{Tracker.table_name} ON #{Tracker.table_name}.id = #{Issue.table_name}.tracker_id"
|
| 230 | 231 |
end |
| 232 |
if order_options.include?('issue_categories')
|
|
| 233 |
joins << "LEFT OUTER JOIN #{IssueCategory.table_name} ON #{IssueCategory.table_name}.id = #{Issue.table_name}.category_id"
|
|
| 234 |
end |
|
| 231 | 235 |
end |
| 232 | 236 | |
| 233 | 237 |
joins.compact! |
| test/functional/timelog_controller_test.rb | ||
|---|---|---|
| 1036 | 1036 |
assert_equal ['1', '2'], css_select('input[name="ids[]"]').map {|e| e.attr('value')}
|
| 1037 | 1037 |
end |
| 1038 | 1038 | |
| 1039 |
def test_index_with_issue_category_column |
|
| 1040 |
get :index, :params => {
|
|
| 1041 |
:project_id => 'ecookbook', |
|
| 1042 |
:c => %w(project spent_on issue comments hours issue.category) |
|
| 1043 |
} |
|
| 1044 | ||
| 1045 |
assert_response :success |
|
| 1046 |
assert_select 'td.issue-category', :text => 'Printing' |
|
| 1047 |
end |
|
| 1048 | ||
| 1049 |
def test_index_with_issue_category_sort |
|
| 1050 |
issue = Issue.find(3) |
|
| 1051 |
issue.category_id = 2 |
|
| 1052 |
issue.save! |
|
| 1053 | ||
| 1054 |
get :index, :params => {
|
|
| 1055 |
:c => ["hours", 'issue.category'], |
|
| 1056 |
:sort => 'issue.category' |
|
| 1057 |
} |
|
| 1058 |
assert_response :success |
|
| 1059 | ||
| 1060 |
# Make sure that values are properly sorted |
|
| 1061 |
values = css_select("td.issue-category").map(&:text).reject(&:blank?)
|
|
| 1062 |
assert_equal ['Printing', 'Printing', 'Recipes'], values |
|
| 1063 |
end |
|
| 1064 | ||
| 1039 | 1065 |
def test_index_with_filter_on_issue_custom_field |
| 1040 | 1066 |
issue = Issue.generate!(:project_id => 1, :tracker_id => 1, :custom_field_values => {2 => 'filter_on_issue_custom_field'})
|
| 1041 | 1067 |
entry = TimeEntry.generate!(:issue => issue, :hours => 2.5) |
- « Previous
- 1
- 2
- Next »