##// END OF EJS Templates
Makes issue custom fields available as timelog columns (#1766)....
Jean-Philippe Lang -
r10944:e18d0e268de5
parent child
Show More
@@ -85,6 +85,28 class QueryCustomFieldColumn < QueryColumn
85 85 end
86 86 end
87 87
88 class QueryAssociationCustomFieldColumn < QueryCustomFieldColumn
89
90 def initialize(association, custom_field)
91 super(custom_field)
92 self.name = "#{association}.cf_#{custom_field.id}".to_sym
93 # TODO: support sorting/grouping by association custom field
94 self.sortable = false
95 self.groupable = false
96 @association = association
97 end
98
99 def value(object)
100 if assoc = object.send(@association)
101 super(assoc)
102 end
103 end
104
105 def css_classes
106 @css_classes ||= "#{@association}_cf_#{@cf.id} #{@cf.field_format}"
107 end
108 end
109
88 110 class Query < ActiveRecord::Base
89 111 class StatementInvalid < ::ActiveRecord::StatementInvalid
90 112 end
@@ -100,6 +100,7 class TimeEntryQuery < Query
100 100 return @available_columns if @available_columns
101 101 @available_columns = self.class.available_columns.dup
102 102 @available_columns += TimeEntryCustomField.all.map {|cf| QueryCustomFieldColumn.new(cf) }
103 @available_columns += IssueCustomField.all.map {|cf| QueryAssociationCustomFieldColumn.new(:issue, cf) }
103 104 @available_columns
104 105 end
105 106
@@ -528,6 +528,16 class TimelogControllerTest < ActionController::TestCase
528 528 assert_equal [entry], assigns(:entries)
529 529 end
530 530
531 def test_index_with_issue_custom_field_column
532 issue = Issue.generate!(:project_id => 1, :tracker_id => 1, :custom_field_values => {2 => 'filter_on_issue_custom_field'})
533 entry = TimeEntry.generate!(:issue => issue, :hours => 2.5)
534
535 get :index, :c => %w(project spent_on issue comments hours issue.cf_2)
536 assert_response :success
537 assert_include :'issue.cf_2', assigns(:query).column_names
538 assert_select 'td.issue_cf_2', :text => 'filter_on_issue_custom_field'
539 end
540
531 541 def test_index_atom_feed
532 542 get :index, :project_id => 1, :format => 'atom'
533 543 assert_response :success
General Comments 0
You need to be logged in to leave comments. Login now