diff --git a/app/services/blocks_migration.rb b/app/services/blocks_migration.rb index ff7302a64868f9923e68db50dfbc009ed9130569..65d2e69e2d54892d97bd6d9f7d96459b1c41a78d 100644 --- a/app/services/blocks_migration.rb +++ b/app/services/blocks_migration.rb @@ -1,115 +1,19 @@ +require 'communication/block/template/base' +require 'communication/block/template/chapter' + class BlocksMigration def self.cleanup - clean_cta - clean_chapter - clean_definitions - clean_gallery - clean_image - clean_posts - clean_pages - end - - private - - def self.clean_cta - Communication::Block.where(template_kind: 'call_to_action').each do |block| - data = block['data'] - if data && data['url'].present? - elements = [] - if data['url'].present? - elements << { title: data['button'], url: data['url'], target_blank: data['target_blank']} - end - if data['url_secondary'].present? - elements << { title: data['button_secondary'], url: data['url_secondary'], target_blank: data['target_blank_secondary']} - end - if data['url_tertiary'].present? - elements << { title: data['button_tertiary'], url: data['url_tertiary'], target_blank: data['target_blank_tertiary']} - end - data['elements'] = elements - data['alt'] = data['image_alt'] - data['credit'] = data['image_credit'] - block['data'] = data - - block.save - end - end - end - - def self.clean_chapter - Communication::Block.where(template_kind: 'chapter').each do |block| - data = block['data'] - if data && (data['image_alt'].present? || data['image_credit'].present?) - data['alt'] = data['image_alt'] - data['credit'] = data['image_credit'] - block['data'] = data - block.save - end - end - end - - def self.clean_definitions - Communication::Block.where(template_kind: 'definitions').each do |block| - data = block['data'] - if data && data.has_key?('elements') && data['elements'].any? && data['elements'].first.has_key?('text') - elements = [] - data['elements'].each do |elmt| - elements << { title: elmt['title'], description: elmt['text'] } - end - data['elements'] = elements - block['data'] = data - block.save - end - end - end - - def self.clean_gallery - Communication::Block.where(template_kind: 'gallery').each do |block| - data = block['data'] - if data && data.has_key?('elements') && data['elements'].any? && data['elements'].first.has_key?('file') - elements = [] - data['elements'].each do |elmt| - elements << { alt: elmt['alt'], text: elmt['text'], credit: elmt['credit'], image: elmt['file'] } - end - data['elements'] = elements - block['data'] = data - block.save - end - end - end - - def self.clean_image - Communication::Block.where(template_kind: 'image').each do |block| - data = block['data'] - if data && (data['image_alt'].present? || data['image_credit'].present?) - data['alt'] = data['image_alt'] - data['credit'] = data['image_credit'] - block['data'] = data - block.save - end - end - end - - def self.clean_posts - Communication::Block.where(template_kind: 'posts').each do |block| - data = block['data'] - if data && data['kind'].present? - data['mode'] = data['kind'] - block['data'] = data + Communication::Website::Post.where(description: [nil, ""]).each do |post| + puts "#{post} (#{post.id}, #{post.university})" + if post.blocks.none? + puts " migrating" + block = post.blocks.create university: post.university, template_kind: :chapter + data = block.data + data['text'] = post.text.to_html + block.data = data block.save end end end - - def self.clean_pages - Communication::Block.where(template_kind: 'pages').each do |block| - data = block['data'] - if data && data['kind'].present? - data['mode'] = data['kind'] - block['data'] = data - block.save - end - end - end - end diff --git a/lib/tasks/app.rake b/lib/tasks/app.rake index aa82f358b88686d21edf550c8d87661e4ecb1f87..b3c536e31ffdf2f80760ee58f2370825ac6b8fef 100644 --- a/lib/tasks/app.rake +++ b/lib/tasks/app.rake @@ -8,16 +8,6 @@ namespace :app do desc 'Fix things' task fix: :environment do - # University::Person.find_each do |person| - # person.is_author = person.communication_website_posts.any? - # person.save - # end - - # Communication::Website::Page.where("header_text ILIKE ?", "%<p>%").find_each { |page| - # clean_header_text = ActionController::Base.helpers.strip_tags(page.header_text) - # page.update(header_text: clean_header_text) - # } - BlocksMigration.cleanup end