Rooms belong to venue

This commit is contained in:
Stella Rouzi 2015-11-07 11:43:36 +02:00 committed by Henne Vogelsang
parent feabbfbc99
commit f840f2b3f0
31 changed files with 221 additions and 166 deletions

View file

@ -21,6 +21,7 @@ class CreateProgramsTable< ActiveRecord::Migration
t.integer :rating, default: 0
t.boolean :schedule_public, default: false
t.boolean :schedule_fluid, default: false
t.timestamps
end
add_column :call_for_papers, :program_id, :integer

View file

@ -1,4 +1,4 @@
class RenameConferenceIdToProgramIdInEventsRoomsTracksDifficultyLevels < ActiveRecord::Migration
class RenameConferenceIdToProgramIdInEventsTracksDifficultyLevels < ActiveRecord::Migration
class TempConference < ActiveRecord::Base
self.table_name = 'conferences'
end
@ -19,10 +19,6 @@ class RenameConferenceIdToProgramIdInEventsRoomsTracksDifficultyLevels < ActiveR
self.table_name = 'difficulty_levels'
end
class TempRoom < ActiveRecord::Base
self.table_name = 'rooms'
end
class TempProgram < ActiveRecord::Base
self.table_name = 'programs'
end
@ -32,7 +28,6 @@ class RenameConferenceIdToProgramIdInEventsRoomsTracksDifficultyLevels < ActiveR
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)
@ -56,18 +51,12 @@ class RenameConferenceIdToProgramIdInEventsRoomsTracksDifficultyLevels < ActiveR
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
@ -75,7 +64,6 @@ class RenameConferenceIdToProgramIdInEventsRoomsTracksDifficultyLevels < ActiveR
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)
@ -100,11 +88,6 @@ class RenameConferenceIdToProgramIdInEventsRoomsTracksDifficultyLevels < ActiveR
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
@ -112,6 +95,5 @@ class RenameConferenceIdToProgramIdInEventsRoomsTracksDifficultyLevels < ActiveR
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,54 @@
class ChangeConferenceIdToVenueIdInRooms < ActiveRecord::Migration
class TempConference < ActiveRecord::Base
self.table_name = 'conferences'
has_one :temp_venue
end
class TempVenue < ActiveRecord::Base
self.table_name = 'venues'
belongs_to :temp_conference
has_many :temp_rooms
end
class TempRoom < ActiveRecord::Base
self.table_name = 'rooms'
belongs_to :temp_venue
end
def up
add_column :rooms, :venue_id, :integer, null: false
TempRoom.all.each do |room|
venue = TempVenue.find_by(conference_id: room.conference_id)
if venue
room.venue_id = venue.id
else
test_venue = Venue.find_or_create_by!(conference_id: room.conference_id, name: 'test venue', street: 'test street', city: 'test city', country: 'test')
room.venue_id = test_venue.id
end
room.save!
end
remove_column :rooms, :conference_id
end
def down
add_column :rooms, :conference_id, :integer, null: false
TempRoom.all.each do |room|
venue = TempVenue.find(room.venue_id)
conference = TempConference.find(venue.conference_id)
if conference
room.conference_id = conference.id
end
room.save!
end
remove_column :rooms, :venue_id
end
end