2018-05-07 16:47:29 -07:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
2021-02-20 09:57:27 -08:00
|
|
|
# == Schema Information
|
|
|
|
|
#
|
|
|
|
|
# Table name: events
|
|
|
|
|
#
|
|
|
|
|
# id :bigint not null, primary key
|
|
|
|
|
# abstract :text
|
|
|
|
|
# comments_count :integer default(0), not null
|
2021-04-15 21:56:18 -07:00
|
|
|
# committee_review :text
|
2021-02-20 09:57:27 -08:00
|
|
|
# description :text
|
|
|
|
|
# guid :string not null
|
|
|
|
|
# is_highlight :boolean default(FALSE)
|
|
|
|
|
# language :string
|
|
|
|
|
# max_attendees :integer
|
|
|
|
|
# progress :string default("new"), not null
|
|
|
|
|
# proposal_additional_speakers :text
|
|
|
|
|
# public :boolean default(TRUE)
|
|
|
|
|
# require_registration :boolean
|
|
|
|
|
# start_time :datetime
|
|
|
|
|
# state :string default("new"), not null
|
2021-02-26 11:04:20 -08:00
|
|
|
# submission_text :text
|
2021-02-20 09:57:27 -08:00
|
|
|
# subtitle :string
|
|
|
|
|
# title :string not null
|
|
|
|
|
# week :integer
|
|
|
|
|
# created_at :datetime
|
|
|
|
|
# updated_at :datetime
|
|
|
|
|
# difficulty_level_id :integer
|
|
|
|
|
# event_type_id :integer
|
|
|
|
|
# program_id :integer
|
|
|
|
|
# room_id :integer
|
|
|
|
|
# track_id :integer
|
|
|
|
|
#
|
2013-07-08 10:07:12 +02:00
|
|
|
class EventSerializer < ActiveModel::Serializer
|
|
|
|
|
include ActionView::Helpers::TextHelper
|
|
|
|
|
|
2016-08-01 21:25:12 +02:00
|
|
|
attributes :guid, :title, :length, :scheduled_date, :language, :abstract, :speaker_ids, :type, :room, :track
|
2013-07-08 10:07:12 +02:00
|
|
|
|
2016-07-08 13:28:02 +02:00
|
|
|
def scheduled_date
|
2016-08-01 21:25:12 +02:00
|
|
|
t = object.time
|
2016-07-08 13:28:02 +02:00
|
|
|
t.blank? ? '' : %( #{I18n.l t, format: :short}#{t.formatted_offset(false)} )
|
2013-07-08 10:07:12 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def speaker_ids
|
2014-06-24 12:14:53 +03:00
|
|
|
speakers = object.event_users.select { |i| i.event_role == 'speaker' }
|
|
|
|
|
speakers.map { |i| i.user.id }
|
2013-07-08 10:07:12 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def type
|
|
|
|
|
object.event_type.try(:title)
|
|
|
|
|
end
|
|
|
|
|
|
2016-08-01 21:25:12 +02:00
|
|
|
def room
|
|
|
|
|
object.room.try(:guid)
|
2013-07-08 10:07:12 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def track
|
|
|
|
|
object.track.try(:guid)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def length
|
2017-03-02 20:53:20 +03:00
|
|
|
object.event_type.try(:length) || object.event_type.program.schedule_interval
|
2013-07-08 10:07:12 +02:00
|
|
|
end
|
|
|
|
|
end
|