Merge pull request #4521 from betagouv/4433-joindre-administration
explique en détail l'importance de renseigner des infos de contact valides
This commit is contained in:
commit
f2d0bb1fc4
7 changed files with 50 additions and 10 deletions
1
Gemfile
1
Gemfile
|
@ -47,6 +47,7 @@ gem 'omniauth-rails_csrf_protection', '~> 0.1'
|
|||
gem 'openid_connect'
|
||||
gem 'openstack'
|
||||
gem 'pg'
|
||||
gem 'phonelib'
|
||||
gem 'prawn' # PDF Generation
|
||||
gem 'prawn_rails'
|
||||
gem 'premailer-rails'
|
||||
|
|
|
@ -420,6 +420,7 @@ GEM
|
|||
ast (~> 2.4.0)
|
||||
pdf-core (0.7.0)
|
||||
pg (1.1.3)
|
||||
phonelib (0.6.39)
|
||||
powerpack (0.1.2)
|
||||
prawn (2.2.2)
|
||||
pdf-core (~> 0.7.0)
|
||||
|
@ -767,6 +768,7 @@ DEPENDENCIES
|
|||
openid_connect
|
||||
openstack
|
||||
pg
|
||||
phonelib
|
||||
prawn
|
||||
prawn_rails
|
||||
premailer-rails
|
||||
|
|
|
@ -20,7 +20,7 @@ class Service < ApplicationRecord
|
|||
validates :organisme, presence: { message: 'doit être renseigné' }, allow_nil: false
|
||||
validates :type_organisme, presence: { message: 'doit être renseigné' }, allow_nil: false
|
||||
validates :email, presence: { message: 'doit être renseigné' }, allow_nil: false
|
||||
validates :telephone, presence: { message: 'doit être renseigné' }, allow_nil: false
|
||||
validates :telephone, phone: { possible: true, allow_blank: true }
|
||||
validates :horaires, presence: { message: 'doivent être renseignés' }, allow_nil: false
|
||||
validates :adresse, presence: { message: 'doit être renseignée' }, allow_nil: false
|
||||
validates :administrateur, presence: { message: 'doit être renseigné' }, allow_nil: false
|
||||
|
|
|
@ -18,16 +18,23 @@
|
|||
|
||||
%h2.header-section Informations de contact
|
||||
|
||||
%p.explication Ces informations seront visibles par les utilisateurs du formulaire.
|
||||
%p.explication
|
||||
Votre démarche sera hébergée par demarche-simplifiees.fr – mais nous ne pouvons pas assurer le support des démarches. Et malgré la dématérialisation, les usagers se poseront parfois des questions légitimes sur le processus administratif.
|
||||
%br
|
||||
Il est donc important que les usagers puissent vous contacter s'ils ont des questions sur votre démarche.
|
||||
%br
|
||||
Ces informations seront visibles par les utilisateurs de la démarche, affichées dans le menu "Aide".
|
||||
|
||||
%p.explication Indiquez une adresse mail en capacité de répondre à l'usager.
|
||||
= f.label :email do
|
||||
Adresse email
|
||||
%span.mandatory *
|
||||
= f.email_field :email, placeholder: 'contact@mon-service.fr', required: true
|
||||
|
||||
%p.explication Indiquez le numéro de téléphone du service le plus à même de fournir des réponses pertinentes à vos usagers.
|
||||
= f.label :telephone do
|
||||
Numéro de téléphone
|
||||
%span.mandatory *
|
||||
Numéro de téléphone
|
||||
= f.telephone_field :telephone, placeholder: '04 12 24 42 37', required: true
|
||||
|
||||
= f.label :horaires do
|
||||
|
|
|
@ -24,13 +24,14 @@
|
|||
Par email :
|
||||
= link_to service.email, "mailto:#{service.email}"
|
||||
|
||||
%li
|
||||
Par téléphone :
|
||||
= link_to service.telephone, service.telephone_url
|
||||
- if service.telephone.present?
|
||||
%li
|
||||
Par téléphone :
|
||||
= link_to service.telephone, service.telephone_url
|
||||
|
||||
%li
|
||||
- horaires = "Horaires : #{formatted_horaires(service.horaires)}"
|
||||
= simple_format(horaires, {}, wrapper_tag: 'span')
|
||||
%li
|
||||
- horaires = "Horaires : #{formatted_horaires(service.horaires)}"
|
||||
= simple_format(horaires, {}, wrapper_tag: 'span')
|
||||
|
||||
|
||||
- politiques = politiques_conservation_de_donnees(procedure)
|
||||
|
|
2
config/initializers/phonelib.rb
Normal file
2
config/initializers/phonelib.rb
Normal file
|
@ -0,0 +1,2 @@
|
|||
Phonelib.default_country = "FR"
|
||||
Phonelib.parse_special = true
|
|
@ -7,7 +7,7 @@ describe Service, type: :model do
|
|||
organisme: 'mairie des iles',
|
||||
type_organisme: Service.type_organismes.fetch(:association),
|
||||
email: 'super@email.com',
|
||||
telephone: '1212202',
|
||||
telephone: '012345678',
|
||||
horaires: 'du lundi au vendredi',
|
||||
adresse: '12 rue des schtroumpfs',
|
||||
administrateur_id: administrateur.id
|
||||
|
@ -16,6 +16,33 @@ describe Service, type: :model do
|
|||
|
||||
it { expect(Service.new(params).valid?).to be_truthy }
|
||||
|
||||
it 'should forbid invalid phone numbers' do
|
||||
service = Service.create(params)
|
||||
invalid_phone_numbers = ["1", "Néant", "01 60 50 40 30 20"]
|
||||
|
||||
invalid_phone_numbers.each do |tel|
|
||||
service.telephone = tel
|
||||
expect(service.valid?).to be_falsey
|
||||
end
|
||||
end
|
||||
|
||||
it 'should accept no phone numbers' do
|
||||
service = Service.create(params)
|
||||
service.telephone = nil
|
||||
|
||||
expect(service.valid?).to be_truthy
|
||||
end
|
||||
|
||||
it 'should accept valid phone numbers' do
|
||||
service = Service.create(params)
|
||||
valid_phone_numbers = ["3646", "273115", "0160376983", "01 60 50 40 30 ", "+33160504030"]
|
||||
|
||||
valid_phone_numbers.each do |tel|
|
||||
service.telephone = tel
|
||||
expect(service.valid?).to be_truthy
|
||||
end
|
||||
end
|
||||
|
||||
context 'when a first service exists' do
|
||||
before { Service.create(params) }
|
||||
|
||||
|
|
Loading…
Reference in a new issue