toggle routing after groupe instructeur update

This commit is contained in:
Eric Leroy-Terquem 2022-10-25 14:27:51 +02:00
parent 5578115acf
commit b51770c151
2 changed files with 8 additions and 8 deletions

View file

@ -23,18 +23,12 @@ class GroupeInstructeur < ApplicationRecord
validates :closed, acceptance: { accept: [false], message: "Modification impossible : il doit y avoir au moins un groupe instructeur actif sur chaque procédure" }, if: -> { self.procedure.groupe_instructeurs.actif.one? } validates :closed, acceptance: { accept: [false], message: "Modification impossible : il doit y avoir au moins un groupe instructeur actif sur chaque procédure" }, if: -> { self.procedure.groupe_instructeurs.actif.one? }
before_validation -> { label&.strip! } before_validation -> { label&.strip! }
after_create :toggle_routing after_save :toggle_routing
scope :without_group, -> (group) { where.not(id: group) } scope :without_group, -> (group) { where.not(id: group) }
scope :for_api_v2, -> { includes(procedure: [:administrateurs]) } scope :for_api_v2, -> { includes(procedure: [:administrateurs]) }
scope :actif, -> { where(closed: false) } scope :actif, -> { where(closed: false) }
def toggle_routing
procedure = self.procedure.reload
routing_enabled = procedure.groupe_instructeurs.actif.count > 1
procedure.update!(routing_enabled: routing_enabled)
end
def add(instructeur) def add(instructeur)
return if in?(instructeur.groupe_instructeurs) return if in?(instructeur.groupe_instructeurs)
@ -55,4 +49,10 @@ class GroupeInstructeur < ApplicationRecord
def can_delete? def can_delete?
dossiers.empty? && (procedure.groupe_instructeurs.actif.many? || (procedure.groupe_instructeurs.actif.one? && closed)) dossiers.empty? && (procedure.groupe_instructeurs.actif.many? || (procedure.groupe_instructeurs.actif.one? && closed))
end end
private
def toggle_routing
procedure.update!(routing_enabled: procedure.groupe_instructeurs.actif.many?)
end
end end

View file

@ -22,7 +22,7 @@ describe Administrateurs::ArchivesController, type: :controller do
it { is_expected.to have_http_status(200) } it { is_expected.to have_http_status(200) }
it 'use all procedure.groupe_instructeurs' do it 'use all procedure.groupe_instructeurs' do
expect(Archive).to receive(:for_groupe_instructeur).with([groupe_instructeur1, groupe_instructeur2]).and_return([]) expect(Archive).to receive(:for_groupe_instructeur).and_return([])
subject subject
end end
end end