Skip to content
Snippets Groups Projects
Unverified Commit 7ca71e3d authored by Sébastien Gaya's avatar Sébastien Gaya
Browse files

fix duplication on contents

parent 95619f45
No related branches found
No related tags found
No related merge requests found
......@@ -54,6 +54,12 @@ class Communication::Block::Heading < ApplicationRecord
[about]
end
def duplicate
heading = self.dup
heading.save
heading
end
def translate!(about_translation, parent_id = nil)
translation = self.dup
translation.about = about_translation
......
......@@ -3,7 +3,7 @@ module WithDuplication
def duplicate
instance = duplicate_instance
duplicate_blocks_to(instance)
duplicate_contents_to(instance)
duplicate_featured_image_to(instance)
instance
end
......@@ -18,13 +18,35 @@ module WithDuplication
instance
end
def duplicate_blocks_to(instance)
return unless respond_to?(:blocks)
blocks.ordered.each do |block|
b = block.duplicate
b.about = instance
b.position = block.position
b.save
def duplicate_contents_to(instance)
return unless respond_to?(:contents)
blocks.without_heading.ordered.each do |block|
duplicate_block(instance, block)
end
headings.root.ordered.each do |heading|
duplicate_heading(instance, heading)
end
end
def duplicate_block(instance, block, heading_id = nil)
b = block.duplicate
b.about = instance
b.position = block.position
b.heading_id = heading_id
b.save
end
def duplicate_heading(instance, heading, parent_id = nil)
h = heading.duplicate
h.about = instance
h.position = heading.position
h.save
heading.blocks.ordered.each do |block|
duplicate_block(instance, block, h.id)
end
heading.children.ordered.each do |child|
duplicate_heading(instance, child, h.id)
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