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 class BlocksMigration
def self.cleanup def self.cleanup
clean_cta Communication::Website::Post.find_each do |post|
clean_chapter next if post.text.blank?
clean_definitions cleanup_post post
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
end end
def self.clean_gallery private
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
def self.clean_pages def self.cleanup_post(post)
Communication::Block.where(template_kind: 'pages').each do |block| puts "#{post} (#{post.id}, #{post.university})"
data = block['data'] return if post.blocks.any?
if data && data['kind'].present? puts " migrating"
data['mode'] = data['kind'] puts post.text.to_html
block['data'] = data # block = post.blocks.create university: post.university, template_kind: :chapter
block.save # data = block.data
end # data['text'] = post.text.to_html
end # block.data = data
# block.save
end end
end end
...@@ -8,16 +8,6 @@ namespace :app do ...@@ -8,16 +8,6 @@ namespace :app do
desc 'Fix things' desc 'Fix things'
task fix: :environment do 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 BlocksMigration.cleanup
end 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