diff --git a/app/models/communication/website/page.rb b/app/models/communication/website/page.rb index 38871ba4d32397f6dd5c3aebab14ac8acde1341c..f72e9eebaf99fa4c11d186e60c7d9339fcb493a9 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 4e5d067bbeb5084547db5dde35fac515d00183d6..c5f491dc759e87b87295d62678aeb04d1d1c6b69 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