diff --git a/app/controllers/conference_controller.rb b/app/controllers/conference_controller.rb index 066c0bab..4a8324a7 100644 --- a/app/controllers/conference_controller.rb +++ b/app/controllers/conference_controller.rb @@ -18,8 +18,8 @@ class ConferenceController < ApplicationController end @events = @conference.program.events - @events_xml = @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? + schedules = @program.selected_event_schedules + @events_xml = schedules.map(&:event).group_by{ |event| event.scheduled_start_time.to_date } if schedules @dates = @conference.start_date..@conference.end_date @step_minutes = EventType::LENGTH_STEP.minutes @conf_start = 9 @@ -37,11 +37,9 @@ class ConferenceController < ApplicationController def events @dates = @conference.start_date..@conference.end_date - if @program.selected_schedule.present? - @events_schedules = @program.selected_schedule.event_schedules.order(start_time: :asc) - else - @events_schedules = [] - end + @events_schedules = @program.selected_event_schedules + @events_schedules = [] unless @events_schedules + @unscheduled_events = @program.events.unscheduled(@program.selected_schedule.id) day = @conference.current_conference_day diff --git a/app/models/program.rb b/app/models/program.rb index bb03e4ac..6b8f4aa9 100644 --- a/app/models/program.rb +++ b/app/models/program.rb @@ -61,6 +61,11 @@ class Program < ActiveRecord::Base before_create :create_difficulty_levels validate :check_languages_format + # Returns all event_schedules for the selected schedule ordered by start_time + def selected_event_schedules + selected_schedule.event_schedules.order(start_time: :asc) if selected_schedule + end + ## # Checks if blind_voting is enabled and if voting period is over # ====Returns diff --git a/spec/controllers/conference_controller_spec.rb b/spec/controllers/conference_controller_spec.rb index 80e1276a..59437f8c 100644 --- a/spec/controllers/conference_controller_spec.rb +++ b/spec/controllers/conference_controller_spec.rb @@ -39,8 +39,8 @@ describe ConferenceController do it 'assigns variables' do expect(assigns(:conference)).to eq conference - expect(assigns(:events_xml)).to eq conference.program.selected_schedule.event_schedules.order(start_time: :asc) - .map(&:event).group_by{ |event| event.scheduled_start_time.to_date } + expect(assigns(:events_xml)).to eq conference.selected_event_schedules.map(&:event) + .group_by{ |event| event.scheduled_start_time.to_date } end it 'renders successfully' do