# 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.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 :convert_cate_tag_type => :environment do [Page,PagePart].each do |obj| obj.all.each do |pp| if pp.category.blank? pp.category = [] else pp.category = [pp.category] end if pp.tag.blank? pp.tag = [] else pp.tag = [pp.tag] end pp.save end end end task :flatten_category_and_tag => :environment do [Page,PagePart].each do |obj| obj.all.each do |pp| unless pp.category.blank? pp.update_attribute(:category, pp.category.flatten) end unless pp.tag.blank? pp.update_attribute(:tag, pp.tag.flatten) end end 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 task :save_pages => :environment do Page.all.each do |page| page.save end end task :backup_page_frontend_setting => :environment do Page.all.each do |page| if page.frontend_field and page.frontend_field.collect{|t| t.class}.include?(Array) page["temp_frontend_setting"] = page.frontend_field end page.save end end # task :correct_page_frontend_setting => :environment do # Page.all.each do |page| # page.frontend_field = {} # if page["temp_frontend_setting"] and page["temp_frontend_setting"].collect{|t| t.class}.include?(Array) # page["temp_frontend_setting"].each_with_index do |old_frontend_setting,index| # for_a_field={ # :field_name=>old_frontend_setting[0], # :field_type=> old_frontend_setting[1], # :set_to_link=>old_frontend_setting[2] # } # page.frontend_field << for_a_field # end #of each_with_index # end # of if Array # binding.pry unless page.frontend_field.blank? # page.save # end #of each page # end #of task task :migrate_from_one_frontend_field_to_three_fields => :environment do Page.all.each do |page| page.frontend_field_name = [] page.frontend_class = [] page.frontend_sat_to_link = [] if page.frontend_field and page.frontend_field.collect{|t| t.class}.include?(Array) page.frontend_field.each_with_index do |old_frontend_setting,index| page.frontend_field_name << old_frontend_setting[0] page.frontend_class << old_frontend_setting[1] page.frontend_sat_to_link << old_frontend_setting[2] end end page.save end end task :clean_page_frontend_setting => :environment do Page.all.each do |page| if page.frontend_field and page.frontend_field.collect{|t| t.class}.include?(Array) else page.frontend_field = [] end page.unset :temp_frontend_setting page.unset :frontend_field_is_link page.save end end task :to_daily_0410 => :environment do #applying Harry's code Rake::Task["desktop:upload_all_packages"].execute #applying Spen's code Rake::Task["web_link_url:web_link_url_i18n"].execute end task :save_users => :environment do User.where(:email.not => /guest/).each{|s|s.save} end task :fix_bulletin_rss_available_lang => :environment do Bulletin.all.each do |bull| if bull.create_user_id.nil? bull.update_attribute(:available_for_zh_tw, true) end end end task :fix_imported_rss => :environment do categories = BulletinCategory.where(key: /rss_/).entries unless categories.blank? categories.each do |category| bulletins = category.bulletins unless bulletins.blank? bulletins.each do |bulletin| bulletin.update_attribute(:is_top, false) unless bulletin.is_top? bulletin.update_attribute(:is_hot, false) unless bulletin.is_hot? bulletin.update_attribute(:is_hidden, false) unless bulletin.is_hidden? end end end end end task :fix_tagged_ids => :environment do Tag.all.each do |tag| tag.taggings.each do |tagging| tagged_ids = tagging.taggable.tagged_ids unless tagged_ids.include?(tag.id.to_s) tagged_ids << tag.id.to_s tagging.taggable.update_attribute(:tagged_ids, tagged_ids) end end end end task :clear_news_tags => :environment do `mongo #{Mongoid.config.database.name} --eval "db.tags.remove({_type: {$ne: 'Tag'}})"` end task :add_missing_user_link => :environment do User.all.each do |user| user.role_ids.uniq! user.sub_role_ids.uniq! user.save user.roles.each do |role| unless role.user_ids.include?(user.id) role.user_ids << user.id role.save end end user.sub_roles.each do |sub_role| unless sub_role.user_ids.include?(user.id) sub_role.user_ids << user.id sub_role.save end end end Role.all.each do |role| role.user_ids.uniq! role.save role.users.each do |user| unless user.role_ids.include?(role.id) user.role_ids << role.id user.save end end end SubRole.all.each do |sub_role| sub_role.user_ids.uniq! sub_role.save sub_role.users.each do |user| unless user.sub_role_ids.include?(sub_role.id) user.sub_role_ids << sub_role.id user.save end end end end end