Skip to content

Commit

Permalink
Merge pull request #497 from etalab/block_operational_acceptance_for_…
Browse files Browse the repository at this point in the history
…dgfip

Block operational acceptance for dgfip
  • Loading branch information
JeSuisUnCaillou authored Oct 21, 2024
2 parents 5674fa1 + 1b695ea commit 208692f
Show file tree
Hide file tree
Showing 13 changed files with 84 additions and 5 deletions.
1 change: 1 addition & 0 deletions app/models/authorization_request/api_impot_particulier.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ class AuthorizationRequest::APIImpotParticulier < AuthorizationRequest
include AuthorizationExtensions::PersonalData
include AuthorizationExtensions::CadreJuridique
include AuthorizationExtensions::GDPRContacts
include AuthorizationExtensions::OperationalAcceptance
include AuthorizationExtensions::SafetyCertification

add_document :maquette_projet, content_type: ['application/pdf'], size: { less_than: 10.megabytes }
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
module AuthorizationExtensions::OperationalAcceptance
extend ActiveSupport::Concern

included do
add_attribute :operational_acceptance_done

validates :operational_acceptance_done,
acceptance: true,
if: -> { need_complete_validation?(:operational_acceptance) }
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<%= authorization_request_form(@authorization_request) do |f| %>
<%= render partial: 'authorization_request_forms/shared/operational_acceptance', locals: { f: } %>
<%= render partial: 'authorization_request_forms/build/wizard_buttons', locals: { f: } %>
<% end %>
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<%= f.info_for(:operational_acceptance) %>

<fieldset class="fr-fieldset fr-mb-4w">
<div class="fr-fieldset__element">
<%= f.dsfr_check_box :operational_acceptance_done, required: true %>
</div>
</fieldset>
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<%= render layout: 'authorization_requests/shared/blocks/summary_block', locals: { title: f.wording_for('steps.operational_acceptance'), block_id: :operational_acceptance, f:, editable: } do %>
<% if @authorization_request.respond_to?(:operational_acceptance_done) %>
<%= f.dsfr_check_box :operational_acceptance_done, disabled: true %>
<% end %>
<% end %>
1 change: 1 addition & 0 deletions config/authorization_definitions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,7 @@ shared:
- name: legal
- name: scopes
- name: contacts
- name: operational_acceptance
- name: safety_certification
scopes:
- name: Dernière année de revenu
Expand Down
5 changes: 3 additions & 2 deletions config/authorization_request_forms/dgfip.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@ api-impot-particulier-editeur:
- name: personal_data
- name: legal
- name: scopes
- name: safety_certification
- name: contacts
- name: contacts
- name: operational_acceptance
- name: safety_certification
2 changes: 2 additions & 0 deletions config/locales/activerecord.fr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ fr:
safety_certification_begin_date: Date de début d’homologation ou de signature du questionnaire de sécurité
safety_certification_end_date: Date de fin d’homologation

operational_acceptance_done: J’atteste avoir réalisé une recette fonctionnelle et qualifié mon téléservice.

scopes: Les données

administrateur_metier_family_name: Nom de famille de l'administrateur système
Expand Down
23 changes: 23 additions & 0 deletions config/locales/authorization_request_forms.fr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ fr:
contacts: "Les personnes impliquées"
modalities: "Les modalités d'accès aux données"
safety_certification: "Homologation de sécurité"
operational_acceptance: "Recette fonctionnelle"
finish: "La synthèse"

