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:
|
||||
already_configured: "Déjà rempli"
|
||||
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 'jeton', only: [:show, :update], controller: 'jeton_particulier'
|
||||
resource 'sources', only: [:show, :update], controller: 'sources_particulier'
|
||||
end
|
||||
|
||||
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