From 2132902218e7409eb7c4a02600c864048dd91a98 Mon Sep 17 00:00:00 2001 From: Arnaud Levy <contact@arnaudlevy.com> Date: Thu, 6 Jul 2023 15:48:41 +0200 Subject: [PATCH] Website rebuild MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pierre-André Boissinot <pierreandre.boissinot@noesya.coop> Co-authored-by: Sébastien Gaya <sebastien.gaya@gmail.com> --- app/jobs/migrate_website_connections_job.rb | 16 ---------------- .../website/with_connected_objects.rb | 12 ++++++++++++ lib/tasks/auto.rake | 2 +- 3 files changed, 13 insertions(+), 17 deletions(-) delete mode 100644 app/jobs/migrate_website_connections_job.rb diff --git a/app/jobs/migrate_website_connections_job.rb b/app/jobs/migrate_website_connections_job.rb deleted file mode 100644 index f292284e9..000000000 --- a/app/jobs/migrate_website_connections_job.rb +++ /dev/null @@ -1,16 +0,0 @@ -class MigrateWebsiteConnectionsJob < ApplicationJob - queue_as :default - - def perform(website_id) - website = Communication::Website.find(website_id) - website.pages.find_each(&:connect_dependencies) - website.posts.find_each(&:connect_dependencies) - website.categories.find_each(&:connect_dependencies) - website.menus.find_each(&:connect_dependencies) - website.connect(website.about, website) if website.about.present? - - website.destroy_obsolete_connections - website.sync_with_git - website.destroy_obsolete_git_files - end -end diff --git a/app/models/communication/website/with_connected_objects.rb b/app/models/communication/website/with_connected_objects.rb index 92da5f081..1972448df 100644 --- a/app/models/communication/website/with_connected_objects.rb +++ b/app/models/communication/website/with_connected_objects.rb @@ -7,6 +7,18 @@ module Communication::Website::WithConnectedObjects after_save :connect_about, if: :saved_change_to_about_id? end + def rebuild_connections_and_git_files + pages.find_each(&:connect_dependencies) + posts.find_each(&:connect_dependencies) + categories.find_each(&:connect_dependencies) + menus.find_each(&:connect_dependencies) + connect(about, self) if about.present? + destroy_obsolete_connections + sync_with_git + destroy_obsolete_git_files + end + handle_asynchronously :rebuild_connections_and_git_files, queue: :low_priority + # Appelé # - par un objet avec des connexions lorsqu'il est destroyed # - par le website lui-même au changement du about diff --git a/lib/tasks/auto.rake b/lib/tasks/auto.rake index 4ae4ca6a5..c65badf7e 100644 --- a/lib/tasks/auto.rake +++ b/lib/tasks/auto.rake @@ -8,7 +8,7 @@ namespace :auto do desc 'Resave every website to enable publications in the future' task save_and_sync_websites: :environment do Communication::Website.find_each do |website| - website.save_and_sync + website.rebuild_connections_and_git_files end end -- GitLab