mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
42 lines
1.3 KiB
Ruby
42 lines
1.3 KiB
Ruby
class AssignUsersToEvents < ActiveRecord::Migration
|
|
class TempEvent < ActiveRecord::Base
|
|
self.table_name = 'events'
|
|
end
|
|
|
|
class TempUser < ActiveRecord::Base
|
|
self.table_name = 'users'
|
|
end
|
|
|
|
class TempEventUser < ActiveRecord::Base
|
|
self.table_name = 'event_users'
|
|
belongs_to :temp_event
|
|
belongs_to :temp_user
|
|
end
|
|
|
|
def up
|
|
user_deleted = TempUser.find_or_create_by(email: 'deleted@localhost.osem', name: 'User deleted',
|
|
biography: 'Data is no longer available for deleted user.')
|
|
|
|
TempEvent.all.each do |event|
|
|
event_users = TempEventUser.where(event_id: event)
|
|
if event_users.blank?
|
|
# No users for event
|
|
TempEventUser.create!(event_id: event.id, user_id: user_deleted.id, event_role: 'submitter')
|
|
TempEventUser.create!(event_id: event.id, user_id: user_deleted.id, event_role: 'speaker')
|
|
else
|
|
# Wrong records in event_users
|
|
event_users.each do |eu|
|
|
event_user = TempUser.where(id: eu.user_id)
|
|
if event_user.blank?
|
|
eu.user_id = user_deleted.id
|
|
eu.save!
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
def down
|
|
raise ActiveRecord::IrreversibleMigration.new('Cannot reverse migration.')
|
|
end
|
|
end
|