From da422b9a378e592deac73e67da3a0e1af4047d85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Gaya?= <sebastien.gaya@gmail.com> Date: Mon, 25 Apr 2022 12:24:22 +0200 Subject: [PATCH] #248 --- app/models/communication/block/template.rb | 5 ----- .../communication/block/template/call_to_action.rb | 2 +- app/models/communication/block/template/gallery.rb | 2 +- app/models/communication/block/template/partner.rb | 5 ++++- app/models/communication/block/template/testimonial.rb | 2 +- app/models/communication/website.rb | 1 + app/models/communication/website/with_dependencies.rb | 8 ++++++++ app/models/university/organization.rb | 9 +++++++++ 8 files changed, 25 insertions(+), 9 deletions(-) diff --git a/app/models/communication/block/template.rb b/app/models/communication/block/template.rb index b759d8326..dc9b01436 100644 --- a/app/models/communication/block/template.rb +++ b/app/models/communication/block/template.rb @@ -7,17 +7,12 @@ class Communication::Block::Template def git_dependencies unless @git_dependencies - @git_dependencies = active_storage_blobs build_git_dependencies @git_dependencies.uniq! end @git_dependencies end - def active_storage_blobs - [] - end - protected def build_git_dependencies diff --git a/app/models/communication/block/template/call_to_action.rb b/app/models/communication/block/template/call_to_action.rb index 8123bb6b9..c2592194b 100644 --- a/app/models/communication/block/template/call_to_action.rb +++ b/app/models/communication/block/template/call_to_action.rb @@ -1,6 +1,6 @@ class Communication::Block::Template::CallToAction < Communication::Block::Template def build_git_dependencies - # image à déclarer + add_dependency image&.blob end def text diff --git a/app/models/communication/block/template/gallery.rb b/app/models/communication/block/template/gallery.rb index da9c83d52..834169a4d 100644 --- a/app/models/communication/block/template/gallery.rb +++ b/app/models/communication/block/template/gallery.rb @@ -1,6 +1,6 @@ class Communication::Block::Template::Gallery < Communication::Block::Template def build_git_dependencies - # Blobs already added in Communication::Block::Template#git_dependencies + add_dependency active_storage_blobs end def images_with_alt diff --git a/app/models/communication/block/template/partner.rb b/app/models/communication/block/template/partner.rb index 2bc364e06..930e858e9 100644 --- a/app/models/communication/block/template/partner.rb +++ b/app/models/communication/block/template/partner.rb @@ -1,7 +1,10 @@ class Communication::Block::Template::Partner < Communication::Block::Template def build_git_dependencies - # Blobs already added in Communication::Block::Template#git_dependencies + add_dependency active_storage_blobs add_dependency organizations + organizations.each do |organization| + add_dependency organization.active_storage_blobs + end end def partners diff --git a/app/models/communication/block/template/testimonial.rb b/app/models/communication/block/template/testimonial.rb index b72a81aa6..85a231cdd 100644 --- a/app/models/communication/block/template/testimonial.rb +++ b/app/models/communication/block/template/testimonial.rb @@ -1,6 +1,6 @@ class Communication::Block::Template::Testimonial < Communication::Block::Template def build_git_dependencies - # Blobs already added in Communication::Block::Template#git_dependencies + add_dependency active_storage_blobs end def testimonials diff --git a/app/models/communication/website.rb b/app/models/communication/website.rb index 266ba4915..339043d19 100644 --- a/app/models/communication/website.rb +++ b/app/models/communication/website.rb @@ -62,6 +62,7 @@ class Communication::Website < ApplicationRecord dependencies += pages + pages.map(&:active_storage_blobs).flatten dependencies += posts + posts.map(&:active_storage_blobs).flatten if has_communication_posts? dependencies += people_with_facets + people.map(&:active_storage_blobs).flatten if has_persons? + dependencies += organizations_in_blocks + organizations_in_blocks.map(&:active_storage_blobs).flatten if has_organizations_in_blocks? dependencies += [categories] if has_communication_categories? dependencies += about.git_dependencies(website) if about.present? dependencies diff --git a/app/models/communication/website/with_dependencies.rb b/app/models/communication/website/with_dependencies.rb index 2ee6c344a..151b447cd 100644 --- a/app/models/communication/website/with_dependencies.rb +++ b/app/models/communication/website/with_dependencies.rb @@ -61,6 +61,10 @@ module Communication::Website::WithDependencies blocks_dependencies.reject { |dependency| !dependency.is_a? University::Person } end + def organizations_in_blocks + blocks_dependencies.reject { |dependency| !dependency.is_a? University::Organization } + end + def people_with_facets_in_blocks blocks_dependencies.reject { |dependency| !dependency.class.to_s.start_with?('University::Person') } end @@ -122,6 +126,10 @@ module Communication::Website::WithDependencies people_in_blocks.compact.any? end + def has_organizations_in_blocks? + organizations_in_blocks.compact.any? + end + def has_persons? has_authors? || has_administrators? || has_researchers? || has_teachers? || has_people_in_blocks? end diff --git a/app/models/university/organization.rb b/app/models/university/organization.rb index 7dd420162..f29dbcb81 100644 --- a/app/models/university/organization.rb +++ b/app/models/university/organization.rb @@ -54,6 +54,15 @@ class University::Organization < ApplicationRecord government: 30 } + def git_dependencies(website) + dependencies = website.menus.to_a + if for_website?(website) + dependencies << self + dependencies.concat active_storage_blobs + end + dependencies + end + def websites university.communication_websites end -- GitLab