Orbit/lib/tasks/migrate.rake

212 lines
6.8 KiB
Ruby

# encoding: utf-8
namespace :migrate do
task :sitemap_i18n => :environment do
Item.all.each do |item|
item.sitemap_enabled = item.sitemap_enabled ? {'en' => 'true', 'zh_tw' => 'true'} : {}
item.save
end
end
task :recreate_page_parts => :environment do
Page.all.each do |page|
page.create_parts
page.save
end
end
task :add_widget_options_to_gallery => :environment do
a = ModuleApp.where(:key=>'gallery').first
a.widget_options = {"widget1"=>{"vertical"=>[1, 2], "horizontal"=>[1, 2, 3, 4, 5, 6]}}
a.widget_options_fields_i18n = {"widget1"=>{"vertical"=>"gallery.widget_option.vertical", "horizontal"=>"gallery.widget_option.horizontal"}}
a.save
end
task :clean_object_auth => :environment do
ObjectAuth.destroy_all
end
task :correct_gallery_widget => :environment do
@module_app = ModuleApp.where(:key=>'gallery').first
@module_app.widgets=["widget1"]
@module_app.save
end
task :reinstall_calendar => :environment do
old_calendar = ModuleApp.where(key: "calendar")
old_calendar.destroy_all unless old_calendar.empty?
ModuleApp.new.from_json(File.open("#{Rails.root}/vendor/built_in_modules/calendar/calendar.json").read).save
end
task :reinstall_gallery => :environment do
old_gallery = ModuleApp.where(key: "gallery")
old_gallery.destroy_all unless old_gallery.empty?
ModuleApp.new.from_json(File.open("#{Rails.root}/vendor/built_in_modules/gallery/gallery.json").read).save
end
task :make_default_widget_work_config_for_announcement => :environment do
a = ModuleApp.where(:key=>'announcement').first
a.widgets[:default_widget] = ['typeA','typeC','typeB_style2','typeB_style3','typeB_style4']
a.widgets = {"index"=>["1", "2"], "default_widget"=>["typeA", "typeC", "typeB_style2", "typeB_style3", "typeB_style4"]}
a.widget_fields = [
["title","announcement.default_widget.title"],
["bulletin_category_with_title","announcement.default_widget.bulletin_category_with_title"],
["postdate","announcement.default_widget.postdate"]
]
a.get_default_widget = {:query=>'Bulletin.all',:image=> 'image'}
a.widget_fields_link_method = {
"title"=>{:method => 'panel_announcement_front_end_bulletin_path',
:args=>:self},
"bulletin_category_with_title"=>{
:method => 'panel_announcement_front_end_bulletins_path',
:args=>{:category_id => [:bulletin_category,:id]}}
}
a.save
end
task :make_default_widget_work_config_for_web_link => :environment do
a = ModuleApp.where(:key=>'web_resource').first
a.widgets = { "default_widget"=>["typeA", "typeC", "typeB_style2", "typeB_style3", "typeB_style4"]}
a.widget_fields = [
["title","web_link.default_widget.title"],
["web_link_with_title","web_link.default_widget.bulletin_category_with_title"]
]
a.get_default_widget = {:query=>'WebLink.all'}
a.widget_fields_link_method = {
"title"=>{:method => 'panel_web_resource_front_end_web_link_path',
:args=>:self},
"web_link_with_title"=>{
:method => 'panel_web_resource_front_end_web_link_path',
:args=>{:category_id => [:web_link_category,:id]}}
}
a.save
end
task :reorder_items => :environment do
reorder_children(Item.root)
end
def reorder_children(parent)
parent.children.each_with_index do |child, i|
child.position = i
child.save
reorder_children(child) if child.children
end
end
task :add_inner_page_for_ad_banner => :environment do
a = ModuleApp.where(:key=>'ad_banner').first
a.app_pages = ["inner_page"]
a.save
end
task :correct_gallery_and_web_resoure_config => :environment do
a = ModuleApp.where(:key=>'web_resource').first
if a
a.widgets = {}
a.widgets[:web_links] = []
a.widgets[:home_list] = []
a.app_pages = ["web_links"]
a.save
end
a = ModuleApp.where(:key=>'gallery').first
if a
a.widgets = {}
a.widgets[:widget1] = []
a.widget_options_fields_i18n = {"widget1"=>{"vertical"=>"gallery.widget_option.vertical", "horizontal"=>"gallery.widget_option.horizontal", "album_id"=>"gallery.widget_option.album"}}
a.widget_options = {"widget1"=>{"vertical"=>[1, 2], "horizontal"=>[1, 2, 3, 4, 5, 6], "album_id"=>{"query"=>"GalleryAlbum.all", "value"=>:id, "label"=>:name}}}
a.save
end
end
task :clean_module_app_objects => :environment do
ModuleApp.all.each do |ma|
%w{intro widget_fields_link_method widgets get_default_widget app_pages author enable_frontend get_widget_style get_widget_style organization update_info using_default_widget version widget_fields version create_date}.each do |field|
ma.unset field
end
ma.save
end
end
task :cleanup_page_part_without_page => :environment do
pps = PagePart.all.select{|t| t.page.nil? }
pps.each{|t| t.destroy}
end
task :backup_module_app_info => :environment do
PagePart.all.each do |pp|
pp[:backup_module_app_key] = (pp.module_app ? pp.module_app.key : nil)
puts pp.id
pp.save
# puts pp.inspect
end
Page.all.each do |page|
page[:backup_module_app_key] = (page.module_app ? page.module_app.key : nil)
page.save
# puts page.inspect
end
end
task :rebind_module_app => :environment do
Page.all.each do |page|
if page[:backup_module_app_key].nil?
page.module_app = nil
else
page.module_app = ModuleApp.where(:key=> page[:backup_module_app_key]).first
end
page.save
end
PagePart.all.each do |pp|
if pp[:backup_module_app_key].nil?
pp.module_app = nil
else
pp.module_app = ModuleApp.where(:key=> pp[:backup_module_app_key]).first
end
pp.save
end
end
task :clean_up_module_app_info => :environment do
Page.all.each do |page|
page.unset(:backup_module_app_key)
page.save
end
PagePart.all.each do |pp|
pp.unset(:backup_module_app_key)
pp.save
end
end
task :clean_parts => :environment do
PagePart.where(widget_style: /\d/, kind: 'module_widget').each{|part| part.update_attributes({kind: 'text', widget_style: nil, widget_field: nil})}
PagePart.where(widget_style: /\d/).each{|part| part.update_attributes({widget_style: nil, widget_field: nil})}
end
task :delete_import_archive => :environment do
categories = ArchiveFileCategory.where(key: /import_/).entries
unless categories.blank?
categories.each do |category|
files = category.archive_files
unless files.blank?
files.each(&:destroy)
end
category.destroy
end
end
end
end