From b8752167d382e1844a1e667dd9fa5267a744b22d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Gaya?= <sebastien.gaya@gmail.com> Date: Mon, 5 Dec 2022 16:50:26 +0100 Subject: [PATCH] cc --- app/models/communication/website/page.rb | 14 +------------- .../communication/website/page/with_kind.rb | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/app/models/communication/website/page.rb b/app/models/communication/website/page.rb index 38871ba4d..f72e9eeba 100644 --- a/app/models/communication/website/page.rb +++ b/app/models/communication/website/page.rb @@ -88,19 +88,7 @@ class Communication::Website::Page < ApplicationRecord siblings + git_block_dependencies dependencies += [parent] if has_parent? - dependencies += [website.config_permalinks] if is_special_page? - dependencies += [ - website.categories, - website.authors.map(&:author), - website.posts - ].flatten if kind_communication_posts? - ['education_programs', 'education_diplomas', 'research_papers', 'organizations'].each do |kind| - dependencies += website.public_send(kind) if public_send("kind_#{kind}?") - end - dependencies += website.people_with_facets if kind_persons? - [:administrator, :author, :researcher, :teacher].each do |kind| - dependencies += website.public_send(kind.to_s.pluralize).map(&kind) if public_send("kind_#{kind.to_s.pluralize}?") - end + dependencies += special_page_git_dependencies(website) if is_special_page? dependencies.flatten end diff --git a/app/models/communication/website/page/with_kind.rb b/app/models/communication/website/page/with_kind.rb index 4e5d067bb..c5f491dc7 100644 --- a/app/models/communication/website/page/with_kind.rb +++ b/app/models/communication/website/page/with_kind.rb @@ -50,6 +50,23 @@ module Communication::Website::Page::WithKind is_special_page? && SPECIAL_PAGES_WITH_GIT_SPECIAL_PATH.include?(kind) end + def special_page_git_dependencies(website) + dependencies = [website.config_permalinks] + dependencies += [ + website.categories, + website.authors.map(&:author), + website.posts + ].flatten if kind_communication_posts? + ['education_programs', 'education_diplomas', 'research_papers', 'organizations'].each do |kind| + dependencies += website.public_send(kind) if public_send("kind_#{kind}?") + end + dependencies += website.people_with_facets if kind_persons? + [:administrator, :author, :researcher, :teacher].each do |kind| + dependencies += website.public_send(kind.to_s.pluralize).map(&kind) if public_send("kind_#{kind.to_s.pluralize}?") + end + dependencies + end + end private -- GitLab