Skip to content

Commit

Permalink
Merge commit 'core/add-multi-options-user-segment' into development
Browse files Browse the repository at this point in the history
  • Loading branch information
cykod committed Aug 5, 2010
2 parents ac367d2 + fb7571f commit c307dd7
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 13 deletions.
7 changes: 6 additions & 1 deletion app/models/content_model_segment_field.rb
Expand Up @@ -88,6 +88,11 @@ def self.get_handler_data(ids, fields)
end

def self.field_output(user, handler_data, field)
UserSegment::FieldType.field_output(user, handler_data, field)
info = UserSegment::FieldHandler.display_fields[field]
return unless info
display_field = info[:display_field]
handler_data[user.id].collect do |data|
self.content_model.field(display_field).content_display(data, :excerpt)
end.join(', ')
end
end
25 changes: 13 additions & 12 deletions app/models/user_segment/field_type.rb
Expand Up @@ -135,14 +135,14 @@ def self.field_output(mdl, handler_data, field)
display_field = info[:display_field]

value = nil
if handler_data.nil?
if handler_data.nil? # from end_user
return nil unless mdl.respond_to?(display_field)
value = mdl.send(display_field)
else
return nil unless handler_data[mdl.id]

data = handler_data[mdl.id]
if data.is_a?(Array)
if data.is_a?(Array) # group_by
value = data.collect { |d| d.send(display_field) }.delete_if { |v| v.nil? }

case info[:display_method]
Expand All @@ -157,20 +157,21 @@ def self.field_output(mdl, handler_data, field)
when 'count'
value = value.size
end

if value.is_a?(Array)
value = value.collect do |v|
v = v.strftime(DEFAULT_DATETIME_FORMAT.t) if v.is_a?(Time)
v = v.name if v.is_a?(DomainModel)
v
end
value = value.join(', ')
end
else
else # index_by
value = data.send(display_field)
end
end

if value.is_a?(Array)
value = value.collect do |v|
v = v.strftime(DEFAULT_DATETIME_FORMAT.t) if v.is_a?(Time)
v = v.name if v.is_a?(DomainModel)
v
end

value = value.map(&:to_s).reject(&:blank?).join(', ')
end

value = value.strftime(DEFAULT_DATETIME_FORMAT.t) if value.is_a?(Time)
value = value.name if value.is_a?(DomainModel)
value = 'Yes'.t if value.is_a?(TrueClass)
Expand Down

0 comments on commit c307dd7

Please sign in to comment.