-
Notifications
You must be signed in to change notification settings - Fork 1
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
Visibilite d'une fiche #265
Conversation
4131d41
to
84663b4
Compare
44b2ff3
to
02c51b4
Compare
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.
Globalement j'ai trouvé la PR assez grosse pour le résultat buissiness attendu. Peut être il aurait fallut couper en 2 scopes (qui peut changer l'état et qui peut voir son des problèmes séparés non ?) ?
def _fiche_detection_bakery(): | ||
etat = Etat.objects.get(id=Etat.get_etat_initial()) | ||
return baker.make(FicheDetection, _fill_optional=True, etat=etat) | ||
return baker.make( | ||
FicheDetection, _fill_optional=True, etat=etat, createur=mocked_authentification_user.agent.structure |
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.
Cela va impliquer par défaut que toutes les fiches que l'on utilise vont être créé par le user de test, est ce que c'est vraiment ce que l'on veut ? Pourquoi ne pas personaliser le comportement au niveau du test voulu directement ?
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.
J'ai opté pour cette solution car avec l'ajout de la visibilité d'une fiche, cela impact beaucoup de tests.
Étant donné que dans la plupart des tests une fiche détection est en visibilité brouillon (valeur par défaut), il faut que le user soit de la même structure pour y accéder et donc exécuter les tests.
J'ai préféré faire l'inverse (modifier la structure du user si besoin) pour avoir moins de tests à modifier.
Est-ce ok pour toi ?
Oui je suis d'accord, je m'en suis rendu compte tardivement, mais ceci étant les 2 scopes sont liés. |
813ea84
to
2eda949
Compare
33cccf0
to
20754ae
Compare
Modèle : - Ajout d'unTextChoices Visibilite pour gérer les valeurs : brouillon, local, et national. (core/models.py) - Ajout du mixinAllowVisibiliteMixin pour gérer et ajouter à tout type de fiche la logique de visibilité. (core/mixins.py) - Ajout de méthodes dans le modèle FicheDetection pour gérer la mise à jour de la visibilité ou l'accès à une fiche détection. (can_update_visibilite et can_user_access dans sv/models.py/FicheDetection/) Form : - Ajout d'un formulaire FicheDetectionVisibiliteUpdateForm pour permettre aux agents de mettre à jour la visibilité d'une fiche détection. (sv/forms.py) Templates : - Ajout Radio Button DSFR: Ajout de la classe DSFRRadioButton et du template correspondant pour intégrer le radio button du DSFR. (core/fields.py, core/templates/forms/dsfr_radio_btn.html) - Badge: Affichage du statut de visibilité sous forme de badge sur la page de détail du formulaire de détection. (sv/templates/sv/fichedetection_detail.html) - Modal: Ajout d'une modale pour mettre à jour la visibilité dans la page de détail d'une fiche détection. (sv/templates/sv/_fichedetection_update_visibilite_modal.html) - Filtre de template: Ajout d'un filtre de template get_item pour récupérer la description d'une visibilité à partir de sa valeur (core/templatetags/get_item.py) Migration de la base de données: - Ajout d'un script de migration pour inclure le nouveau champ visibilite dans le modèle FicheDetection et définir des valeurs par défaut (brouillon) pour les enregistrements existants. (sv/migrations/0022_fichedetection_visibilite.py)
Cette PR ajoute la notion de visibilité d'une fiche (brouillon, local, national).
Modèle :
TextChoices
Visibilite
pour gérer les valeurs :brouillon
,local
, etnational
. (core/models.py
)AllowVisibiliteMixin
pour gérer et ajouter à tout type de fiche la logique de visibilité. (core/mixins.py
)FicheDetection
pour gérer la mise à jour de la visibilité ou l'accès à une fiche détection. (can_update_visibilite
etcan_user_access
danssv/models.py/FicheDetection/
)Form :
FicheDetectionVisibiliteUpdateForm
pour permettre aux agents de mettre à jour la visibilité d'une fiche détection. (sv/forms.py
)Templates :
DSFRRadioButton
et du template correspondant pour intégrer le radio button du DSFR. (core/fields.py
,core/templates/forms/dsfr_radio_btn.html
)sv/templates/sv/fichedetection_detail.html
)sv/templates/sv/_fichedetection_update_visibilite_modal.html
)get_item
pour récupérer la description d'une visibilité à partir de sa valeur (core/templatetags/get_item.py
)Tests :
fiche_detection_bakery
pour que le créateur de chaque fiche détection soit lié au user connecté et donc puisse accéder à la fiche (cf. commentaire)Migration de la base de données :
visibilite
dans le modèleFicheDetection
et définir des valeurs par défaut (brouillon
) pour les enregistrements existants. (sv/migrations/0022_fichedetection_visibilite.py
)