Repository navigation
Demandeur d'emploi : afficher le statut d’éligibilité du candidat sur sa page d’accueil - #6084
Conversation
a9fc231 to
e37a474
Compare
fe8afa2 to
b36a0c4
Compare
|
🥁 La recette jetable est prête ! 👉 Je veux tester cette PR ! |
3ed529a to
3d1c24c
Compare
3d1c24c to
6739608
Compare
|
🥁 La recette jetable est prête ! 👉 Je veux tester cette PR ! |
6fbefbb to
7b0dd25
Compare
EwenKorr
left a comment
There was a problem hiding this comment.
Une refonte de l'affichage des diagnostics d'éligibilité est prévue :
- affichage dans les candidatures vs affichage dans le tableau de bord candidat
- utilisateur en cours (prescripteur ou employeur)
- qui envoie la candidature (prescripteur habilité ou non)
- SIAE vs GEIQ
Pour l'instant, c'est assez difficile de mutualiser le code malheureusement.
There was a problem hiding this comment.
J'avais d'abord tenté de passer une variable for_job_seeker en cascade (last_considered_valid, for_job_seeker_and_siae, has_valid_approval), mais ça compliquait pas mal toutes ces méthodes.
À la place, j'introduis donc une méthode last_for_job_seeker.
| # name: TestDashboardView.test_jobseeker_approval_card[job seeker with approval queries] | ||
| dict({ | ||
| 'num_queries': 8, | ||
| 'num_queries': 15, |
There was a problem hiding this comment.
On tape un peu partout pour avoir l'éligibilité. Mais passer de 8 à 15 requêtes, c'est peut-être beaucoup ?
There was a problem hiding this comment.
ça semble beaucoup oui ^^'
Après ce n'est utilisé que sur cette page donc c'est pas ultra embêtant.
There was a problem hiding this comment.
Ici par contre, passer une variable en cascade (for_job_seeker) me semblait plus correct, les changements ne sont pas trop importants, et on ne duplique pas la logique.
| - an expired diagnosis if there is one and no valid diagnoses | ||
| """ | ||
|
|
||
| approval_subquery = Exists(Approval.objects.filter(eligibility_diagnosis=OuterRef("pk"))) |
There was a problem hiding this comment.
Cela engendre une requête qui existe déjà (dans le gabarit on a des user.latest_common_approval).
Je ne sais pas encore comment réussir à réutiliser l'information.
There was a problem hiding this comment.
(13 requêtes comprenant 4 similaires et 2 en double)
😢
There was a problem hiding this comment.
Le fait est que ça fait appel à un certain nombre de méthodes qui font leurs propres requêtes et qu'il serait p-e bon de dénormaliser si la multiplication des requêtes pose un souci (ce dont je ne suis pas convaincu)…
Ceci dit, tu dois pouvoir retirer quelques requêtes en optimisant le prefetching avec un Prefetch()
7b0dd25 to
442d7e8
Compare
0b8e037 to
ee10dda
Compare
| # name: TestDashboardView.test_jobseeker_approval_card[job seeker with approval queries] | ||
| dict({ | ||
| 'num_queries': 8, | ||
| 'num_queries': 15, |
There was a problem hiding this comment.
ça semble beaucoup oui ^^'
Après ce n'est utilisé que sur cette page donc c'est pas ultra embêtant.
| ''', | ||
| }), | ||
| dict({ | ||
| 'origin': list([ |
There was a problem hiding this comment.
et là on retourne voir son pass....
Cela dit j'ai un doute sur le fonctionnement de considered_to_expire_at qui vérifie si le candidat a un PASS valide, pas si ce PASS a été créé avec ce diagnostic
There was a problem hiding this comment.
En fait j'imagine que c'est intentionnel :
les-emplois/itou/eligibility/models/iae.py
Lines 171 to 172 in 4de8fd5
There was a problem hiding this comment.
Je pense quand même que ce calcul est faux: si un utilisateur a plusieurs diagnostics, et un PASS tous les diagnostics vont répondre True, alors que ce n'est pas le cas.
There was a problem hiding this comment.
Avec #6378 on retourne chercher un pass, spécifiquement celui associé au diag du coup.
3efe875 to
94394b0
Compare
5c3281a to
4457b53
Compare
4457b53 to
69b962b
Compare
|
|
||
| @register.simple_tag | ||
| def iae_eligibility_badge(*, is_eligible, extra_class=""): | ||
| def iae_eligibility_badge(*, is_eligible, extra_class="", for_job_seeker=False): |
There was a problem hiding this comment.
Tu pourrais rajouter des snapshots en plus dans test_iae_eligibility_badge & test_geiq_eligibility_badge
The way they are rendered is a bit different on the job seekers' dashboard.
This fragment will be used in several places.
So that the criteria list can be flattened independently from who created the diagnosis.
The GEIQ eligibility diagnoses were ordered in `authored_by_prescriber_or_geiq`, which is used only in the `diagnoses_for` method. In a future commit, the latter will be used without `authored_by_prescriber_or_geiq`, so we need the ordering to happen in `diagnoses_for`.
69b962b to
7400c93
Compare
🤔 Pourquoi ?
Le candidat qui se connecte à son espace ne retrouve pas facilement le statut de son éligibilité, hormis s’il a déjà un PASS IAE.
🍰 Comment ?
Afficher les informations relatives à l’éligibilité IAE du candidat dans sa page d’accueil connecté lorsqu’il n’a pas de PASS IAE valide.
Comment tester ?
Se connecter en tant qu'admin sur la recette jetable, et détourner les comptes
test0{1-9}@inclusion.gouv.fr.Leurs noms et prénoms explicitent les différentes situations.
💻 Captures d'écran