EventSchedule validations

event, schedule, room and start_time are mandatory in EventSchedule.
This commit is contained in:
Ana 2016-07-26 16:20:31 +02:00
parent 354e15a76d
commit 0b26ed5c35
10 changed files with 26 additions and 15 deletions

View file

@ -47,7 +47,8 @@ module Admin
return
end
event_schedule = event.event_schedules.create(schedule_id: params[:schedule]) unless event_schedule.present?
Rails.logger.debug(event_schedule.present?.to_s)
event_schedule = event.event_schedules.new(schedule_id: params[:schedule]) unless event_schedule.present?
room = Room.where(guid: room_params).first
if room.nil?

View file

@ -18,7 +18,7 @@ class ConferenceController < ApplicationController
end
@events = @conference.program.events
@events_xml = @program.schedules.find(program.selected_schedule).event_schedules.where('start_time IS NOT NULL AND room_id IS NOT NULL').order(start_time: :asc)
@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
@ -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.where('start_time IS NOT NULL AND room_id IS NOT NULL').order(start_time: :asc)
@events_schedules = @program.schedules.find(@program.selected_schedule).event_schedules.order(start_time: :asc)
else
@events_schedules = []
end

View file

@ -75,7 +75,7 @@ class Event < ActiveRecord::Base
# ====Returns
# * +true+ or +false+
def scheduled?
selected_event_schedule.try(:start_time).present? && selected_event_schedule.try(:room).present?
selected_event_schedule.present?
end
##
@ -84,7 +84,7 @@ class Event < ActiveRecord::Base
# ====Returns
# * +true+ or +false+
def unscheduled?(schedule_id)
state == 'confirmed' && (!event_schedule(schedule_id).try(:start_time).present? || !event_schedule(schedule_id).try(:room).present?)
state == 'confirmed' && !event_schedule(schedule_id).present?
end
def registration_possible?

View file

@ -3,13 +3,16 @@ class EventSchedule < ActiveRecord::Base
belongs_to :event
belongs_to :room
validates :schedule, presence: true
validates :event, presence: true
validates :room, presence: true
validates :start_time, presence: true
scope :confirmed, -> { joins(:event).where('state = ?', 'confirmed') }
scope :canceled, -> { joins(:event).where('state = ?', 'canceled') }
scope :withdrawn, -> { joins(:event).where('state = ?', 'withdrawn') }
def room_guid
room.try(:guid)
end
delegate :guid, to: :room, prefix: true
##
# Returns end of the event

View file

@ -28,7 +28,7 @@ class Program < ActiveRecord::Base
end
def scheduled(schedule_id)
joins(:event_schedules).where('event_schedules.schedule_id = ? AND event_schedules.start_time IS NOT NULL AND event_schedules.room_id IS NOT NULL', schedule_id)
joins(:event_schedules).where('event_schedules.schedule_id = ?', schedule_id)
end
def unscheduled(schedule_id)

View file

@ -9,6 +9,6 @@ class EventScheduleSerializer < ActiveModel::Serializer
end
def room
object.room.try(:guid)
object.room.guid
end
end

View file

@ -68,7 +68,7 @@
%dl#proposal-info
.col-md-12
%dt Date:
%dd= @event_schedule.start_time.strftime("%Y %B %e %H:%M") if @event_schedule.try(:start_time)
%dd= @event_schedule.start_time.strftime("%Y %B %e %H:%M") if @event_schedule
.col-md-12
%dt Duration:
%dd= show_time(@event.event_type.length)