diff --git a/app/models/concerns/with_dependencies.rb b/app/models/concerns/with_dependencies.rb index 5b8526ead1a1afcb9c2920b6bb7add7cdce2320d..03129bd162638dea6b7fab1ab4b51e19d1498d0c 100644 --- a/app/models/concerns/with_dependencies.rb +++ b/app/models/concerns/with_dependencies.rb @@ -56,13 +56,13 @@ module WithDependencies end protected - + # Si l'objet est déjà là , on ne doit pas l'ajouter # Si l'objet n'est pas syncable, on ne doit pas l'ajouter non plus def dependency_should_be_added?(array, dependency, syncable_only) !dependency.in?(array) && dependency_should_be_synced?(dependency, syncable_only) end - + # Si on n'est pas en syncable only on liste tout, sinon, il faut analyser def dependency_should_be_synced?(dependency, syncable_only) !syncable_only || (dependency.respond_to?(:syncable?) && dependency.syncable?) @@ -84,15 +84,18 @@ module WithDependencies end def clean_websites + # Les objets directs et les objets indirects (et les websites) répondent ! return unless respond_to?(:is_direct_object?) - - if is_direct_object? + websites_to_clean.each do |website| + website.destroy_obsolete_connections website.destroy_obsolete_git_files - elsif is_indirect_object? - websites.each(&:destroy_obsolete_git_files) end end + def websites_to_clean + is_direct_object? ? [website] : websites + end + def missing_dependencies_after_save @previous_dependencies - reloaded_recursive_dependencies_syncable_filtered end