refactor(routing): move toggle_routing to procedure model

This commit is contained in:
Eric Leroy-Terquem 2023-06-28 11:00:25 +02:00
parent 2eb3685d38
commit b94e8edb67
6 changed files with 14 additions and 12 deletions

View file

@ -48,7 +48,8 @@ module Administrateurs
gi.update(routing_rule: ds_eq(champ_value(stable_id), constant(gi.label)))
end
defaut = @procedure.defaut_groupe_instructeur.tap(&:toggle_routing)
@procedure.toggle_routing
defaut = @procedure.defaut_groupe_instructeur
if !tdc_options.include?(defaut.label)
new_defaut = @procedure.reload.groupe_instructeurs_but_defaut.first
@ -67,7 +68,8 @@ module Administrateurs
new_label = procedure.defaut_groupe_instructeur.label + ' bis'
procedure.groupe_instructeurs
.create({ label: new_label, instructeurs: [current_administrateur.instructeur] })
.tap(&:toggle_routing)
procedure.toggle_routing
redirect_to admin_procedure_groupe_instructeurs_path(procedure)
elsif params[:choice][:state] == 'routage_simple'
@ -101,7 +103,7 @@ module Administrateurs
.new({ instructeurs: [current_administrateur.instructeur] }.merge(groupe_instructeur_params))
if @groupe_instructeur.save
@groupe_instructeur.toggle_routing
procedure.toggle_routing
routing_notice = " et le routage a été activé" if procedure.groupe_instructeurs.active.size == 2
redirect_to admin_procedure_groupe_instructeur_path(procedure, @groupe_instructeur),
notice: "Le groupe dinstructeurs « #{@groupe_instructeur.label} » a été créé#{routing_notice}."
@ -119,7 +121,7 @@ module Administrateurs
@groupe_instructeur = groupe_instructeur
if @groupe_instructeur.update(groupe_instructeur_params)
@groupe_instructeur.toggle_routing
procedure.toggle_routing
redirect_to admin_procedure_groupe_instructeur_path(procedure, groupe_instructeur),
notice: "Le nom est à présent « #{@groupe_instructeur.label} »."
else
@ -164,7 +166,7 @@ module Administrateurs
else
@groupe_instructeur.destroy!
if procedure.groupe_instructeurs.active.one?
procedure.defaut_groupe_instructeur.toggle_routing
procedure.toggle_routing
procedure.defaut_groupe_instructeur.update!(
routing_rule: nil,
label: GroupeInstructeur::DEFAUT_LABEL,

View file

@ -26,7 +26,7 @@ module Mutations
.build(label: groupe_instructeur.label, closed: groupe_instructeur.closed, instructeurs: [current_administrateur.instructeur].compact)
if groupe_instructeur.save
groupe_instructeur.toggle_routing
groupe_instructeur.procedure.toggle_routing
# ugly hack to keep retro compatibility
# do not judge

View file

@ -11,7 +11,7 @@ module Mutations
def resolve(groupe_instructeur:, label: nil, closed: nil)
if groupe_instructeur.update({ label:, closed: }.compact)
groupe_instructeur.toggle_routing
groupe_instructeur.procedure.toggle_routing
# ugly hack to keep retro compatibility
# do not judge

View file

@ -93,10 +93,6 @@ class GroupeInstructeur < ApplicationRecord
procedure.groupe_instructeurs - [self]
end
def toggle_routing
procedure.update!(routing_enabled: procedure.groupe_instructeurs.active.many?)
end
private
def routing_rule_matches_tdc?

View file

@ -966,6 +966,10 @@ class Procedure < ApplicationRecord
active_revision.types_de_champ_public.where.not(condition: nil).filter(&:piece_justificative?)
end
def toggle_routing
update!(routing_enabled: self.groupe_instructeurs.active.many?)
end
private
def validate_auto_archive_on_in_the_future

View file

@ -16,7 +16,7 @@ class InstructeursImportService
if missing_labels.present?
created_at = Time.zone.now
GroupeInstructeur.create!(missing_labels.map { |label| { procedure_id: procedure.id, label:, created_at:, updated_at: created_at } })
procedure.defaut_groupe_instructeur.toggle_routing
procedure.toggle_routing
end
emails_in_groupe = groupes_emails