osem-fcy/app/controllers/conference_controller.rb
Ana 0b26ed5c35 EventSchedule validations
event, schedule, room and start_time are mandatory in EventSchedule.
2016-08-11 15:11:27 +02:00

58 lines
2.1 KiB
Ruby

class ConferenceController < ApplicationController
protect_from_forgery with: :null_session
before_filter :respond_to_options
load_and_authorize_resource find_by: :short_title
load_resource :program, through: :conference, singleton: true, except: :index
def index
@current = Conference.where('end_date >= ?', Date.current).reorder(start_date: :asc)
@antiquated = @conferences - @current
end
def show; end
def schedule
@rooms = @conference.venue.rooms if @conference.venue
unless @program.selected_schedule.present? && @program.events.scheduled(@program.selected_schedule).any?
redirect_to events_conference_path(@conference.short_title)
end
@events = @conference.program.events
@events_xml = @program.schedules.find(@program.selected_schedule).event_schedules.order(start_time: :asc)
.map(&:event).group_by{ |event| event.scheduled_start_time.to_date } if program.selected_schedule.present?
@dates = @conference.start_date..@conference.end_date
@step_minutes = EventType::LENGTH_STEP.minutes
@conf_start = 9
conf_end = 20
@conf_period = conf_end - @conf_start
# the schedule takes you to today if it is a date of the schedule
@current_day = @conference.current_conference_day
@day = @current_day.present? ? @current_day : @dates.first
return unless @current_day
# the schedule takes you to the current time if it is beetween the start and the end time.
@hour_column = @conference.hours_from_start_time(@conf_start, conf_end)
end
def events
@dates = @conference.start_date..@conference.end_date
if @program.selected_schedule.present?
@events_schedules = @program.schedules.find(@program.selected_schedule).event_schedules.order(start_time: :asc)
else
@events_schedules = []
end
@unscheduled_events = @program.events.unscheduled(@program.selected_schedule.id)
day = @conference.current_conference_day
@tag = day.strftime('%Y-%m-%d') if day
end
private
def respond_to_options
respond_to do |format|
format.html { head :ok }
end if request.options?
end
end