372 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			372 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| # encoding: utf-8 
 | |
| 
 | |
| namespace :migrate do
 | |
|   
 | |
|   task :i18n => :environment do
 | |
|   
 | |
|     p 'Start Bulletin'
 | |
|     bulletins = Bulletin.admin_manager_all
 | |
|     i = 1
 | |
|     bulletins.each do |bulletin|
 | |
|     	p "#{i}/#{bulletins.size} - #{bulletin.id}"
 | |
|     	title = I18nVariable.first(:conditions => {:key => 'title', :language_value_id => bulletin.id, :language_value_type => bulletin.class})
 | |
|     	bulletin.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|     	subtitle = I18nVariable.first(:conditions => {:key => 'subtitle', :language_value_id => bulletin.id, :language_value_type => bulletin.class})
 | |
|     	bulletin.subtitle_translations = {'en' => subtitle['en'], 'zh_tw' => subtitle['zh_tw']} if subtitle
 | |
|     	text = I18nVariable.first(:conditions => {:key => 'text', :language_value_id => bulletin.id, :language_value_type => bulletin.class})
 | |
|     	bulletin.text_translations = {'en' => text['en'], 'zh_tw' => text['zh_tw']} if text
 | |
|     	p bulletin.save(:validate => false)
 | |
|     	i += 1
 | |
|     end
 | |
|     p 'End Bulletin'
 | |
| 
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start BulletinCategory'
 | |
|     categories = BulletinCategory.admin_manager_all
 | |
|     i = 1
 | |
|     categories.each do |category|
 | |
|     	p "#{i}/#{categories.size} - #{category.id}"
 | |
|     	title = I18nVariable.first(:conditions => {:language_value_id => category.id, :language_value_type => category.class})
 | |
|     	category.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|     	p category.save(:validate => false)
 | |
|     	i += 1
 | |
|     end
 | |
|     p 'End BulletinCategory'
 | |
| 
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start BulletinFile'
 | |
|     files = BulletinFile.all
 | |
|     i = 1
 | |
|     files.each do |file|
 | |
|     	p "#{i}/#{files.size} - #{file.id}"
 | |
|     	description = I18nVariable.first(:conditions => {:language_value_id => file.id, :language_value_type => file.class})
 | |
|     	file.description_translations = {'en' => description['en'], 'zh_tw' => description['zh_tw']} if description
 | |
|     	title = I18nVariable.first(:conditions => {:language_value_id => file.id, :language_value_type => file.class})
 | |
|     	file.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|     	p file.save(:validate => false)
 | |
|     	i += 1
 | |
|     end
 | |
|     p 'End BulletinFile'
 | |
| 
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start BulletinLink'
 | |
|     links = BulletinLink.all
 | |
|     i = 1
 | |
|     links.each do |link|
 | |
|       p "#{i}/#{links.size} - #{link.id}"
 | |
|       title = I18nVariable.first(:conditions => {:language_value_id => link.id, :language_value_type => link.class})
 | |
|       link.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       p link.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End BulletinLink'
 | |
| 
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start UnitListForAnc'
 | |
|     units = UnitListForAnc.all
 | |
|     i = 1
 | |
|     units.each do |unit|
 | |
|       p "#{i}/#{units.size} - #{unit.id}"
 | |
|       title = I18nVariable.first(:conditions => {:language_value_id => unit.id, :language_value_type => unit.class})
 | |
|       unit.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       p unit.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End UnitListForAnc'
 | |
| 
 | |
|     p '====================================================='
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start NewsBulletin'
 | |
|     news_bulletins = NewsBulletin.admin_manager_all
 | |
|     i = 1
 | |
|     news_bulletins.each do |news_bulletin|
 | |
|       p "#{i}/#{news_bulletins.size} - #{news_bulletin.id}"
 | |
|       title = I18nVariable.first(:conditions => {:key => 'title', :language_value_id => news_bulletin.id, :language_value_type => news_bulletin.class})
 | |
|       news_bulletin.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       subtitle = I18nVariable.first(:conditions => {:key => 'subtitle', :language_value_id => news_bulletin.id, :language_value_type => news_bulletin.class})
 | |
|       news_bulletin.subtitle_translations = {'en' => subtitle['en'], 'zh_tw' => subtitle['zh_tw']} if subtitle
 | |
|       text = I18nVariable.first(:conditions => {:key => 'text', :language_value_id => news_bulletin.id, :language_value_type => news_bulletin.class})
 | |
|       news_bulletin.text_translations = {'en' => text['en'], 'zh_tw' => text['zh_tw']} if text
 | |
|       p news_bulletin.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End NewsBulletin'
 | |
| 
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start NewsBulletinCategory'
 | |
|     categories = NewsBulletinCategory.admin_manager_all
 | |
|     i = 1
 | |
|     categories.each do |category|
 | |
|       p "#{i}/#{categories.size} - #{category.id}"
 | |
