Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bloc for modalites #563

Merged
merged 8 commits into from
Dec 5, 2024
Merged

Bloc for modalites #563

merged 8 commits into from
Dec 5, 2024

Conversation

JeSuisUnCaillou
Copy link
Contributor

Copy link

linear bot commented Nov 27, 2024

@JeSuisUnCaillou JeSuisUnCaillou force-pushed the bloc_for_modalites branch 6 times, most recently from dc26f1f to 78bf6f4 Compare November 29, 2024 11:15
@JeSuisUnCaillou JeSuisUnCaillou marked this pull request as ready for review November 29, 2024 11:31
Copy link
Member

@skelz0r skelz0r left a comment

Choose a reason for hiding this comment

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

cf mes quelques coms + les 2 gros que j'ai fait hors review qui pour moi est le plus important.

app/models/authorization.rb Outdated Show resolved Hide resolved
app/models/authorization_request/api_impot_particulier.rb Outdated Show resolved Hide resolved
app/models/concerns/authorization_extensions/modalities.rb Outdated Show resolved Hide resolved
@@ -0,0 +1,22 @@
module AuthorizationExtensions::Modalities
Copy link
Member

Choose a reason for hiding this comment

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

ça aurait mérité un commit à part aussi, et de refactor avec API Particulier

Copy link
Contributor Author

Choose a reason for hiding this comment

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

API particulier l'utilise comme un array, alors que api impot part l'utilise comme une string.

Par soucis d'en avoir complètement marre de me casser le cul, je propose qu'on refactor pas.

Copy link
Member

Choose a reason for hiding this comment

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

Soit (I.) on refactor en 1 seul module, et on applique, au choix:

  1. API Impot part on transforme le modalities en un vrai array (et on passe des options pour customiser la vue en mode "1 choix ou plusieurs")
  2. On override dans API Impot Part (car on inclut modalities qui implique du pluriel, donc c'est dans la classe où on fait du singulier qu'on doit override). Cela implique d'override la vue aussi (sujet que JB tacle dans sa PR)

Soit (II.) on split en 2 modules : Modalities (pluriel), Modality (singulier) et on duplique le taff

Je ferai I.1. si techniquement ce n'est pas trop compliqué à comprendre, sinon II. (qui est moins dry, mais plus no-brainer)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Bon alors comme va y avoir d'autres forms avec une liste de valeurs possibles (des checkboxes au lieu de radioboutons) va falloir changer mon code pour dtf autoriser un array dans modalities, même pour la dgfip. Donc FLBLBLBL j'avais même pas besoin d'autant m'emmerder avec les radioboutons tout ce temps.

Copy link
Member

Choose a reason for hiding this comment

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

Du coup tout ça tu le mets dans le APIImpotParticulier direct ? (ou son concern), pour éviter que ça soit brainfuck avec API Particulier ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Je compte importer AuthorizationExtensions::Modalities dans api particulier ainsi que dans DGFIPExtensions::APIImpotParticulierModalities qui l'étend pour rajouter le champ france_connect_authorization_id

Copy link
Member

Choose a reason for hiding this comment

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

je sais, mais là c'est brainfuck d'où ma question

Copy link
Contributor

Choose a reason for hiding this comment

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

