From 91c735a219448b8674929f42b26d0f2f835462e8 Mon Sep 17 00:00:00 2001 From: Colin Darie Date: Mon, 25 Jul 2022 18:17:30 +0200 Subject: [PATCH] chore(service): SIRET is required --- app/models/service.rb | 2 +- app/validators/siret_format_validator.rb | 2 +- app/views/administrateurs/services/_form.html.haml | 8 +++++++- spec/models/service_spec.rb | 4 ++-- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/models/service.rb b/app/models/service.rb index 8ec49544f..bac400e41 100644 --- a/app/models/service.rb +++ b/app/models/service.rb @@ -37,7 +37,7 @@ class Service < ApplicationRecord validates :nom, presence: { message: 'doit être renseigné' }, allow_nil: false validates :nom, uniqueness: { scope: :administrateur, message: 'existe déjà' } validates :organisme, presence: { message: 'doit être renseigné' }, allow_nil: false - validates :siret, siret_format: true, allow_nil: true + validates :siret, siret_format: true validates :type_organisme, presence: { message: 'doit être renseigné' }, allow_nil: false validates :email, presence: { message: 'doit être renseigné' }, allow_nil: false validates :telephone, phone: { possible: true, allow_blank: true } diff --git a/app/validators/siret_format_validator.rb b/app/validators/siret_format_validator.rb index 612cae387..964dd9e4a 100644 --- a/app/validators/siret_format_validator.rb +++ b/app/validators/siret_format_validator.rb @@ -12,7 +12,7 @@ class SiretFormatValidator < ActiveModel::EachValidator LA_POSTE_SIREN = '356000000' def format_is_valid(value) - value.match?(/^\d{14}$/) + value&.match?(/^\d{14}$/) end def luhn_passed(value) diff --git a/app/views/administrateurs/services/_form.html.haml b/app/views/administrateurs/services/_form.html.haml index ef6cb57e9..c11e2a2ce 100644 --- a/app/views/administrateurs/services/_form.html.haml +++ b/app/views/administrateurs/services/_form.html.haml @@ -23,7 +23,13 @@ = f.label :siret do Numéro SIRET %span.mandatory * - = f.text_field :siret, placeholder: "14 chiffres" + + %p.notice + Veuillez saisir le numéro de SIRET de l'organisme dont ce service dépend. + %br + = link_to "➡ Rechercher le numéro SIRET sur « annuaire-entreprises.data.gouv.fr »", annuaire_link, target: "_blank" + + = f.text_field :siret, placeholder: "14 chiffres", required: true = render Dsfr::CalloutComponent.new(title: "Informations de contact") do |c| - c.body do diff --git a/spec/models/service_spec.rb b/spec/models/service_spec.rb index 2aa403bdc..95abc24a6 100644 --- a/spec/models/service_spec.rb +++ b/spec/models/service_spec.rb @@ -48,9 +48,9 @@ describe Service, type: :model do expect(subject).not_to be_valid end - it 'should be optional' do + it 'should be required' do subject.siret = nil - expect(subject).to be_valid + expect(subject).not_to be_valid end end