Skip to content

Afficher le scope AEEH sur les formulaires éditeur enfance - #1692

Open
jbfeldis wants to merge 1 commit into
developfrom
feature/dp-1844-ajouter-une-api-sur-tous-les-datapass-editeur-du-cas-dusage
Open

Afficher le scope AEEH sur les formulaires éditeur enfance#1692
jbfeldis wants to merge 1 commit into
developfrom
feature/dp-1844-ajouter-une-api-sur-tous-les-datapass-editeur-du-cas-dusage

Conversation

@jbfeldis

Copy link
Copy Markdown
Contributor

Contexte

DP-1844 — sur les cas d’usage « Tarification sociale des services municipaux à l’enfance », le scope cnav_allocation_enfant_handicape (Statut AEEH) doit apparaître sans être pré coché.

Critère retenu : cas d’usage tarification_municipale_enfance avec un service_provider_id rempli (= les formulaires éditeur). Le critère tombe juste : sur les 33 cas d’usage tarification_municipale_enfance, 32 ont un service_provider_id, et le seul sans est le formulaire générique api-particulier-tarification-municipale-enfance… qui avait déjà le scope dans l’état demandé. Il a servi de référence, pas de cible.

Ce que fait la PR

  • config/authorization_request_forms/api_particulier.yml : +26 lignes, 26 blocs scopes_config.displayed modifiés, couvrant 27 cas d’usage (abelium hérite de tout le scopes_config de familea via la clé de fusion <<:, donc une seule édition couvre les deux). Aucune autre ligne touchée.
  • Ajout dans displayed uniquement — ni dans disabled (qui verrouillerait la case), ni dans initialize_with.scopes (qui la pré cocherait).
  • Rien à créer côté définition : le scope existe déjà dans config/authorization_definitions/api_particulier.yml, sans feature_flag ni included: true.

Cas d’usage modifiés (27)

Scopes cochables — 11

La case apparaît décochée et le demandeur peut la cocher : effet fonctionnel réel.

Cas d’usage Logiciel Éditeur
api-particulier-familea Domino web 2.0 familea
api-particulier-abelium Domino web 2.0 familea (hérité de familea via <<:)
api-particulier-agedi-proxima-enf Proxima.ENF agedi
api-particulier-andyvie Recreo andyvie
api-particulier-carte-plus Carte Plus carte_plus
api-particulier-city-family-mushroom-software City Family mushroom_software
api-particulier-jcdeveloppement-familyclic FamilyClic jcdeveloppement
api-particulier-nfi NFI nfi
api-particulier-noethys Noethys noethys
api-particulier-resagenda Res’Agenda resagenda
api-particulier-ypok-ykidz Ykidz ypok

Scopes figés — 16

La case apparaît décochée mais n’est pas cochable — voir « Points à confirmer » ci-dessous.

Cas d’usage Logiciel Éditeur
api-particulier-3d-ouest Logiciel Enfance 3d_ouest
api-particulier-acheteza AchetezA acheteza
api-particulier-agora-plus Agora Plus agora_plus
api-particulier-aiga iNoé aiga
api-particulier-amiciel-malice Malice amiciel
api-particulier-arpege-concerto Concerto arpege
api-particulier-bl-enfance-berger-levrault BL Enfance berger_levrault
api-particulier-cantine-de-france Cantine de France jdealise
api-particulier-civil-enfance-ciril-group Civil Enfance ciril_group
api-particulier-cosoluce-fluo Fluo cosoluce
api-particulier-e1os Epéris e1os
api-particulier-ecorestauration-loyfeey Loyfeey ecorestauration
api-particulier-entrouvert-publik Publik Famille entrouvert
api-particulier-jvs-mairistem Mairistem jvs_mairistem
api-particulier-technocarte-ile ILE - Kiosque famille technocarte
api-particulier-waigeo-myperischool MyPérischool waigeo

Non modifiés car déjà conformes — 6

Cas d’usage Pourquoi aucune modification
api-particulier-docaposte-fast Pas de liste displayed → affiche déjà tous les scopes, AEEH compris, décoché
api-particulier-odyssee-informatique-pandore idem
api-particulier-qiis-eticket idem
api-particulier-teamnet-axel idem
api-particulier-sigec-maelis idem
api-particulier-tarification-municipale-enfance Formulaire générique (sans service_provider_id) : avait déjà le scope

27 modifiés + 6 déjà conformes = les 33 cas d’usage tarification_municipale_enfance.

Points à confirmer @miryad

1. Sur les 16 cas d’usage « scopes figés », la case AEEH restera non cochable.

Sur ces formulaires, le bloc scopes est déclaré dans static_blocks (et non dans steps) : le décorateur le marque editable: false et le form builder rend toutes les cases en lecture seule. La demande est donc littéralement satisfaite (la case apparaît, non cochée), mais sans effet fonctionnel : l’habilitation ne pourra jamais contenir l’AEEH sur ces 16 formulaires.

Si le besoin est que le demandeur puisse réellement cocher l’AEEH chez ces éditeurs, il faut sortir scopes de static_blocks → cela change le contrat passé avec l’éditeur → à cadrer avec eux dans un ticket distinct. Dis-nous ce qui est attendu.

2. Périmètre limité au cas d’usage enfance.

Lu au pied de la lettre, « tous les cas d’usage qui ont le service_provider_id rempli » viserait 63 formulaires, tous cas d’usage confondus : tarification_eaje (14), tarification_transports (5), ccas (4), aides_facultatives (3), cantines-colleges-lycees-tarification (3), stationnement_residentiel (2). Mettre l’AEEH sur du stationnement résidentiel ou de la gestion RH n’a pas de sens, et le ticket dit « du cas d’usage enfance » → périmètre restreint à tarification_municipale_enfance. À confirmer, l’élargissement est trivial.

Test plan

  • bundle exec rspec spec/acceptance spec/models810 examples, 0 failures
  • bundle exec rubocop → clean
  • Nouvel invariant dans spec/acceptance/authorizations_configs_spec.rb : sur les 32 formulaires éditeur du cas d’usage, l’AEEH est affiché et jamais pré coché (+ garde-fou « ensemble non vide » pour éviter un test qui passe à vide)
  • Invariant mutation-testé : en annulant la modification YAML, l’exemple « displays the scope on each editor form » échoue bien
  • spec/models/authorization_request_spec.rb : #available_scopes de familea attendait 4 scopes, en attend 5. Échec légitime — le test vérifie que la config displayed est respectée, pas que familea a 4 scopes. L’exemple voisin #disabled_scopes passe toujours avec le seul cnaf_quotient_familial, ce qui confirme que l’AEEH est affiché sans être verrouillé
  • Aucun fichier docs/ ni feature cucumber ne référence ces formulaires

🤖 Generated with Claude Code

Ajoute cnav_allocation_enfant_handicape à scopes_config.displayed des 27
cas d'usage tarification_municipale_enfance ayant un service_provider_id.

Le scope est ajouté à displayed uniquement : ni à disabled, qui
verrouillerait la case, ni à initialize_with.scopes, qui la pré cocherait.

abelium hérite du scopes_config de familea via la clé de fusion YAML, une
seule édition couvre les deux. Les 5 formulaires single page n'ont pas de
liste displayed et affichaient déjà le scope décoché.

available_scopes de familea attendait 4 scopes et en attend 5 : le test
vérifie que la config displayed est respectée, pas le nombre de scopes.
@linear

linear Bot commented Jul 14, 2026

Copy link
Copy Markdown

DP-1844

@jbfeldis
jbfeldis requested a review from Miryad3108 July 14, 2026 11:17
@skelz0r

skelz0r commented Jul 15, 2026

Copy link
Copy Markdown
Member

tl;dr de ce qu'il faut faire:

Sur tous les formulaires qui ont comme use_case: tarification_municipale_enfance, ajouter le scope cnav_allocation_enfant_handicape non coché, cochable

> grep "use_case: tarification_municipale_enfance" config/authorization_request_forms/api_particulier.yml | wc -l
32

Il n'y a que 26 lignes d'ajoutées sur le fichier, je pense qu'il en manque 6.

@skelz0r skelz0r left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cf mon com ci-dessus

@skelz0r
skelz0r self-requested a review July 15, 2026 08:41
@skelz0r
skelz0r dismissed their stale review July 15, 2026 08:42

Discuté irl

@skelz0r
skelz0r removed their request for review July 15, 2026 08:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants