-
Notifications
You must be signed in to change notification settings - Fork 25
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
Fiches salarié: Faciliter la saisie des nouvelles fiches salariés [GEN-749] #5469
base: master
Are you sure you want to change the base?
Conversation
d8889a5
to
26575df
Compare
@@ -81,9 +83,16 @@ def dispatch(self, request, *args, **kwargs): | |||
return super().dispatch(request, *args, **kwargs) | |||
|
|||
def get_form_kwargs(self, step=None): | |||
# Why is it called 20 times ? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oo, j'ai pas du tout souvenir de ce comportement 🙈.
A confirmer mais un @functools.cache()
devrais fonctionner car normalement ni self.company
ni self.get_cleaned_data_for_step("choose-employee")["employee"]
ne devrait être modifié pour la même instance du formulaire mais on est pas à l'abri que ça soit le cas...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Le coupable est ce commit : 6f9e9d0
et la condition qui appelle le formulaire qui fait une requête, et cela en boucle via je ne sais quelle mystère que je n'ai pas trop creusé.
Cela explique aussi pourquoi on a étape 1/1 :
On "masque" l'étape suivante.
J'aimerai améliorer le fonctionnement de la vue, sauf que je ne sais pas quel est le bug que tu avais voulu corriger vu qu'on n'a plus l'historique sentry :/
Est-ce que par hazard tu t'en rappellerais ?
Le commit dit : www.employee_record: Prevent errors if a user go back to add last step
Est-ce que c'est s'il fait un get sur la dernière url (avec un précédent du navigateur) ?
J'aurais bien envie de bazarder la wizard view pour mettre un formulaire tout simple avec deux champs : le salarié, et le PASS (disabled au début, et dont les choix dépendent du salarié) mais ça fait du js non testé :(
(et ça correspond assez bien au message que tu avais mis : #3369 (comment))
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
En effet après un retour navigateur ça plante.
Je vais ajouter un test explicite sur ce comportement.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Après avoir bien creusé, j'ai quand même bien l'impression que cette lib a plein de soucis...
Cette histoire de retour arrière devrait se poser pour chacun de nos wizards.
Il faudrait systématiquement vérifier que le form de l'étape d'avant a un cleaned_data
quand on essaye d'accéder à une étape particulière, mais ça revient à patcher au milieu de NamedUrlWizardView.get()
....
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
De mémoire l'erreur Sentry était une KeyError "choose-employee"
car la session n'existe plus après l'étape done
.
Et oui j'ai jamais compris pourquoi celui-ci avait ce comportement alors que celui pour les demandes de prolongations utilise aussi le condition_dict
et y avais pas ce genre de problèmes, peut-être parce que le formulaire n'a que 2 vues dont 1 conditionnelles et donc les first
, current
, next
, last
sont un peu toujours les mêmes 🤷
Après avoir bien creusé, j'ai quand même bien l'impression que cette lib a plein de soucis...
Comme je disais dans mon autre commentaire, celui en POST à l'air plutôt OK mais celui avec les vues part vite en couille, mais c'est le seul formulaire qui posais problème donc j'étais tenté de dire que c'était notre utilisation qui était mauvaise :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dans les demandes de prolongation, on attend la fin de la première étape pour compter ^^
Du coup à la première étape, on a une barre de progression à 50% mais on ne marque pas étape 1/1
Et à la seconde étape, quand on sait s'il y aura une 3eme étape, on arrive à 66% avec 2/3 si c'est le cas.
df7b372
to
ab1a9d7
Compare
c8e9fe1
to
d47f648
Compare
d47f648
to
c987d72
Compare
c987d72
to
5cd26df
Compare
🥁 La recette jetable est prête ! 👉 Je veux tester cette PR ! |
5cd26df
to
b720627
Compare
8090516
to
f828bd9
Compare
f828bd9
to
0af7222
Compare
5fbd20a
to
37767b1
Compare
37767b1
to
e79e8c0
Compare
</div> | ||
<div class="col"> | ||
{% if num_recently_missing_employee_records == 1 %} | ||
<p>1 nouveau salarié, embauché il y a moins de 4 mois, n’a pas encore de fiche salarié.</p> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Avec un .mb-0
sur <p>
ça ira mieux pour l'alignement
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
merci
1b05285
to
c67bd79
Compare
The name case is already handled in the get_full_name method
To be used in a future commit
Only display employee without record, and in -hiring_start_at order Adapt steps wording accordingly
c67bd79
to
2da7cb5
Compare
🤔 Pourquoi ?
Il manque :
get_form_kwarg()
qui semble être appelé 20 fois (soit faire une mise en cache, soit comprendre pourquoi)🍰 Comment ?
🚨 À vérifier
🏝️ Comment tester ?
💻 Captures d'écran