|       title = I18nVariable.first(:conditions => {:language_value_id => category.id, :language_value_type => category.class})
 | |
|       category.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       p category.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End NewsBulletinCategory'
 | |
| 
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start NewsBulletinFile'
 | |
|     files = NewsBulletinFile.all
 | |
|     i = 1
 | |
|     files.each do |file|
 | |
|       p "#{i}/#{files.size} - #{file.id}"
 | |
|       description = I18nVariable.first(:conditions => {:language_value_id => file.id, :language_value_type => file.class})
 | |
|       file.description_translations = {'en' => description['en'], 'zh_tw' => description['zh_tw']} if description
 | |
|       title = I18nVariable.first(:conditions => {:language_value_id => file.id, :language_value_type => file.class})
 | |
|       file.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       p file.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End NewsBulletinFile'
 | |
| 
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start NewsBulletinLink'
 | |
|     links = NewsBulletinLink.all
 | |
|     i = 1
 | |
|     links.each do |link|
 | |
|       p "#{i}/#{links.size} - #{link.id}"
 | |
|       title = I18nVariable.first(:conditions => {:language_value_id => link.id, :language_value_type => link.class})
 | |
|       link.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       p link.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End NewsBulletinLink'
 | |
| 
 | |
|     p '====================================================='
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start PageContext'
 | |
|     page_contexts = PageContext.all
 | |
|     i = 1
 | |
|     page_contexts.each do |page_context|
 | |
|       p "#{i}/#{page_contexts.size} - #{page_context.id}"
 | |
|       context = I18nVariable.first(:conditions => {:language_value_id => page_context.id, :language_value_type => page_context.class})
 | |
|       page_context.context_translations = {'en' => context['en'], 'zh_tw' => context['zh_tw']} if context
 | |
|       p page_context.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End PageContext'
 | |
| 
 | |
|     p '====================================================='
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start WebLink'
 | |
|     links = WebLink.all
 | |
|     i = 1
 | |
|     links.each do |link|
 | |
|       p "#{i}/#{links.size} - #{link.id}"
 | |
|       # the original key was 'name'
 | |
|       title = I18nVariable.first(:conditions => {:key => 'name', :language_value_id => link.id, :language_value_type => link.class})
 | |
|       link.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       context = I18nVariable.first(:conditions => {:key => 'context', :language_value_id => link.id, :language_value_type => link.class})
 | |
|       link.context_translations = {'en' => context['en'], 'zh_tw' => context['zh_tw']} if context
 | |
|       p link.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End WebLink'
 | |
| 
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start WebLinkCategory'
 | |
|     categories = WebLinkCategory.admin_manager_all
 | |
|     i = 1
 | |
|     categories.each do |category|
 | |
|       p "#{i}/#{categories.size} - #{category.id}"
 | |
|       title = I18nVariable.first(:conditions => {:language_value_id => category.id, :language_value_type => category.class})
 | |
|       category.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       p category.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End WebLinkCategory'
 | |
| 
 | |
|     p '====================================================='
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start Meta'
 | |
|     metas = Meta.all
 | |
|     i = 1
 | |
|     metas.each do |meta|
 | |
|       p "#{i}/#{metas.size} - #{meta.id}"
 | |
|       title = I18nVariable.first(:conditions => {:language_value_id => meta.id, :language_value_type => meta.class})
 | |
|       meta.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       p meta.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End Meta'
 | |
| 
 | |
|     p '====================================================='
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start Attribute'
 | |
|     attributes = Attribute.all
 | |
|     i = 1
 | |
|     attributes.each do |attribute|
 | |
|       p "#{i}/#{attributes.size} - #{attribute.id}"
 | |
|       title = I18nVariable.first(:conditions => {:language_value_id => attribute.id, :language_value_type => attribute.class})
 | |
|       attribute.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       p attribute.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End Attribute'
 | |
| 
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start AttributeField'
 | |
|     attribute_fields = AttributeField.all
 | |
|     i = 1
 | |
|     attribute_fields.each do |attribute_field|
 | |
|       p "#{i}/#{attribute_fields.size} - #{attribute_field.id}"
 | |
|       title = I18nVariable.first(:conditions => {:language_value_id => attribute_field.id, :language_value_type => attribute_field.class})
 | |
|       attribute_field.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       p attribute_field.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End AttributeField'
 | |
| 
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start Role'
 | |
|     roles = Role.all
 | |
|     i = 1
 | |
|     roles.each do |role|
 | |
|       p "#{i}/#{roles.size} - #{role.id}"
 | |
|       title = I18nVariable.first(:conditions => {:language_value_id => role.id, :language_value_type => role.class})
 | |
|       role.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       p role.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End Role'
 | |
| 
 | |
|     p '====================================================='
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start AdImage'
 | |
|     ad_images = AdImage.all
 | |
|     i = 1
 | |
|     ad_images.each do |image|
 | |
|       p "#{i}/#{ad_images.size} - #{image.id}"
 | |
