Introduce Program to include cfp/rooms/tracks/events/event_types/difficulty_levels

This commit is contained in:
Stella Rouzi 2015-10-25 13:29:02 +02:00 committed by Henne Vogelsang
parent 028b82fda8
commit 444356fbc7
117 changed files with 1812 additions and 905 deletions

View file

@ -0,0 +1,75 @@
class CreateProgramsTable< ActiveRecord::Migration
class TempConference < ActiveRecord::Base
self.table_name = 'conferences'
end
class TempCfp < ActiveRecord::Base
self.table_name = 'cfps'
end
class TempCallForPaper < ActiveRecord::Base
self.table_name = 'call_for_papers'
end
class TempProgram < ActiveRecord::Base
self.table_name = 'programs'
end
def up
create_table :programs do |t|
t.references :conference
t.integer :rating, default: 0
t.boolean :schedule_public, default: false
t.boolean :schedule_fluid, default: false
end
add_column :call_for_papers, :program_id, :integer
TempConference.all.each do |conference|
unless TempProgram.find_by(conference_id: conference.id)
program = TempProgram.new
program.conference_id = conference.id
program.save!
if (cfp = TempCallForPaper.find_by(conference_id: conference.id))
cfp.program_id = program.id
cfp.save!
program.rating = cfp.rating
program.schedule_public = cfp.schedule_public
program.schedule_fluid = cfp.schedule_changes
program.save!
end
end
end
remove_column :call_for_papers, :conference_id
remove_column :call_for_papers, :rating
remove_column :call_for_papers, :schedule_public
remove_column :call_for_papers, :schedule_changes
rename_table :call_for_papers, :cfps
end
def down
rename_table :cfps, :call_for_papers
add_column :call_for_papers, :conference_id, :integer
add_column :call_for_papers, :rating, :integer, default: 0
add_column :call_for_papers, :schedule_public, :boolean, default: false
add_column :call_for_papers, :schedule_changes, :boolean, default: false
TempConference.all.each do |conference|
if (program = TempProgram.find_by(conference_id: conference.id))
if (cfp = TempCallForPaper.find_by(program_id: program.id))
cfp.conference_id = program.conference_id
cfp.rating = program.rating
cfp.schedule_public = program.schedule_public
cfp.schedule_changes = program.schedule_fluid
cfp.save!
end
end
end
remove_column :call_for_papers, :program_id
drop_table :programs
end
end

View file

@ -0,0 +1,117 @@
class RenameConferenceIdToProgramIdInEventsRoomsTracksDifficultyLevels < ActiveRecord::Migration
class TempConference < ActiveRecord::Base
self.table_name = 'conferences'
end
class TempEvent < ActiveRecord::Base
self.table_name = 'events'
end
class TempEventType < ActiveRecord::Base
self.table_name = 'event_types'
end
class TempTrack < ActiveRecord::Base
self.table_name = 'tracks'
end
class TempDifficultyLevel < ActiveRecord::Base
self.table_name = 'difficulty_levels'
end
class TempRoom < ActiveRecord::Base
self.table_name = 'rooms'
end
class TempProgram < ActiveRecord::Base
self.table_name = 'programs'
end
def up
add_column :events, :program_id, :integer
add_column :event_types, :program_id, :integer
add_column :tracks, :program_id, :integer
add_column :difficulty_levels, :program_id, :integer
add_column :rooms, :program_id, :integer
TempConference.all.each do |conference|
program = Program.find_by(conference_id: conference.id)
TempEvent.where(conference_id: conference.id).each do |event|
event.program_id = program.id
event.save!
end
TempEventType.where(conference_id: conference.id).each do |event_type|
event_type.program_id = program.id
event_type.save!
end
TempTrack.where(conference_id: conference.id).each do |track|
track.program_id = program.id
track.save!
end
TempDifficultyLevel.where(conference_id: conference.id).each do |difficulty_level|
difficulty_level.program_id = program.id
difficulty_level.save!
end
TempRoom.where(conference_id: conference.id).each do |room|
room.program_id = program.id
room.save!
end
end
remove_column :events, :conference_id
remove_column :event_types, :conference_id
remove_column :tracks, :conference_id
remove_column :difficulty_levels, :conference_id
remove_column :rooms, :conference_id
end
def down
add_column :events, :conference_id, :integer
add_column :event_types, :conference_id, :integer
add_column :tracks, :conference_id, :integer
add_column :difficulty_levels, :conference_id, :integer
add_column :rooms, :conference_id, :integer
TempConference.all.each do |conference|
program = TempProgram.find_by(conference_id: conference.id)
if program
TempEvent.where(program_id: program.id).each do |event|
event.conference_id = conference.id
event.save!
end
TempEventType.where(program_id: program.id).each do |event_type|
event_type.conference_id = conference.id
event_type.save!
end
TempTrack.where(program_id: program.id).each do |track|
track.conference_id = conference.id
track.save!
end
TempDifficultyLevel.where(program_id: program.id).each do |difficulty_level|
difficulty_level.conference_id = conference.id
difficulty_level.save!
end
TempRoom.where(program_id: program.id).each do |room|
room.conference_id = conference.id
room.save!
end
end
end
remove_column :events, :program_id
remove_column :event_types, :program_id
remove_column :tracks, :program_id
remove_column :difficulty_levels, :program_id
remove_column :rooms, :program_id
end
end

View file

@ -0,0 +1,10 @@
class RenameEmailSettingsWithCfpAndProgram < ActiveRecord::Migration
def change
rename_column :email_settings, :send_on_call_for_papers_schedule_public, :send_on_program_schedule_public
rename_column :email_settings, :call_for_papers_schedule_public_body, :program_schedule_public_template
rename_column :email_settings, :call_for_papers_schedule_public_subject, :program_schedule_public_subject
rename_column :email_settings, :send_on_call_for_papers_dates_updated, :send_on_cfp_dates_updates
rename_column :email_settings, :call_for_papers_dates_updated_subject, :cfp_dates_updates_subject
rename_column :email_settings, :call_for_papers_dates_updated_body, :cfp_dates_updates_template
end
end