Introduce an association for the selected_schedule

Association in Program fot the selected_schedule
This commit is contained in:
Ana 2016-07-28 12:50:32 +02:00
parent 3f114629f9
commit beb17165a2
10 changed files with 24 additions and 21 deletions

View file

@ -25,10 +25,10 @@ module Admin
# if there is not selected schedule we create it
unless @program.selected_schedule.present?
schedule = @program.schedules.create
@program.selected_schedule = schedule.id
@program.selected_schedule = schedule
@program.save!
end
@schedule_id = @program.selected_schedule
@schedule_id = @program.selected_schedule.id
end
def update

View file

@ -13,13 +13,13 @@ class ConferenceController < ApplicationController
def schedule
@rooms = @conference.venue.rooms if @conference.venue
unless @program.selected_schedule.present? && @program.events.scheduled(@program.selected_schedule).any?
unless @program.selected_schedule.present? && @program.events.scheduled(@program.selected_schedule.id).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?
@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?
@dates = @conference.start_date..@conference.end_date
@step_minutes = EventType::LENGTH_STEP.minutes
@conf_start = 9
@ -38,7 +38,7 @@ class ConferenceController < ApplicationController
@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)
@events_schedules = @program.selected_schedule.event_schedules.order(start_time: :asc)
else
@events_schedules = []
end

View file

@ -270,7 +270,7 @@ class Event < ActiveRecord::Base
# returns the event_schedule for this event and for the selected_schedule
def selected_event_schedule
event_schedules.find_by(schedule_id: program.try(:selected_schedule))
event_schedules.find_by(schedule_id: program.try(:selected_schedule_id))
end
private

View file

@ -8,6 +8,7 @@ class Program < ActiveRecord::Base
has_many :tracks, dependent: :destroy
has_many :difficulty_levels, dependent: :destroy
has_many :schedules, dependent: :destroy
belongs_to :selected_schedule, class_name: 'Schedule'
has_many :events, dependent: :destroy do
def require_registration
where(require_registration: true, state: :confirmed)

View file

@ -27,7 +27,7 @@
%td.room{ style: "height: #{ td_height(@rooms) }px;" }
.room.elipsis.break-words{ style: "-webkit-line-clamp: #{ room_lines(@rooms) }; height: #{ room_height(@rooms) }px;" }
= room.name
- event_schedules = room.event_schedules.select{ |e| (e.schedule_id == @conference.program.selected_schedule) && (e.start_time >= start_time) && (e.start_time < (start_time + number_columns.hour)) }
- event_schedules = room.event_schedules.select{ |e| (e.schedule_id == @conference.program.selected_schedule.id) && (e.start_time >= start_time) && (e.start_time < (start_time + number_columns.hour)) }
- (1..intervals).each do |i|
- if span > 1
- span -= 1