osem-fcy/app/serializers/event_serializer.rb
JewelSam f6e74461ba Add schedule interval as attribute of a program
Also, the part of the schedule event is deleted and the length of the event types
changes to the nearest suitable after changing the length of the interval.

This closes #1220
2017-04-01 21:39:20 +03:00

31 lines
716 B
Ruby

class EventSerializer < ActiveModel::Serializer
include ActionView::Helpers::TextHelper
attributes :guid, :title, :length, :scheduled_date, :language, :abstract, :speaker_ids, :type, :room, :track
def scheduled_date
t = object.time
t.blank? ? '' : %( #{I18n.l t, format: :short}#{t.formatted_offset(false)} )
end
def speaker_ids
speakers = object.event_users.select { |i| i.event_role == 'speaker' }
speakers.map { |i| i.user.id }
end
def type
object.event_type.try(:title)
end
def room
object.room.try(:guid)
end
def track
object.track.try(:guid)
end
def length
object.event_type.try(:length) || object.event_type.program.schedule_interval
end
end