Je viens participer à la conversation (un peu tarfivement), si on part du principe que dans les prochains formulaire DGFiP, on aura d'autres access_mode aka modalité d'acces à integrer, je confirme que l'on aura bien besoin d'autoriser un Array dans modalities (Voir avec les 9 access mode pour l'API Ficoba qui va être mis en prod sur la V1)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes je vais m'en occuper dans une PR de followup

app/models/concerns/authorization_extensions/modalities.rb Outdated Show resolved Hide resolved
@JeSuisUnCaillou JeSuisUnCaillou force-pushed the bloc_for_modalites branch 3 times, most recently from 9894ec0 to 04be184 Compare November 29, 2024 15:05
@JeSuisUnCaillou
Copy link
Contributor Author

JeSuisUnCaillou commented Nov 29, 2024

Est-ce qu'on veut valider l'existence de l'authorization france connect linkée dans le modèle ?

@JeSuisUnCaillou JeSuisUnCaillou force-pushed the bloc_for_modalites branch 4 times, most recently from 4184842 to 22b34c8 Compare November 29, 2024 16:32
@skelz0r
Copy link
Member

skelz0r commented Dec 2, 2024

Est-ce qu'on veut valider l'existence de l'authorization france connect linkée dans le modèle ?

Oui, intégrité > *

@JeSuisUnCaillou JeSuisUnCaillou force-pushed the bloc_for_modalites branch 2 times, most recently from 393217b to b3fbc3b Compare December 2, 2024 14:25
@JeSuisUnCaillou
Copy link
Contributor Author

Est-ce qu'on peut merge ça comme ça, et que je bosse sur la version avec checkboxes et array dans une autre PR ? @skelz0r

@JeSuisUnCaillou JeSuisUnCaillou force-pushed the bloc_for_modalites branch 2 times, most recently from 2fd0d9b to 25cb237 Compare December 2, 2024 14:36
Copy link
Member

@skelz0r skelz0r left a comment

Choose a reason for hiding this comment

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

a minima fixer/harden pour ne pas permettre de mettre whatever ce qu'on veut en attributs quand le modèle est persisté.

app/views/authorization_request_forms/_form.html.erb Outdated Show resolved Hide resolved
@@ -0,0 +1,22 @@
module AuthorizationExtensions::Modalities
Copy link
Member

Choose a reason for hiding this comment

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

Du coup tout ça tu le mets dans le APIImpotParticulier direct ? (ou son concern), pour éviter que ça soit brainfuck avec API Particulier ?

app/helpers/authorization_requests_helpers.rb Outdated Show resolved Hide resolved
@JeSuisUnCaillou JeSuisUnCaillou force-pushed the bloc_for_modalites branch 2 times, most recently from 532257b to 2ef6183 Compare December 3, 2024 12:54
@JeSuisUnCaillou JeSuisUnCaillou force-pushed the bloc_for_modalites branch 3 times, most recently from e3ecfe6 to e90d17c Compare December 3, 2024 13:29
@skelz0r
Copy link
Member

skelz0r commented Dec 3, 2024

@JeSuisUnCaillou petit conflit faut rebase

Copy link
Member

@skelz0r skelz0r left a comment

Choose a reason for hiding this comment

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

c/c le code du module Modalities dans le code de concern de la DGFIP parce que c'est brainfuck d'avoir un module à part qui a le cul entre 2 chaises.

y'a le new_authorization_request_hidden_params aussi

@JeSuisUnCaillou
Copy link
Contributor Author

c/c le code du module Modalities dans le code de concern de la DGFIP parce que c'est brainfuck d'avoir un module à part qui a le cul entre 2 chaises.

J'ai split les 2 dans l'optique de pouvoir include Modalities directement dans api particulier, donc je peux les fusionner mais ça sera pour les re-split juste derrière, je vois pas bien l'intérêt

@Isalafont
Copy link
Contributor

Isalafont commented Dec 5, 2024

J'ai commencé a regarder le code et j'avoue que j'ai besoin d'un peu plus de temps pour tout bien comprendre.
Mais j'ai une question, que fait on de la première page du formulaire ?
Capture d’écran 2024-12-05 à 09 57 38

Avec l'implémentation du nouveau bloc de modalité, on en aura plus besoin et surtout l'utilisateur ne comprendra pas pourquoi on lui repose exactement la même question plus tard ?

OK j'ai compris, quand tu selectionnes dans cette page, ça préselectionne également dans le bloc modalities.
Par contre petit side effect. Si on clique france_connect mais que l'on change et clique sur spi, l'habilitation France connect est quand même liée à l'authorization request en back.

@JeSuisUnCaillou
Copy link
Contributor Author

Si on clique france_connect mais que l'on change et clique sur spi, l'habilitation France connect est quand même liée à l'authorization request en back.

Normalement non, j'ai fait gaffe à bien vider le paramètre dans le js. J'arrive pas à reproduire ce que tu dis 🤔

@Isalafont
Copy link
Contributor

Isalafont commented Dec 5, 2024

Normalement non, j'ai fait gaffe à bien vider le paramètre dans le js. J'arrive pas à reproduire ce que tu dis 🤔

Je t'ai induite en erreur sur comment le reproduire, en fait j'avais selectionné france connect sur la premiere page de modalité d'accès et puis j'ai fait le parcours et la j'ai re eut à nouveau un bloc de modalité à selectionner et la j'ai cliqué sur sfip et non France connect comme déjà préselectionné.

Résultat en backend en enregistré, j'ai la modalité with_sfip avec une habilitation France connect attaché.

C'est tricky je sais, mais ne sous estimons pas les utilisateurs pour reproduire ce cas 😅

@JeSuisUnCaillou
Copy link
Contributor Author

Normalement non, j'ai fait gaffe à bien vider le paramètre dans le js. J'arrive pas à reproduire ce que tu dis 🤔

Je t'ai induite en erreur sur comment le reproduire, en fait j'avais selectionné france connect sur la premiere page de modalité d'accès et puis j'ai fait le parcours et la j'ai re eut à nouveau un bloc de modalité à selectionner et la j'ai cliqué sur sfip et non France connect comme déjà préselectionné.

Résultat en backend en enregistré, j'ai la modalité with_sfip avec une habilitation France connect attaché.

C'est tricky je sais, mais ne sous estimons pas les utilisateurs pour reproduire ce cas 😅

Ah ok ! Je vois ce que je peux faire pour éviter ça, merci

@skelz0r
Copy link
Member

skelz0r commented Dec 5, 2024

Normalement non, j'ai fait gaffe à bien vider le paramètre dans le js. J'arrive pas à reproduire ce que tu dis 🤔

Je t'ai induite en erreur sur comment le reproduire, en fait j'avais selectionné france connect sur la premiere page de modalité d'accès et puis j'ai fait le parcours et la j'ai re eut à nouveau un bloc de modalité à selectionner et la j'ai cliqué sur sfip et non France connect comme déjà préselectionné.

Résultat en backend en enregistré, j'ai la modalité with_sfip avec une habilitation France connect attaché.

C'est tricky je sais, mais ne sous estimons pas les utilisateurs pour reproduire ce cas 😅

Pour le coup c'est une question d'intégrité de la donnée, ce qui est critique. Bien vu !

@JeSuisUnCaillou JeSuisUnCaillou merged commit 748af33 into develop Dec 5, 2024
11 of 12 checks passed
@JeSuisUnCaillou JeSuisUnCaillou deleted the bloc_for_modalites branch December 5, 2024 13:52
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.

3 participants