Skip to content
Snippets Groups Projects
Commit b968c34e authored by Arnaud Levy's avatar Arnaud Levy
Browse files

Migrate old texts in posts

parent 672e041e
No related branches found
No related tags found
No related merge requests found
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
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment