Merge pull request #855 from differentreality/refactor_conference_drops

drop dietary choices, social events, and html_export_path
This commit is contained in:
Henne Vogelsang 2016-04-15 11:43:29 +02:00
commit 0f24a4fa1b
14 changed files with 403 additions and 150 deletions

View file

@ -177,10 +177,9 @@ module Admin
private
def conference_params
params.require(:conference).permit(:title, :short_title, :description, :timezone, :html_export_path,
params.require(:conference).permit(:title, :short_title, :description, :timezone,
:start_date, :end_date, :rooms_attributes, :tracks_attributes,
:dietary_choices_attributes, :use_dietary_choices,
:tickets_attributes, :social_events_attributes, :event_types_attributes,
:tickets_attributes, :event_types_attributes,
:logo, :questions_attributes,
:question_ids, :answers_attributes, :answer_ids, :difficulty_levels_attributes,
:use_difficulty_levels, :use_vpositions, :use_vdays, :vdays_attributes,

View file

@ -19,11 +19,9 @@ class Conference < ActiveRecord::Base
has_one :email_settings, dependent: :destroy
has_one :program, dependent: :destroy
has_one :venue, dependent: :destroy
has_many :social_events, dependent: :destroy
has_many :ticket_purchases, dependent: :destroy
has_many :supporters, through: :ticket_purchases, source: :user
has_many :tickets, dependent: :destroy
has_many :dietary_choices, dependent: :destroy
has_many :lodgings, dependent: :destroy
has_many :registrations, dependent: :destroy
@ -38,9 +36,7 @@ class Conference < ActiveRecord::Base
has_many :commercials, as: :commercialable, dependent: :destroy
has_many :subscriptions, dependent: :destroy
accepts_nested_attributes_for :social_events, allow_destroy: true
accepts_nested_attributes_for :venue
accepts_nested_attributes_for :dietary_choices, allow_destroy: true
accepts_nested_attributes_for :tickets, allow_destroy: true
accepts_nested_attributes_for :sponsorship_levels, allow_destroy: true
accepts_nested_attributes_for :sponsors, allow_destroy: true

View file

@ -1,4 +0,0 @@
class DietaryChoice < ActiveRecord::Base
belongs_to :conference
has_many :registrations
end

View file

@ -1,9 +1,7 @@
class Registration < ActiveRecord::Base
belongs_to :user
belongs_to :conference
belongs_to :dietary_choice
has_and_belongs_to_many :social_events
has_and_belongs_to_many :events
has_and_belongs_to_many :qanswers
has_and_belongs_to_many :vchoices
@ -12,7 +10,6 @@ class Registration < ActiveRecord::Base
has_many :workshops, through: :events_registrations, source: :event
accepts_nested_attributes_for :user
accepts_nested_attributes_for :social_events
accepts_nested_attributes_for :qanswers
delegate :name, to: :user

View file

@ -12,7 +12,7 @@
# in table 'conferences' looks like a more simple and straightforward solution
#
class RevisionObserver < ActiveRecord::Observer
observe :conference, :event, :room, :social_event, :track
observe :conference, :event, :room, :track
def after_save(model)
begin

View file

@ -1,4 +0,0 @@
class SocialEvent < ActiveRecord::Base
belongs_to :conference
has_and_belongs_to_many :registrations
end

View file

@ -13,11 +13,4 @@
= u.input :affiliation, placeholder: 'Company/User Group/nothing', as: :string
= f.inputs 'Registration Information' do
= render partial: 'conference_registrations/registration_info', locals: { f: f }
-# Not necessary
- if @conference.social_events.count > 0
= f.inputs 'Are you planning to attend any of the parties?' do
%br Yes, I'll be attending...
%br
= f.input :social_events, as: :check_boxes, label: false, collection: @conference.social_events
= f.action :submit, button_html: { class: 'btn btn-primary' }

View file

@ -27,8 +27,6 @@ Osem::Application.routes.draw do
resource :schedule, only: [:show, :update]
get 'commercials/render_commercial' => 'commercials#render_commercial'
resources :commercials, only: [:index, :create, :update, :destroy]
get '/dietary_choices' => 'dietchoices#show', as: 'dietary_list'
patch '/dietary_choices' => 'dietchoices#update', as: 'dietary_update'
get '/volunteers_list' => 'volunteers#show'
get '/volunteers' => 'volunteers#index', as: 'volunteers_info'
patch '/volunteers' => 'volunteers#update', as: 'volunteers_update'

View file

@ -0,0 +1,134 @@
class RemoveSocialEventsTable < ActiveRecord::Migration
class TempConference < ActiveRecord::Base
self.table_name = 'conferences'
has_many :temp_social_events
end
class TempSocialEvent < ActiveRecord::Base
self.table_name = 'social_events'
belongs_to :temp_conference
has_and_belongs_to_many :temp_registrations
end
class TempRegistration < ActiveRecord::Base
self.table_name = 'registrations'
belongs_to :temp_conference
has_and_belongs_to_many :temp_social_events
has_and_belongs_to_many :temp_qanswers
end
class TempRegistrationsSocialEvent < ActiveRecord::Base
self.table_name = 'registrations_social_events'
belongs_to :temp_registrations
belongs_to :temp_social_events
end
class TempQuestionType < ActiveRecord::Base
self.table_name = 'question_types'
has_many :temp_questions
end
class TempQuestion < ActiveRecord::Base
self.table_name = 'questions'
has_many :temp_qanswers
has_many :temp_answers, through: :temp_qanswers
belongs_to :temp_question_type
has_and_belongs_to_many :temp_conferences
end
class TempAnswer < ActiveRecord::Base
self.table_name = 'answers'
has_many :temp_qanswers
has_many :temp_questions, through: :temp_qanswers
end
class TempQanswer < ActiveRecord::Base
self.table_name = 'qanswers'
belongs_to :temp_question
belongs_to :temp_answer
has_and_belongs_to_many :temp_registrations
end
class TempConferencesQuestions < ActiveRecord::Base
self.table_name = 'conferences_questions'
end
class TempQanswerRegistration < ActiveRecord::Base
self.table_name = 'qanswers_registrations'
end
def up
# Create Question of 'Multiple Choice' type
qtype = TempQuestionType.find_or_create_by!(title: 'Multiple Choice')
TempConference.all.each do |conference|
if TempSocialEvent.where(conference_id: conference.id).any?
# Find existing question or initialize it
question = TempQuestion.find_or_initialize_by(title: 'Which of the following social events are you going to attend?',
conference_id: conference.id,
question_type_id: qtype.id)
question.save!
# Enable the question for the conference
TempConferencesQuestions.find_or_create_by!(conference_id: conference.id,
question_id: question.id)
end
TempSocialEvent.where(conference_id: conference.id).each do |social_event|
answer = TempAnswer.find_or_create_by!(title: social_event.title)
# Associate answer with the question
qa = TempQanswer.find_or_initialize_by(question_id: question.id,
answer_id: answer.id)
qa.save!
# Associate appropriate answer with registration
TempRegistrationsSocialEvent.where(social_event_id: social_event.id).each do |registration_social_event|
registration = TempRegistration.find(registration_social_event.registration_id)
TempQanswerRegistration.find_or_create_by!(registration_id: registration.id,
qanswer_id: qa.id)
end
end
end
drop_table :social_events
drop_table :registrations_social_events
end
def down
create_table :social_events do |t|
t.references :conference
t.string :title
t.text :description
t.date :date
end
create_table :registrations_social_events, id: false do |t|
t.references :registration, :social_event
end
qtype = TempQuestionType.find_by(title: 'Multiple Choice')
TempConference.all.each do |conference|
if qtype && (question = TempQuestion.find_by(title: 'Which of the following social events are you going to attend?',
conference_id: conference.id, question_type_id: qtype.id))
TempQanswer.where(question_id: question.id).each do |qa|
TempQanswerRegistration.where(qanswer_id: qa.id).each do |qa_registration|
answer = TempAnswer.find(qa.answer_id)
registration = TempRegistration.find(qa_registration.registration_id)
social_event = TempSocialEvent.find_or_create_by!(title: answer.title,
conference_id: conference.id)
TempRegistrationsSocialEvent.find_or_create_by!(registration_id: registration.id,
social_event_id: social_event.id)
end
end
end
end
end
end

View file

@ -0,0 +1,173 @@
class RemoveDietaryChoicesTable < ActiveRecord::Migration
class TempDietaryChoice < ActiveRecord::Base
self.table_name = 'dietary_choices'
belongs_to :temp_conference
end
class TempConference < ActiveRecord::Base
self.table_name = 'conferences'
has_many :temp_dietary_choices, dependent: :destroy
end
class TempRegistration < ActiveRecord::Base
self.table_name = 'registrations'
belongs_to :temp_conference
end
class TempQuestionType < ActiveRecord::Base
self.table_name = 'question_types'
has_many :temp_questions
end
class TempQuestion < ActiveRecord::Base
self.table_name = 'questions'
has_many :temp_qanswers
has_many :temp_answers, through: :temp_qanswers
belongs_to :temp_question_type
has_and_belongs_to_many :temp_conferences
end
class TempAnswer < ActiveRecord::Base
self.table_name = 'answers'
has_many :temp_qanswers
has_many :temp_questions, through: :temp_qanswers
end
class TempQanswer < ActiveRecord::Base
self.table_name = 'qanswers'
belongs_to :temp_question
belongs_to :temp_answer
has_and_belongs_to_many :temp_registrations
end
class TempConferencesQuestions < ActiveRecord::Base
self.table_name = 'conferences_questions'
end
class TempQanswerRegistration < ActiveRecord::Base
self.table_name = 'qanswers_registrations'
end
def up
# Create Question of 'Multiple Choice' type
if TempDietaryChoice.all.any?
qtype = TempQuestionType.find_or_create_by!(title: 'Single Choice')
end
# Migrate dietary_choice_id to a question
TempConference.all.each do |conference|
if TempDietaryChoice.where(conference_id: conference.id).any?
# Find existing question or initialize it
question = TempQuestion.find_or_initialize_by(title: 'Which is your dietary choice?',
conference_id: conference.id,
question_type_id: qtype.id)
question.save!
# Enable the question for the conference
TempConferencesQuestions.find_or_create_by!(conference_id: conference.id,
question_id: question.id)
TempDietaryChoice.where(conference_id: conference.id).each do |dietary_choice|
answer = TempAnswer.find_or_create_by!(title: dietary_choice.title)
# Associate answer with the question
qa = TempQanswer.find_or_initialize_by(question_id: question.id,
answer_id: answer.id)
qa.save!
# Associate appropriate answer with registration
TempRegistration.where(dietary_choice_id: dietary_choice.id).each do |registration|
TempQanswerRegistration.find_or_create_by!(registration_id: registration.id,
qanswer_id: qa.id)
end
end
end
end
# Migrate other_dietary_choice to a question and put data in other_special_needs
TempRegistration.all.each do |registration|
if registration.other_dietary_choice.present?
conference = TempConference.find(registration.conference_id)
qtype = TempQuestionType.find_or_create_by!(title: 'Yes/No')
question = TempQuestion.find_or_initialize_by(title: 'Do you have another dietary choice?',
conference_id: conference.id,
question_type_id: qtype.id)
question.save!
# Enable the question for the conference
TempConferencesQuestions.find_or_create_by!(conference_id: conference.id,
question_id: question.id)
# Create 'Yes' answer
answer_yes = TempAnswer.find_or_create_by!(title: 'Yes')
# Associate answer with the question
qa = TempQanswer.find_or_initialize_by(question_id: question.id,
answer_id: answer_yes.id)
qa.save!
# Associate appropriate answer with registration
TempQanswerRegistration.find_or_create_by!(registration_id: registration.id,
qanswer_id: qa.id)
# Move data from other_dietary_choice to other_special_needs
registration.other_special_needs << "Other dietary choice: #{registration.other_dietary_choice}."
registration.save!
end
end
remove_column :conferences, :use_dietary_choices
remove_column :registrations, :dietary_choice_id
remove_column :registrations, :other_dietary_choice
drop_table :dietary_choices
end
def down
create_table :dietary_choices do |t|
t.references :conference
t.string :title, null: false
t.timestamps
end
add_column :conferences, :use_dietary_choices, :boolean
add_column :registrations, :dietary_choice_id, :integer
add_column :registrations, :other_dietary_choice, :text
qtype = TempQuestionType.find_by(title: 'Single Choice')
TempConference.all.each do |conference|
if qtype && (question = TempQuestion.find_by(title: 'Which is your dietary choice?',
conference_id: conference.id, question_type_id: qtype.id))
TempQanswer.where(question_id: question.id).each do |qa|
TempQanswerRegistration.where(qanswer_id: qa.id).each do |qa_registration|
answer = TempAnswer.find(qa.answer_id)
registration = TempRegistration.find(qa_registration.registration_id)
dietary_choice = TempDietaryChoice.find_or_create_by!(title: answer.title,
conference_id: conference.id)
registration.dietary_choice_id = dietary_choice.id
registration.save!
end
end
end
end
qtype = TempQuestionType.find_by(title: 'Yes/No')
answer_yes = TempAnswer.find_by(title: 'Yes')
TempConference.all.each do |conference|
if qtype && (question = TempQuestion.find_by(title: 'Do you have another dietary choice?',
conference_id: conference.id, question_type_id: qtype.id))
TempQanswer.where(question_id: question.id, answer_id: answer_yes.id).each do |qa|
TempQanswerRegistration.where(qanswer_id: qa.id).each do |qa_registration|
registration = TempRegistration.find(qa_registration.registration_id)
registration.other_dietary_choice = 'Yes'
registration.save!
end
end
end
end
end
end

View file

@ -0,0 +1,5 @@
class RemoveHtmlExportPathFromConferences < ActiveRecord::Migration
def change
remove_column :conferences, :html_export_path, :string
end
end

View file

@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20160226133808) do
ActiveRecord::Schema.define(version: 20160309183052) do
create_table "ahoy_events", force: :cascade do |t|
t.uuid "visit_id", limit: 16
@ -21,14 +21,14 @@ ActiveRecord::Schema.define(version: 20160226133808) do
t.datetime "time"
end
add_index "ahoy_events", ["time"], name: "index_ahoy_events_on_time"
add_index "ahoy_events", ["user_id"], name: "index_ahoy_events_on_user_id"
add_index "ahoy_events", ["visit_id"], name: "index_ahoy_events_on_visit_id"
add_index "ahoy_events", ["time"], name: "index_ahoy_events_on_time", using: :btree
add_index "ahoy_events", ["user_id"], name: "index_ahoy_events_on_user_id", using: :btree
add_index "ahoy_events", ["visit_id"], name: "index_ahoy_events_on_visit_id", using: :btree
create_table "answers", force: :cascade do |t|
t.string "title", limit: 255
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "campaigns", force: :cascade do |t|
@ -46,28 +46,28 @@ ActiveRecord::Schema.define(version: 20160226133808) do
create_table "cfps", force: :cascade do |t|
t.date "start_date", null: false
t.date "end_date", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.integer "program_id", limit: 4
end
create_table "comments", force: :cascade do |t|
t.string "title", limit: 50, default: ""
t.text "body", limit: 16777215
t.string "title", limit: 50, default: ""
t.text "body", limit: 65535
t.integer "commentable_id", limit: 4
t.string "commentable_type", limit: 255
t.integer "user_id", limit: 4
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.string "subject", limit: 255
t.integer "parent_id", limit: 4
t.integer "lft", limit: 4
t.integer "rgt", limit: 4
end
add_index "comments", ["commentable_id"], name: "index_comments_on_commentable_id"
add_index "comments", ["commentable_type"], name: "index_comments_on_commentable_type"
add_index "comments", ["user_id"], name: "index_comments_on_user_id"
add_index "comments", ["commentable_id"], name: "index_comments_on_commentable_id", using: :btree
add_index "comments", ["commentable_type"], name: "index_comments_on_commentable_type", using: :btree
add_index "comments", ["user_id"], name: "index_comments_on_user_id", using: :btree
create_table "commercials", force: :cascade do |t|
t.string "commercial_id", limit: 255
@ -84,16 +84,14 @@ ActiveRecord::Schema.define(version: 20160226133808) do
t.string "title", limit: 255, null: false
t.string "short_title", limit: 255, null: false
t.string "timezone", limit: 255, null: false
t.string "html_export_path", limit: 255
t.date "start_date", null: false
t.date "end_date", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.string "logo_file_name", limit: 255
t.string "logo_content_type", limit: 255
t.integer "logo_file_size", limit: 4
t.datetime "logo_updated_at"
t.boolean "use_dietary_choices", default: false
t.integer "revision", limit: 4
t.boolean "use_vpositions", default: false
t.boolean "use_vdays", default: false
@ -137,51 +135,44 @@ ActiveRecord::Schema.define(version: 20160226133808) do
t.datetime "updated_at"
end
add_index "delayed_jobs", ["priority", "run_at"], name: "delayed_jobs_priority"
create_table "dietary_choices", force: :cascade do |t|
t.integer "conference_id", limit: 4
t.string "title", limit: 255, null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_index "delayed_jobs", ["priority", "run_at"], name: "delayed_jobs_priority", using: :btree
create_table "difficulty_levels", force: :cascade do |t|
t.string "title", limit: 255
t.text "description", limit: 65535
t.string "color", limit: 255
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.integer "program_id", limit: 4
end
create_table "email_settings", force: :cascade do |t|
t.integer "conference_id", limit: 4
t.boolean "send_on_registration", default: false
t.boolean "send_on_accepted", default: false
t.boolean "send_on_rejected", default: false
t.boolean "send_on_confirmed_without_registration", default: false
t.text "registration_body", limit: 16777215
t.text "accepted_body", limit: 16777215
t.text "rejected_body", limit: 16777215
t.text "confirmed_without_registration_body", limit: 16777215
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "send_on_registration", default: false
t.boolean "send_on_accepted", default: false
t.boolean "send_on_rejected", default: false
t.boolean "send_on_confirmed_without_registration", default: false
t.text "registration_body", limit: 65535
t.text "accepted_body", limit: 65535
t.text "rejected_body", limit: 65535
t.text "confirmed_without_registration_body", limit: 65535
t.datetime "created_at"
t.datetime "updated_at"
t.string "registration_subject", limit: 255
t.string "accepted_subject", limit: 255
t.string "rejected_subject", limit: 255
t.string "confirmed_without_registration_subject", limit: 255
t.boolean "send_on_conference_dates_updated", default: false
t.boolean "send_on_conference_dates_updated", default: false
t.string "conference_dates_updated_subject", limit: 255
t.text "conference_dates_updated_body", limit: 65535
t.boolean "send_on_conference_registration_dates_updated", default: false
t.boolean "send_on_conference_registration_dates_updated", default: false
t.string "conference_registration_dates_updated_subject", limit: 255
t.text "conference_registration_dates_updated_body", limit: 65535
t.boolean "send_on_venue_updated", default: false
t.boolean "send_on_venue_updated", default: false
t.string "venue_updated_subject", limit: 255
t.text "venue_updated_body", limit: 65535
t.boolean "send_on_cfp_dates_updated", default: false
t.boolean "send_on_program_schedule_public", default: false
t.boolean "send_on_cfp_dates_updated", default: false
t.boolean "send_on_program_schedule_public", default: false
t.string "program_schedule_public_subject", limit: 255
t.string "cfp_dates_updated_subject", limit: 255
t.text "program_schedule_public_body", limit: 65535
@ -208,31 +199,31 @@ ActiveRecord::Schema.define(version: 20160226133808) do
end
create_table "events", force: :cascade do |t|
t.string "guid", limit: 255, null: false
t.string "guid", limit: 255, null: false
t.integer "event_type_id", limit: 4
t.string "title", limit: 255, null: false
t.string "title", limit: 255, null: false
t.string "subtitle", limit: 255
t.integer "time_slots", limit: 4
t.string "state", limit: 255, default: "new", null: false
t.string "progress", limit: 255, default: "new", null: false
t.string "state", limit: 255, default: "new", null: false
t.string "progress", limit: 255, default: "new", null: false
t.string "language", limit: 255
t.datetime "start_time"
t.text "abstract", limit: 16777215
t.text "description", limit: 16777215
t.boolean "public", default: true
t.text "abstract", limit: 65535
t.text "description", limit: 65535
t.boolean "public", default: true
t.string "logo_file_name", limit: 255
t.string "logo_content_type", limit: 255
t.integer "logo_file_size", limit: 4
t.datetime "logo_updated_at"
t.text "proposal_additional_speakers", limit: 16777215
t.text "proposal_additional_speakers", limit: 65535
t.integer "track_id", limit: 4
t.integer "room_id", limit: 4
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "require_registration"
t.integer "difficulty_level_id", limit: 4
t.integer "week", limit: 4
t.boolean "is_highlight", default: false
t.boolean "is_highlight", default: false
t.integer "program_id", limit: 4
end
@ -297,8 +288,8 @@ ActiveRecord::Schema.define(version: 20160226133808) do
create_table "question_types", force: :cascade do |t|
t.string "title", limit: 255
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "questions", force: :cascade do |t|
@ -306,8 +297,8 @@ ActiveRecord::Schema.define(version: 20160226133808) do
t.integer "question_type_id", limit: 4
t.integer "conference_id", limit: 4
t.boolean "global"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "registration_periods", force: :cascade do |t|
@ -319,23 +310,16 @@ ActiveRecord::Schema.define(version: 20160226133808) do
end
create_table "registrations", force: :cascade do |t|
t.integer "conference_id", limit: 4
t.integer "conference_id", limit: 4
t.datetime "arrival"
t.datetime "departure"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "dietary_choice_id", limit: 4
t.text "other_dietary_choice", limit: 16777215
t.text "other_special_needs", limit: 16777215
t.boolean "attended", default: false
t.datetime "created_at"
t.datetime "updated_at"
t.text "other_special_needs", limit: 65535
t.boolean "attended", default: false
t.boolean "volunteer"
t.integer "user_id", limit: 4
t.integer "week", limit: 4
end
create_table "registrations_social_events", id: false, force: :cascade do |t|
t.integer "registration_id", limit: 4
t.integer "social_event_id", limit: 4
t.integer "user_id", limit: 4
t.integer "week", limit: 4
end
create_table "registrations_vchoices", id: false, force: :cascade do |t|
@ -345,15 +329,15 @@ ActiveRecord::Schema.define(version: 20160226133808) do
create_table "roles", force: :cascade do |t|
t.string "name", limit: 255
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.string "description", limit: 255
t.integer "resource_id", limit: 4
t.string "resource_type", limit: 255
end
add_index "roles", ["name", "resource_type", "resource_id"], name: "index_roles_on_name_and_resource_type_and_resource_id"
add_index "roles", ["name"], name: "index_roles_on_name"
add_index "roles", ["name", "resource_type", "resource_id"], name: "index_roles_on_name_and_resource_type_and_resource_id", using: :btree
add_index "roles", ["name"], name: "index_roles_on_name", using: :btree
create_table "rooms", force: :cascade do |t|
t.string "guid", limit: 255, null: false
@ -362,13 +346,6 @@ ActiveRecord::Schema.define(version: 20160226133808) do
t.integer "venue_id", limit: 4, null: false
end
create_table "social_events", force: :cascade do |t|
t.integer "conference_id", limit: 4
t.string "title", limit: 255
t.text "description", limit: 65535
t.date "date"
end
create_table "splashpages", force: :cascade do |t|
t.integer "conference_id", limit: 4
t.boolean "public"
@ -442,12 +419,12 @@ ActiveRecord::Schema.define(version: 20160226133808) do
end
create_table "tracks", force: :cascade do |t|
t.string "guid", limit: 255, null: false
t.string "name", limit: 255, null: false
t.text "description", limit: 16777215
t.string "guid", limit: 255, null: false
t.string "name", limit: 255, null: false
t.text "description", limit: 65535
t.string "color", limit: 255
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.integer "program_id", limit: 4
end
@ -466,8 +443,8 @@ ActiveRecord::Schema.define(version: 20160226133808) do
t.datetime "confirmed_at"
t.datetime "confirmation_sent_at"
t.string "unconfirmed_email", limit: 255
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.string "name", limit: 255
t.boolean "email_public"
t.text "biography", limit: 65535
@ -486,17 +463,17 @@ ActiveRecord::Schema.define(version: 20160226133808) do
t.boolean "is_disabled", default: false
end
add_index "users", ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true
add_index "users", ["email"], name: "index_users_on_email", unique: true
add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
add_index "users", ["username"], name: "index_users_on_username", unique: true
add_index "users", ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true, using: :btree
add_index "users", ["email"], name: "index_users_on_email", unique: true, using: :btree
add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree
add_index "users", ["username"], name: "index_users_on_username", unique: true, using: :btree
create_table "users_roles", id: false, force: :cascade do |t|
t.integer "role_id", limit: 4
t.integer "user_id", limit: 4
end
add_index "users_roles", ["user_id", "role_id"], name: "index_users_roles_on_user_id_and_role_id"
add_index "users_roles", ["user_id", "role_id"], name: "index_users_roles_on_user_id_and_role_id", using: :btree
create_table "vchoices", force: :cascade do |t|
t.integer "vday_id", limit: 4
@ -507,8 +484,8 @@ ActiveRecord::Schema.define(version: 20160226133808) do
t.integer "conference_id", limit: 4
t.date "day"
t.text "description", limit: 65535
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "venues", force: :cascade do |t|
@ -516,8 +493,8 @@ ActiveRecord::Schema.define(version: 20160226133808) do
t.string "name", limit: 255
t.string "website", limit: 255
t.text "description", limit: 65535
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.string "photo_file_name", limit: 255
t.string "photo_content_type", limit: 255
t.integer "photo_file_size", limit: 4
@ -532,16 +509,16 @@ ActiveRecord::Schema.define(version: 20160226133808) do
end
create_table "versions", force: :cascade do |t|
t.string "item_type", limit: 255, null: false
t.integer "item_id", limit: 4, null: false
t.string "event", limit: 255, null: false
t.string "item_type", limit: 255, null: false
t.integer "item_id", limit: 4, null: false
t.string "event", limit: 255, null: false
t.string "whodunnit", limit: 255
t.text "object", limit: 16777215
t.text "object_changes", limit: 16777215
t.text "object", limit: 65535
t.text "object_changes", limit: 65535
t.datetime "created_at"
end
add_index "versions", ["item_type", "item_id"], name: "index_versions_on_item_type_and_item_id"
add_index "versions", ["item_type", "item_id"], name: "index_versions_on_item_type_and_item_id", using: :btree
create_table "visits", force: :cascade do |t|
t.uuid "visitor_id", limit: 16
@ -566,13 +543,13 @@ ActiveRecord::Schema.define(version: 20160226133808) do
t.datetime "started_at"
end
add_index "visits", ["user_id"], name: "index_visits_on_user_id"
add_index "visits", ["user_id"], name: "index_visits_on_user_id", using: :btree
create_table "votes", force: :cascade do |t|
t.integer "event_id", limit: 4
t.integer "rating", limit: 4
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.integer "user_id", limit: 4
end
@ -580,8 +557,8 @@ ActiveRecord::Schema.define(version: 20160226133808) do
t.integer "conference_id", limit: 4
t.string "title", limit: 255, null: false
t.text "description", limit: 65535
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at"
t.datetime "updated_at"
end
end

View file

@ -1,9 +0,0 @@
FactoryGirl.define do
factory :social_event do
title 'Example Social Event'
description 'Lorem Ipsum Dolsum'
date { Date.today }
conference
end
end

View file

@ -29,8 +29,6 @@ describe 'Registration' do
describe 'association' do
it { is_expected.to belong_to(:user) }
it { is_expected.to belong_to(:conference) }
it { is_expected.to belong_to(:dietary_choice) }
it { is_expected.to have_and_belong_to_many(:social_events) }
it { is_expected.to have_and_belong_to_many(:events) }
it { is_expected.to have_and_belong_to_many(:qanswers) }
it { is_expected.to have_and_belong_to_many(:vchoices) }