Merge pull request #9005 from mfo/US/fix-groupe_instructeurs-with-at-least-one-active
correctif(procedure.clone): ET admin, je souhaite pouvoir cloner une procedure ayant deux groupes d'instructeur ayant le dernier fermé
This commit is contained in:
commit
96fbbbbbb9
2 changed files with 15 additions and 1 deletions
|
@ -25,7 +25,15 @@ class GroupeInstructeur < ApplicationRecord
|
||||||
|
|
||||||
validates :label, presence: true, allow_nil: false
|
validates :label, presence: true, allow_nil: false
|
||||||
validates :label, uniqueness: { scope: :procedure }
|
validates :label, uniqueness: { scope: :procedure }
|
||||||
validates :closed, acceptance: { accept: [false] }, if: -> { closed_changed? && self.procedure.groupe_instructeurs.active.one? }
|
validates :closed, acceptance: { accept: [false] }, if: -> do
|
||||||
|
if closed
|
||||||
|
other_groupes = procedure.groupe_instructeurs - [self]
|
||||||
|
|
||||||
|
(other_groupes.map(&:closed) + [closed]).all?
|
||||||
|
else
|
||||||
|
false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
before_validation -> { label&.strip! }
|
before_validation -> { label&.strip! }
|
||||||
after_save :toggle_routing
|
after_save :toggle_routing
|
||||||
|
|
|
@ -523,6 +523,12 @@ describe Procedure do
|
||||||
it "should clone instructeurs in the groupe" do
|
it "should clone instructeurs in the groupe" do
|
||||||
expect(subject.groupe_instructeurs.where(label: "groupe_1").first.instructeurs.map(&:email)).to eq(procedure.groupe_instructeurs.where(label: "groupe_1").first.instructeurs.map(&:email))
|
expect(subject.groupe_instructeurs.where(label: "groupe_1").first.instructeurs.map(&:email)).to eq(procedure.groupe_instructeurs.where(label: "groupe_1").first.instructeurs.map(&:email))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'should clone with success a second group instructeur closed' do
|
||||||
|
procedure.groupe_instructeurs.last.update(closed: true)
|
||||||
|
|
||||||
|
expect { subject }.not_to raise_error
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should reset duree_conservation_etendue_par_ds' do
|
it 'should reset duree_conservation_etendue_par_ds' do
|
||||||
|
|
Loading…
Reference in a new issue