Skip to content
Snippets Groups Projects
Unverified Commit 9134f285 authored by Arnaud Levy's avatar Arnaud Levy Committed by GitHub
Browse files

Merge pull request #682 from noesya/fix-legacy

Migration des vieux textes dans les actualités
parents 672e041e d924dfdf
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
Communication::Website::Post.find_each do |post|
next if post.text.blank?
cleanup_post post
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
block.save
end
end
end
private
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
def self.cleanup_post(post)
puts "#{post} (#{post.id}, #{post.university})"
return if post.blocks.any?
puts " migrating"
puts post.text.to_html
# 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
......@@ -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