app/models/open_conference_ware/schedule_item.rb
module OpenConferenceWare
# == Schema Information
#
# Table name: schedule_items
#
# id :integer not null, primary key
# title :string(255)
# excerpt :text
# description :text
# start_time :datetime
# duration :integer
# event_id :integer
# room_id :integer
# created_at :datetime
# updated_at :datetime
#
class ScheduleItem < OpenConferenceWare::Base
# Associations
belongs_to :event
belongs_to :room
# Provides #overlaps?
include ScheduleOverlapsMixin
# Public attributes for export
include PublicAttributesMixin
set_public_attributes :id, :title, :excerpt, :description, :start_time, :end_time, :duration,
:event_id, :event_title,
:room_id, :room_title,
:created_at, :updated_at
# Return the time this session ends.
def end_time
if self.start_time
self.start_time + (self.duration || 0).minutes
else
nil
end
end
#---[ Accessors for getting the titles of related objects ]-------------
def room_title
return self.room.try(:name)
end
def event_title
return self.event.try(:slug)
end
alias_method :event_slug, :event_title
end
end