# encoding: utf-8 
require 'resque_scheduler/tasks'

namespace :data_migration do
  
  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_news_and_announcement => :environment do
    app = ModuleApp.first({:conditions=>{:title => 'news'}})
    app.widgets << "news_bulletins_search_block" if !app.widgets.include?("news_bulletins_search_block")
    app.save!
    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