summaryrefslogtreecommitdiffstats
path: root/app/models/query.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/query.rb')
-rw-r--r--app/models/query.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/app/models/query.rb b/app/models/query.rb
index 97a635c10..5094cc3a9 100644
--- a/app/models/query.rb
+++ b/app/models/query.rb
@@ -85,6 +85,28 @@ class QueryCustomFieldColumn < QueryColumn
end
end
+class QueryAssociationCustomFieldColumn < QueryCustomFieldColumn
+
+ def initialize(association, custom_field)
+ super(custom_field)
+ self.name = "#{association}.cf_#{custom_field.id}".to_sym
+ # TODO: support sorting/grouping by association custom field
+ self.sortable = false
+ self.groupable = false
+ @association = association
+ end
+
+ def value(object)
+ if assoc = object.send(@association)
+ super(assoc)
+ end
+ end
+
+ def css_classes
+ @css_classes ||= "#{@association}_cf_#{@cf.id} #{@cf.field_format}"
+ end
+end
+
class Query < ActiveRecord::Base
class StatementInvalid < ::ActiveRecord::StatementInvalid
end