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:
krichtof 2019-12-04 06:15:42 +01:00 committed by GitHub
commit f2d0bb1fc4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 50 additions and 10 deletions

View file

@ -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'

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -0,0 +1,2 @@
Phonelib.default_country = "FR"
Phonelib.parse_special = true

View file

@ -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) }