Compare commits
5 commits
main
...
gh-readonl
Author | SHA1 | Date | |
---|---|---|---|
|
9a22c25c1c | ||
|
0e03ab653a | ||
|
0934a672fe | ||
|
dce2bf3209 | ||
|
c2461f230c |
6 changed files with 58 additions and 4 deletions
|
@ -21,4 +21,11 @@
|
||||||
# type_de_champ_id :integer
|
# type_de_champ_id :integer
|
||||||
#
|
#
|
||||||
class Champs::EmailChamp < Champs::TextChamp
|
class Champs::EmailChamp < Champs::TextChamp
|
||||||
|
validates :value,
|
||||||
|
format: {
|
||||||
|
with: Devise.email_regexp,
|
||||||
|
message: I18n.t('invalid', scope: 'activerecord.errors.models.email_champ.attributes.value')
|
||||||
|
},
|
||||||
|
allow_nil: true,
|
||||||
|
if: -> { validation_context != :brouillon }
|
||||||
end
|
end
|
||||||
|
|
|
@ -580,7 +580,8 @@ class Procedure < ApplicationRecord
|
||||||
procedure.draft_revision.types_de_champ_public.each { |tdc| tdc.options&.delete(:old_pj) }
|
procedure.draft_revision.types_de_champ_public.each { |tdc| tdc.options&.delete(:old_pj) }
|
||||||
end
|
end
|
||||||
|
|
||||||
new_defaut_groupe = procedure.groupe_instructeurs.find_by(label: defaut_groupe_instructeur.label)
|
new_defaut_groupe = procedure.groupe_instructeurs
|
||||||
|
.find_by(label: defaut_groupe_instructeur.label) || procedure.groupe_instructeurs.first
|
||||||
procedure.update!(defaut_groupe_instructeur: new_defaut_groupe)
|
procedure.update!(defaut_groupe_instructeur: new_defaut_groupe)
|
||||||
|
|
||||||
procedure
|
procedure
|
||||||
|
|
|
@ -561,6 +561,10 @@ en:
|
||||||
attributes:
|
attributes:
|
||||||
email:
|
email:
|
||||||
taken: ': Invitation already sent'
|
taken: ': Invitation already sent'
|
||||||
|
email_champ:
|
||||||
|
attributes:
|
||||||
|
value:
|
||||||
|
invalid: "is invalid. Fill in a valid email address, example: john.doe@example.fr"
|
||||||
|
|
||||||
user:
|
user:
|
||||||
attributes: &error_attributes
|
attributes: &error_attributes
|
||||||
|
|
|
@ -562,6 +562,10 @@ fr:
|
||||||
attributes:
|
attributes:
|
||||||
email:
|
email:
|
||||||
taken: ': Invitation déjà envoyée'
|
taken: ': Invitation déjà envoyée'
|
||||||
|
email_champ:
|
||||||
|
attributes:
|
||||||
|
value:
|
||||||
|
invalid: "est invalide. Saisir une adresse éléctronique valide, exemple : john.doe@exemple.fr"
|
||||||
user:
|
user:
|
||||||
attributes: &error_attributes
|
attributes: &error_attributes
|
||||||
reset_password_token:
|
reset_password_token:
|
||||||
|
|
29
spec/models/champs/email_champ_spec.rb
Normal file
29
spec/models/champs/email_champ_spec.rb
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
describe Champs::EmailChamp do
|
||||||
|
subject { build(:champ_email, value: value).tap(&:valid?) }
|
||||||
|
|
||||||
|
describe '#valid?' do
|
||||||
|
context 'when the value is an email' do
|
||||||
|
let(:value) { 'jean@dupont.fr' }
|
||||||
|
|
||||||
|
it { is_expected.to be_valid }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when the value is not an email' do
|
||||||
|
let(:value) { 'jean@' }
|
||||||
|
|
||||||
|
it { is_expected.to_not be_valid }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when the value is blank' do
|
||||||
|
let(:value) { '' }
|
||||||
|
|
||||||
|
it { is_expected.to_not be_valid }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when the value is nil' do
|
||||||
|
let(:value) { nil }
|
||||||
|
|
||||||
|
it { is_expected.to be_valid }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -504,13 +504,12 @@ describe Procedure do
|
||||||
let!(:assign_to_1) { create(:assign_to, procedure: procedure, groupe_instructeur: groupe_instructeur_1, instructeur: instructeur_1) }
|
let!(:assign_to_1) { create(:assign_to, procedure: procedure, groupe_instructeur: groupe_instructeur_1, instructeur: instructeur_1) }
|
||||||
let!(:assign_to_2) { create(:assign_to, procedure: procedure, groupe_instructeur: groupe_instructeur_1, instructeur: instructeur_2) }
|
let!(:assign_to_2) { create(:assign_to, procedure: procedure, groupe_instructeur: groupe_instructeur_1, instructeur: instructeur_2) }
|
||||||
|
|
||||||
before do
|
subject do
|
||||||
@procedure = procedure.clone(administrateur, from_library)
|
@procedure = procedure.clone(administrateur, from_library)
|
||||||
@procedure.save
|
@procedure.save
|
||||||
|
@procedure
|
||||||
end
|
end
|
||||||
|
|
||||||
subject { @procedure }
|
|
||||||
|
|
||||||
it { expect(subject.parent_procedure).to eq(procedure) }
|
it { expect(subject.parent_procedure).to eq(procedure) }
|
||||||
|
|
||||||
describe "should keep groupe instructeurs " do
|
describe "should keep groupe instructeurs " do
|
||||||
|
@ -623,6 +622,16 @@ describe Procedure do
|
||||||
let(:administrateur) { create(:administrateur) }
|
let(:administrateur) { create(:administrateur) }
|
||||||
let(:opendata) { false }
|
let(:opendata) { false }
|
||||||
|
|
||||||
|
context 'and the procedure does not have a groupe with the defaut label' do
|
||||||
|
before do
|
||||||
|
procedure.defaut_groupe_instructeur.update!(label: 'another label')
|
||||||
|
end
|
||||||
|
|
||||||
|
it "affects the first groupe as the defaut groupe" do
|
||||||
|
expect(subject.defaut_groupe_instructeur).to eq(subject.groupe_instructeurs.first)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
it 'should not clone service' do
|
it 'should not clone service' do
|
||||||
expect(subject.service).to eq(nil)
|
expect(subject.service).to eq(nil)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue