From b9e10922ee15e1070f3c45e21513d20af401e71f Mon Sep 17 00:00:00 2001 From: Stella Rouzi Date: Wed, 23 Mar 2016 17:18:51 +0200 Subject: [PATCH 1/2] drop dietary choices, social events, and html_export_path --- .../admin/conference_controller.rb | 5 +- app/models/conference.rb | 4 - app/models/dietary_choice.rb | 4 - app/models/registration.rb | 3 - app/models/revision_observer.rb | 2 +- app/models/social_event.rb | 4 - app/views/admin/registrations/edit.html.haml | 7 - config/routes.rb | 2 - ...160309182642_remove_social_events_table.rb | 134 ++++++++++++++ ...0309182655_remove_dietary_choices_table.rb | 173 ++++++++++++++++++ ...emove_html_export_path_from_conferences.rb | 5 + spec/factories/social_events.rb | 9 - spec/models/registration_spec.rb | 2 - 13 files changed, 315 insertions(+), 39 deletions(-) delete mode 100644 app/models/dietary_choice.rb delete mode 100644 app/models/social_event.rb create mode 100644 db/migrate/20160309182642_remove_social_events_table.rb create mode 100644 db/migrate/20160309182655_remove_dietary_choices_table.rb create mode 100644 db/migrate/20160309183052_remove_html_export_path_from_conferences.rb delete mode 100644 spec/factories/social_events.rb diff --git a/app/controllers/admin/conference_controller.rb b/app/controllers/admin/conference_controller.rb index 9cdf0846..dd520157 100644 --- a/app/controllers/admin/conference_controller.rb +++ b/app/controllers/admin/conference_controller.rb @@ -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, diff --git a/app/models/conference.rb b/app/models/conference.rb index 048da738..e43ef9ae 100644 --- a/app/models/conference.rb +++ b/app/models/conference.rb @@ -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 diff --git a/app/models/dietary_choice.rb b/app/models/dietary_choice.rb deleted file mode 100644 index 48ff7828..00000000 --- a/app/models/dietary_choice.rb +++ /dev/null @@ -1,4 +0,0 @@ -class DietaryChoice < ActiveRecord::Base - belongs_to :conference - has_many :registrations -end diff --git a/app/models/registration.rb b/app/models/registration.rb index d02fa8bb..0d314c3d 100644 --- a/app/models/registration.rb +++ b/app/models/registration.rb @@ -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 diff --git a/app/models/revision_observer.rb b/app/models/revision_observer.rb index 7247efc0..4d2784f4 100644 --- a/app/models/revision_observer.rb +++ b/app/models/revision_observer.rb @@ -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 diff --git a/app/models/social_event.rb b/app/models/social_event.rb deleted file mode 100644 index e75224ab..00000000 --- a/app/models/social_event.rb +++ /dev/null @@ -1,4 +0,0 @@ -class SocialEvent < ActiveRecord::Base - belongs_to :conference - has_and_belongs_to_many :registrations -end diff --git a/app/views/admin/registrations/edit.html.haml b/app/views/admin/registrations/edit.html.haml index 694da7a5..0cd19eea 100644 --- a/app/views/admin/registrations/edit.html.haml +++ b/app/views/admin/registrations/edit.html.haml @@ -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' } diff --git a/config/routes.rb b/config/routes.rb index 9ec449f9..c416f3b0 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -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' diff --git a/db/migrate/20160309182642_remove_social_events_table.rb b/db/migrate/20160309182642_remove_social_events_table.rb new file mode 100644 index 00000000..e44a7c3f --- /dev/null +++ b/db/migrate/20160309182642_remove_social_events_table.rb @@ -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 diff --git a/db/migrate/20160309182655_remove_dietary_choices_table.rb b/db/migrate/20160309182655_remove_dietary_choices_table.rb new file mode 100644 index 00000000..c61876bc --- /dev/null +++ b/db/migrate/20160309182655_remove_dietary_choices_table.rb @@ -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 diff --git a/db/migrate/20160309183052_remove_html_export_path_from_conferences.rb b/db/migrate/20160309183052_remove_html_export_path_from_conferences.rb new file mode 100644 index 00000000..f1d3171e --- /dev/null +++ b/db/migrate/20160309183052_remove_html_export_path_from_conferences.rb @@ -0,0 +1,5 @@ +class RemoveHtmlExportPathFromConferences < ActiveRecord::Migration + def change + remove_column :conferences, :html_export_path, :string + end +end diff --git a/spec/factories/social_events.rb b/spec/factories/social_events.rb deleted file mode 100644 index 46088701..00000000 --- a/spec/factories/social_events.rb +++ /dev/null @@ -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 diff --git a/spec/models/registration_spec.rb b/spec/models/registration_spec.rb index af94a6ad..eff512db 100644 --- a/spec/models/registration_spec.rb +++ b/spec/models/registration_spec.rb @@ -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) } From 6e33d27a7b7d1b7d8e9ba363ee4423505dca6147 Mon Sep 17 00:00:00 2001 From: Stella Rouzi Date: Wed, 23 Mar 2016 17:19:14 +0200 Subject: [PATCH 2/2] changed db/schema --- db/schema.rb | 199 +++++++++++++++++++++++---------------------------- 1 file changed, 88 insertions(+), 111 deletions(-) diff --git a/db/schema.rb b/db/schema.rb index 69f1f7e3..ffca5c35 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -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