fix(dossier): sync search_terms after merge

Use a job instead of a lot of reloads
This commit is contained in:
Colin Darie 2023-04-22 19:54:41 +02:00
parent 11dd1b7d76
commit f6ebfe0e47
No known key found for this signature in database
GPG key ID: 4FB865FDBCA4BCC4
8 changed files with 93 additions and 44 deletions

View file

@ -50,6 +50,7 @@ class Dossier < ApplicationRecord
include DossierFilteringConcern
include DossierPrefillableConcern
include DossierRebaseConcern
include DossierSearchableConcern
include DossierSectionsConcern
include DossierCloneConcern
@ -455,7 +456,6 @@ class Dossier < ApplicationRecord
delegate :france_connect_information, to: :user, allow_nil: true
before_save :build_default_champs_for_new_dossier, if: Proc.new { revision_id_was.nil? && parent_dossier_id.nil? && editing_fork_origin_id.nil? }
before_save :update_search_terms
after_save :send_web_hook
@ -504,17 +504,6 @@ class Dossier < ApplicationRecord
end
end
def update_search_terms
self.search_terms = [
user&.email,
*champs_public.flat_map(&:search_terms),
*etablissement&.search_terms,
individual&.nom,
individual&.prenom
].compact.join(' ')
self.private_search_terms = champs_private.flat_map(&:search_terms).compact.join(' ')
end
def build_default_champs_for_new_dossier
revision.build_champs_public.each do |champ|
champs_public << champ