Orbit/lib/tasks/data_migration.rake

119 lines
3.6 KiB
Ruby

# encoding: utf-8
require 'resque_scheduler/tasks'
namespace :data_migration do
task :migrate_user_infos_from_1121 => :environment do
AttributeField.all.each do |af|
if af.has_attribute?('locale')
af.title_translations = case af[:locale]
when true
af[:locale_title]
when false
{af[:neutral_for] => af[:neutral_title]}
end
af.unset("locale")
af.unset("locale_title")
af.unset("neutral_for")
af.unset("neutral_title")
af.save
end
end
end
task :add_order_to_announcement_tag_0703 => :environment do
AnnouncementTag.first({conditions:{ key: 'students' }}).update_attributes(:order=>1)
AnnouncementTag.first({conditions:{ key: 'alumni' }}).update_attributes(:order=>2)
AnnouncementTag.first({conditions:{ key: 'employee' }}).update_attributes(:order=>3)
AnnouncementTag.first({conditions:{ key: 'guest' }}).update_attributes(:order=>4)
end
task :add_archive_func_to_bulletin_category_0704 => :environment do
BulletinCategory.all.each{|bc| bc.disable=false;bc.save!}
end
task :add_archive_func_to_news_bulletin_category_0704 => :environment do
NewsBulletinCategory.all.each{|bc| bc.disable=false;bc.save!}
end
task :add_search_widget_to_announcement => :environment do
app = ModuleApp.first({:conditions=>{:title => 'Announcement'}})
app.widgets << "bulletins_search_block" if !app.widgets.include?("bulletins_search_block")
app.save!
p "==DO NOT FORGET TO RUN: rake redis_search:index"
end
task :add_search_func => :environment do
ModuleApp.create!(:key=>'search',:title => 'search',:enable_frontend=> true,:app_pages=>["full_search","optional_search"])
end
task :rename_test_role_name => :environment do
sr = SubRole.first({conditions:{key: 'good_teacher' }})
sr.i18n_variable[:zh_tw] = '銳論數位'
sr.i18n_variable[:en] = 'RulingCom'
sr.save!
sr = SubRole.first({conditions:{key: 'bad_teacher' }})
sr.i18n_variable[:zh_tw] = '銳論數位'
sr.i18n_variable[:en] = 'RulingCom'
sr.save!
end
task :make_bulletins_and_news_has_language_flag => :environment do
a = []
i = 0
[Bulletin,NewsBulletin].each do |bulletin|
puts "="*10 + bulletin.to_s + "="*10
bulletin.admin_manager_all.each do |bt|
result = if (bt.save(:validate => false) rescue false )
"OK"
else
a << bt.id
'Failed'
end
i += 1
puts((bt.title.to_s rescue '') + "----------#{result}")
end
end
p a
p i
puts("#{'='*10}Finished#{'='*10}")
end
task :make_web_link_has_language_flag => :environment do
a=[]
i=0
WebLink.all.each do |wl|
result = if (wl.save(:validate => false) rescue false )
"OK"
else
a << wl.id
'Failed'
end
i += 1
puts((wl.title.to_s rescue '') + "----------#{result}")
end
p a
p i
puts("#{'='*10}Finished#{'='*10}")
end
task :make_bulletin_save_dept_data => :environment do
Bulletin.all.each{|bt| bt.save!}
end
task :extend_exsisted_app_module_for_dept_search => :environment do
app = ModuleApp.first({:conditions=>{:title => 'news'}})
app.app_pages << "index_by_unit" if !app.widgets.include?("index_by_unit")
app.save!
app = ModuleApp.first({:conditions=>{:title => 'Announcement'}})
app.app_pages << "index_by_unit" if !app.widgets.include?("index_by_unit")
app.save!
end
task :rename_attribute_field => :environment do
AttributeField.collection.update({},{'$rename' => {'title' => 'locale_title'}}, multi: true, safe: true)
end
end