EventSchedule validations
event, schedule, room and start_time are mandatory in EventSchedule.
This commit is contained in:
parent
354e15a76d
commit
0b26ed5c35
10 changed files with 26 additions and 15 deletions
|
|
@ -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?
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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?
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,6 @@ class EventScheduleSerializer < ActiveModel::Serializer
|
|||
end
|
||||
|
||||
def room
|
||||
object.room.try(:guid)
|
||||
object.room.guid
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20160704092023) do
|
||||
ActiveRecord::Schema.define(version: 20160705110711) do
|
||||
|
||||
create_table "ahoy_events", force: :cascade do |t|
|
||||
t.uuid "visit_id", limit: 16
|
||||
|
|
@ -180,9 +180,9 @@ ActiveRecord::Schema.define(version: 20160704092023) do
|
|||
t.integer "event_id"
|
||||
t.integer "schedule_id"
|
||||
t.integer "room_id"
|
||||
t.datetime "start_time"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "start_time"
|
||||
end
|
||||
|
||||
add_index "event_schedules", ["event_id"], name: "index_event_schedules_on_event_id"
|
||||
|
|
@ -271,10 +271,10 @@ ActiveRecord::Schema.define(version: 20160704092023) do
|
|||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.string "languages"
|
||||
t.integer "selected_schedule"
|
||||
t.boolean "blind_voting", default: false
|
||||
t.datetime "voting_start_date"
|
||||
t.datetime "voting_end_date"
|
||||
t.integer "selected_schedule"
|
||||
end
|
||||
|
||||
create_table "qanswers", force: :cascade do |t|
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ describe ConferenceController do
|
|||
|
||||
it 'assigns variables' do
|
||||
expect(assigns(:conference)).to eq conference
|
||||
expect(assigns(:events_xml)).to eq conference.program.schedules.find(conference.program.selected_schedule).event_schedules.where('start_time IS NOT NULL AND room_id IS NOT NULL')
|
||||
expect(assigns(:events_xml)).to eq conference.program.schedules.find(conference.program.selected_schedule).event_schedules
|
||||
.order(start_time: :asc).map(&:event).group_by{ |event| event.scheduled_start_time.to_date }
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -7,4 +7,11 @@ describe EventSchedule do
|
|||
it { should belong_to(:event) }
|
||||
it { should belong_to(:room) }
|
||||
end
|
||||
|
||||
describe 'validation' do
|
||||
it { is_expected.to validate_presence_of(:schedule) }
|
||||
it { is_expected.to validate_presence_of(:event) }
|
||||
it { is_expected.to validate_presence_of(:room) }
|
||||
it { is_expected.to validate_presence_of(:start_time) }
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue