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

wip deps

parent 15e5789a
No related branches found
No related tags found
No related merge requests found
......@@ -6,23 +6,29 @@ module WithDependenciesSynchronization
attr_accessor :dependencies_before_save
before_save :compute_dependencies_before_save
after_save :cleanup_websites, if: :dependencies_missing_after_save?
# TODO
# before_save :compute_dependencies_before_save
# after_save :cleanup_websites, if: :lost_dependencies_after_save?
after_destroy :cleanup_websites
end
protected
def compute_dependencies_before_save
@dependencies_before_save = recursive_dependencies_syncable
@dependencies_before_save = begin
array = []
array = self.class.find(id).recursive_dependencies_syncable if persisted?
array.select { |dependency| dependency.respond_to?(:git_files) }
end
end
def dependencies_missing_after_save?
# byebug
(@dependencies_before_save - recursive_dependencies_syncable).any?
def lost_dependencies_after_save?
lost_dependencies_after_save = @dependencies_before_save - recursive_dependencies_syncable
lost_dependencies_after_save.any?
end
def cleanup_websites
# byebug unless is_a?(Communication::Block)
if is_direct_object?
website.destroy_obsolete_git_files
else
......
......@@ -15,7 +15,11 @@ class Communication::Website::DependencyTest < ActiveSupport::TestCase
def test_change_block_dependencies
page = communication_website_pages(:page_with_no_dependency)
# On ajoute un block "OrganizationChart" lié à Arnaud : 9 dépendances (4 composants du organization_chart + 1 élément du organization_chart (arnaud) + 3 éléments liés à arnaud + le block lui-même)
# On ajoute un block Personnes lié à Arnaud : 9 dépendances
# - le block Personnes (1)
# - 4 composants du template du block + 1 élément (5)
# - 2 composants de l'élément du template (2)
# - La personne en dépendance du composant Person (1)
block = page.blocks.create(position: 1, published: true, template_kind: :organization_chart)
block.data = "{ \"elements\": [ { \"id\": \"#{arnaud.id}\" } ] }"
block.save
......
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