terms_of_service_accepted:
Expand Down Expand Up @@ -44,6 +45,28 @@ fr:
<p>Complétez les informations relatives à l’homologation et déposez la décision formelle d’homologation (également appelée attestation formelle).</p>
<p>Toutefois, si votre organisme n’est pas soumis au RGS, vous pouvez remplir un questionnaire de sécurité à récupérer auprès de la DTNum à l’adresse mail suivante : <a href="mailto:[email protected]">[email protected]</a>, et à joindre dans le formulaire ci-dessous.</p>
operational_acceptance:
title: Recette fonctionelle
subtitle: La qualification de votre téléservice est obligatoire tant pour votre homologation de sécurité ou vos obligations RGPD que pour demander l’entrée en production auprès de la DGFiP.
info:
title: Comment effectuer cette recette fonctionnelle ?
content: |
<p>
La qualification de votre téléservice est obligatoire tant pour votre homologation de sécurité ou vos obligations RGPD que pour demander l’entrée en production auprès de la DGFiP.
</p>
<p>
Pour vous accompagner dans vos travaux, un environnement de test est mis à votre disposition sur le portail des API de la DGFiP.
</p>
<p>
Le périmètre des réponses de cet environnement de test est fonctionnellement identique à l’environnement de production.
</p>
<p>
Un jeu de données fictives vous permet de valider l’intégration de quelques cas fonctionnels dans votre téléservice. L’environnement de test proposé par la DGFiP n’a donc pas vocation à recetter toutes les fonctionnalités du téléservice, qui doivent faire l’objet d’une recette interne.
</p>
<p>
A l’issue de vos travaux, veuillez attester de la qualification de votre téléservice.
</p>
prefill_data_info:
title: Nous avons pré-rempli des informations pour vous aider
description: "Vous avez choisi le formulaire %{name}, nous avons pré-rempli les informations correspondantes."
Expand Down
1 change: 1 addition & 0 deletions config/locales/fr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ fr:
scopes: "donnees"
contacts: "contacts"
safety_certification: "homologation-de-securite"
operational_acceptance: "recette-fonctionnelle"

authorization:
badge: habilitation du %{date}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,16 @@ Fonctionnalité: Soumission d'une demande d'habilitation API Impôts Particulier
* je coche "Dernière année de revenu"
* je clique sur "Suivant"

* Je renseigne l'homologation de sécurité
* je clique sur "Suivant"

* je renseigne les informations des contacts RGPD
* je renseigne les informations du contact technique
* je clique sur "Suivant"

* Je renseigne la recette fonctionnelle
* je clique sur "Suivant"

* Je renseigne l'homologation de sécurité
* je clique sur "Suivant"

* j'adhère aux conditions générales
* je clique sur "Soumettre la demande d'habilitation"

Expand All @@ -48,6 +51,13 @@ Fonctionnalité: Soumission d'une demande d'habilitation API Impôts Particulier
* je coche "Dernière année de revenu"
* je clique sur "Suivant"

* je renseigne les informations des contacts RGPD
* je renseigne les informations du contact technique
* je clique sur "Suivant"

* Je renseigne la recette fonctionnelle
* je clique sur "Suivant"

* je remplis "Nom de l’autorité d’homologation ou du signataire du questionnaire de sécurité" avec "Article 42"
* je remplis "Fonction de l’autorité d’homologation ou du signataire du questionnaire de sécurité" avec "Représentant de l'autorité d'homologation des joints d'étanchéité de conduits d'évacuation de climatiseurs de morgue"
* je remplis "La décision d’homologation ou le questionnaire de sécurité" avec le fichier "spec/fixtures/dummy.pdf"
Expand Down
6 changes: 6 additions & 0 deletions features/step_definitions/authorization_requests_steps.rb
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,12 @@
)
end

Quand('Je renseigne la recette fonctionnelle') do
steps %(
* je coche "J’atteste avoir réalisé une recette fonctionnelle et qualifié mon téléservice."
)
end

Quand('je renseigne les informations des contacts RGPD') do
steps %(
* je remplis les informations du contact "Responsable de traitement" avec :
Expand Down
7 changes: 7 additions & 0 deletions spec/factories/authorization_requests.rb
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,12 @@
end
end

trait :with_operational_acceptance do
after(:build) do |authorization_request, evaluator|
authorization_request.operational_acceptance_done = true if authorization_request.need_complete_validation? || evaluator.fill_all_attributes
end
end

trait :hubee_cert_dc do
type { 'AuthorizationRequest::HubEECertDC' }
end
Expand Down Expand Up @@ -371,6 +377,7 @@
with_cadre_juridique
with_scopes
with_safety_certification
with_operational_acceptance
end
end
end

0 comments on commit 208692f

Please sign in to comment.