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