|       # no key is set and title = context, this is due to original error in the code
 | |
|       title = I18nVariable.first(:conditions => {:language_value_id => image.id, :language_value_type => image.class})
 | |
|       image.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       image.context_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       p image.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End AdImage'
 | |
| 
 | |
|     p '====================================================='
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start Asset'
 | |
|     assets = Asset.all
 | |
|     i = 1
 | |
|     assets.each do |asset|
 | |
|       p "#{i}/#{assets.size} - #{asset.id}"
 | |
|       title = I18nVariable.first(:conditions => {:key => 'title', :language_value_id => asset.id, :language_value_type => asset.class})
 | |
|       asset.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       description = I18nVariable.first(:conditions => {:key => 'description', :language_value_id => asset.id, :language_value_type => asset.class})
 | |
|       asset.description_translations = {'en' => description['en'], 'zh_tw' => description['zh_tw']} if description
 | |
|       p asset.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End Asset'
 | |
| 
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start AssetCategory'
 | |
|     categories = AssetCategory.all
 | |
|     i = 1
 | |
|     categories.each do |category|
 | |
|       p "#{i}/#{categories.size} - #{category.id}"
 | |
|       title = I18nVariable.first(:conditions => {:language_value_id => category.id, :language_value_type => category.class})
 | |
|       category.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       p category.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End AssetCategory'
 | |
| 
 | |
|     p '====================================================='
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start Item'
 | |
|     items = Item.all
 | |
|     i = 1
 | |
|     items.each do |item|
 | |
|       p "#{i}/#{items.size} - #{item.id}"
 | |
|       title = I18nVariable.first(:conditions => {:language_value_id => item.id, :language_value_type => item.class})
 | |
|       item.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       p item.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End Item'
 | |
| 
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start Page'
 | |
|     pages = Page.all
 | |
|     i = 1
 | |
|     pages.each do |item|
 | |
|       p "#{i}/#{pages.size} - #{item.id}"
 | |
|       # the key was originally 'title', changed to 'page_title' to avoit conflict with parent
 | |
|       title = I18nVariable.first(:conditions => {:key => 'title', :language_value_id => item.id, :language_value_type => item.class})
 | |
|       item.page_title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       p item.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End Page'
 | |
| 
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start PagePart'
 | |
|     page_parts = PagePart.all
 | |
|     i = 1
 | |
|     page_parts.each do |part|
 | |
|       p "#{i}/#{page_parts.size} - #{part.id}"
 | |
|       title = I18nVariable.first(:conditions => {:key => 'title', :language_value_id => part.id, :language_value_type => part.class})
 | |
|       part.page_title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|       content = I18nVariable.first(:conditions => {:key => 'i18n_variable', :language_value_id => part.id, :language_value_type => part.class})
 | |
|       part.content_translations = {'en' => content['en'], 'zh_tw' => content['zh_tw']} if content
 | |
|       p part.save(:validate => false)
 | |
|       i += 1
 | |
|     end
 | |
|     p 'End PagePart'
 | |
| 
 | |
|     p '====================================================='
 | |
|     p '====================================================='
 | |
| 
 | |
|     p 'Start Site'
 | |
|     site = Site.first
 | |
|     title = I18nVariable.first(:conditions => {:key => 'title', :language_value_id => site.id, :language_value_type => site.class})
 | |
|     site.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title
 | |
|     footer = I18nVariable.first(:conditions => {:key => 'footer', :language_value_id => site.id, :language_value_type => site.class})
 | |
|     site.footer_translations = {'en' => footer['en'], 'zh_tw' => footer['zh_tw']} if footer
 | |
|     sub_menu = I18nVariable.first(:conditions => {:key => 'sub_menu', :language_value_id => site.id, :language_value_type => site.class})
 | |
|     site.sub_menu_translations = {'en' => sub_menu['en'], 'zh_tw' => sub_menu['zh_tw']} if sub_menu
 | |
|     p site.save(:validate => false)
 | |
|     p 'End Site'
 | |
| 
 | |
|   end
 | |
| 
 | |
| 
 | |
|   task :news_p => :environment do
 | |
|     news_bulletins = NewsBulletin.admin_manager_all rescue nil
 | |
|     i = 1
 | |
|     news_bulletins.each do |news|
 | |
|       p "#{i}/#{news_bulletins.size} - #{news.id}"
 | |
|       news.subtitle_translations = {'en' => (news.subtitle_translations['en'].gsub(/^\<p\>/, '').gsub(/\<\/p\>$/, '') rescue ''), 'zh_tw' => (news.subtitle_translations['zh_tw'].gsub(/^\<p\>/, '').gsub(/\<\/p\>$/, '') rescue nil)}
 | |
|       p news.save(:validate => false) if news.changed?
 | |
|       i += 1
 | |
|     end if news_bulletins
 | |
|   end
 | |
|   
 | |
| end
 |