show api particulier sources
This commit is contained in:
parent
8327c6fd0c
commit
5dbd81ebeb
7 changed files with 129 additions and 0 deletions
26
app/assets/stylesheets/sources_particulier_form.scss
Normal file
26
app/assets/stylesheets/sources_particulier_form.scss
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
@import "constants";
|
||||||
|
|
||||||
|
#sources-particulier-form {
|
||||||
|
h2 {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
margin-top: 2 * $default-padding;
|
||||||
|
}
|
||||||
|
|
||||||
|
.explication {
|
||||||
|
padding: $default-padding;
|
||||||
|
|
||||||
|
ul {
|
||||||
|
list-style-type: circle;
|
||||||
|
list-style-position: inside;
|
||||||
|
padding-left: $default-padding;
|
||||||
|
margin-bottom: $default-padding;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.form input[type="checkbox"] {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
module NewAdministrateur
|
||||||
|
class SourcesParticulierController < AdministrateurController
|
||||||
|
before_action :retrieve_procedure
|
||||||
|
|
||||||
|
def show
|
||||||
|
sources_service = APIParticulier::Services::SourcesService.new(@procedure)
|
||||||
|
@available_sources = sources_service.available_sources
|
||||||
|
end
|
||||||
|
|
||||||
|
def update
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,28 @@
|
||||||
|
= render partial: 'new_administrateur/breadcrumbs',
|
||||||
|
locals: { steps: [link_to('Démarches', admin_procedures_path),
|
||||||
|
link_to(@procedure.libelle, admin_procedure_path(@procedure)),
|
||||||
|
link_to(Procedure.human_attribute_name(:jeton_api_particulier), admin_procedure_api_particulier_path(@procedure)),
|
||||||
|
t('.data_sources')] }
|
||||||
|
|
||||||
|
.container
|
||||||
|
%h1.page-title= t('.title')
|
||||||
|
|
||||||
|
.container#sources-particulier-form.mb-2
|
||||||
|
= form_with model: @procedure, url: admin_procedure_api_particulier_sources_path, local: true, html: { class: 'form' } do |f|
|
||||||
|
.explication= t('.explication_html')
|
||||||
|
|
||||||
|
- @available_sources.each do |provider_key, scopes|
|
||||||
|
%h2.header-section= t("api_particulier.providers.#{provider_key}.libelle")
|
||||||
|
|
||||||
|
- scopes.each do |scope_key, sources|
|
||||||
|
%h3.explication-libelle= t("api_particulier.providers.#{provider_key}.scopes.#{scope_key}.libelle")
|
||||||
|
%ul.procedure-admin-api-particulier-sources
|
||||||
|
- sources.each do |source_key, enabled_hash|
|
||||||
|
- enabled = (@procedure.api_particulier_sources.dig(provider_key, scope_key)&.include?(source_key)).present?
|
||||||
|
%li
|
||||||
|
%label
|
||||||
|
= check_box_tag "api_particulier_sources[#{provider_key}][#{scope_key}][]", "#{source_key}", enabled
|
||||||
|
#{t("api_particulier.providers.#{provider_key}.scopes.#{scope_key}.#{source_key}")}
|
||||||
|
|
||||||
|
.text-right
|
||||||
|
= f.button t('views.shared.actions.save'), class: 'button primary send'
|
30
config/locales/api_particulier.fr.yml
Normal file
30
config/locales/api_particulier.fr.yml
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
fr:
|
||||||
|
api_particulier:
|
||||||
|
providers:
|
||||||
|
cnaf:
|
||||||
|
libelle: Caisse d’allocations familiales (CAF)
|
||||||
|
scopes:
|
||||||
|
personne: &personne
|
||||||
|
noms_prenoms: noms et prénoms
|
||||||
|
date_de_naissance: date de naissance
|
||||||
|
sexe: genre
|
||||||
|
allocataires:
|
||||||
|
libelle: allocataires
|
||||||
|
<<: *personne
|
||||||
|
enfants:
|
||||||
|
libelle: enfants
|
||||||
|
<<: *personne
|
||||||
|
adresse:
|
||||||
|
libelle: adresse
|
||||||
|
identite: identité
|
||||||
|
complement_d_identite: complément d’identité
|
||||||
|
complement_d_identite_geo: complément d’identité géographique
|
||||||
|
numero_et_rue: numéro et rue
|
||||||
|
lieu_dit: lieu-dit
|
||||||
|
code_postal_et_ville: code postal et ville
|
||||||
|
pays: pays
|
||||||
|
quotient_familial:
|
||||||
|
libelle: quotient familial
|
||||||
|
quotient_familial: quotient familial
|
||||||
|
mois: mois
|
||||||
|
annee: année
|
|
@ -395,3 +395,13 @@ fr:
|
||||||
api_particulier:
|
api_particulier:
|
||||||
already_configured: "Déjà rempli"
|
already_configured: "Déjà rempli"
|
||||||
needs_configuration: "À remplir"
|
needs_configuration: "À remplir"
|
||||||
|
sources_particulier:
|
||||||
|
show:
|
||||||
|
title: "Définir les sources de données"
|
||||||
|
data_sources: "Sources de données"
|
||||||
|
explication_html: "<p>API Particulier facilite l’accès des administrations aux données familiales (CAF) pour simplifier les démarches administratives mises en œuvre par les collectivités et les administrations.<br> Cela permet aux administrations d’accéder à des informations certifiées à la source et ainsi : </p> <ul> <li>de s’affranchir des pièces justificatives lors des démarches en ligne,</li> <li>de réduire le nombre d’erreurs de saisie,</li> <li>d’écarter le risque de fraude documentaire.</li> </ul> <p> <strong>Important :</strong> les disposition de l'article <a href='https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000031366350&idArticle=LEGIARTI000031367412&dateTexte=&categorieLien=cid'>L144-8</a> n’autorisent que l’échange des informations strictement nécessaires pour traiter une démarche.<br /><br />En conséquence, ne sélectionnez ici que les données auxquelles vous aurez accès d’un point de vue légal.</p>"
|
||||||
|
procedures:
|
||||||
|
show:
|
||||||
|
ready: "Validé"
|
||||||
|
needs_configuration: "À configurer"
|
||||||
|
configure_api_particulier_token: "Configurer le jeton API particulier"
|
||||||
|
|
|
@ -401,6 +401,7 @@ Rails.application.routes.draw do
|
||||||
|
|
||||||
resource 'api_particulier', only: [] do
|
resource 'api_particulier', only: [] do
|
||||||
resource 'jeton', only: [:show, :update], controller: 'jeton_particulier'
|
resource 'jeton', only: [:show, :update], controller: 'jeton_particulier'
|
||||||
|
resource 'sources', only: [:show, :update], controller: 'sources_particulier'
|
||||||
end
|
end
|
||||||
|
|
||||||
put 'clone'
|
put 'clone'
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
describe NewAdministrateur::SourcesParticulierController, type: :controller do
|
||||||
|
let(:admin) { create(:administrateur) }
|
||||||
|
|
||||||
|
before { sign_in(admin.user) }
|
||||||
|
|
||||||
|
describe "#show" do
|
||||||
|
let(:procedure) { create(:procedure, administrateur: admin, api_particulier_scopes: ['cnaf_enfants'], api_particulier_sources: { cnaf: { enfants: ['noms_prenoms'] } }) }
|
||||||
|
|
||||||
|
render_views
|
||||||
|
|
||||||
|
subject { get :show, params: { procedure_id: procedure.id } }
|
||||||
|
|
||||||
|
it 'renders the sources form' do
|
||||||
|
expect(subject.body).to include(I18n.t('api_particulier.providers.cnaf.scopes.enfants.date_de_naissance'))
|
||||||
|
expect(subject.body).to have_selector("input#api_particulier_sources_cnaf_enfants_[value=noms_prenoms][checked=checked]")
|
||||||
|
|
||||||
|
expect(subject.body).to have_selector("input#api_particulier_sources_cnaf_enfants_[value=date_de_naissance]")
|
||||||
|
expect(subject.body).not_to have_selector("input#api_particulier_sources_cnaf_enfants_[value=date_de_naissance][checked=checked]")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue