41 lines
1.1 KiB
Ruby
41 lines
1.1 KiB
Ruby
namespace :globalize do
|
|
desc "Migrates existing data to translation tables"
|
|
task migrate_data: :environment do
|
|
[
|
|
AdminNotification,
|
|
Banner,
|
|
Budget::Investment::Milestone,
|
|
I18nContent,
|
|
Legislation::DraftVersion,
|
|
Legislation::Process,
|
|
Legislation::Question,
|
|
Legislation::QuestionOption,
|
|
Poll,
|
|
Poll::Question,
|
|
Poll::Question::Answer,
|
|
SiteCustomization::Page,
|
|
Widget::Card
|
|
].each do |model_class|
|
|
Logger.new(STDOUT).info "Migrating #{model_class} data"
|
|
|
|
fields = model_class.translated_attribute_names
|
|
|
|
model_class.find_each do |record|
|
|
fields.each do |field|
|
|
locale = if model_class == SiteCustomization::Page && record.locale.present?
|
|
record.locale
|
|
else
|
|
I18n.locale
|
|
end
|
|
|
|
if record.send(:"#{field}_#{locale}").blank?
|
|
record.send(:"#{field}_#{locale}=", record.untranslated_attributes[field.to_s])
|
|
end
|
|
end
|
|
|
|
record.save!
|
|
end
|
|
end
|
|
end
|
|
end
|