Development #38254
Pouvoir définir à quel rôle s'applique l'action "Message dans l'historique"
0%
Description
On souhaite parfois écrire des messages dans l'historique uniquement à usage interne.
Aujourd'hui le contournement consiste à faire des statuts spécifiques pour afficher ces messages que l'on cache aux usagers.
Mais cela surcharge inutilement l'historique de la demande.
Fichiers
Révisions associées
misc: move is_for_current_user function to formdata (#38254)
workflows: add target roles in commenter workflow item (#38254)
Historique
Mis à jour par Stéphane Laget il y a environ 4 ans
Ou plutôt que de la définir pour un rôle en particulier, pouvoir le spécifier pour une fonction, de la manière que pour les alertes.
Mis à jour par Stéphane Laget il y a plus de 3 ans
Oui, ce serait selon moi à prioriser.
Par exemple : #46372
Mis à jour par Nicolas Roche il y a plus de 3 ans
- Fichier 0001-workflows-add-target-roles-in-commenter-workflow-ite.patch 0001-workflows-add-target-roles-in-commenter-workflow-ite.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Nicolas Roche il y a plus de 3 ans
- Fichier 0003-formdata-hold-get_role_translation-function-38254.patch 0003-formdata-hold-get_role_translation-function-38254.patch ajouté
- Fichier 0002-formdata-hold-is_for_current_user-function-38254.patch 0002-formdata-hold-is_for_current_user-function-38254.patch ajouté
0001 : j'ai fait au plus simple mais j'ai du toucher à sql.py
pour passer le formdata
for part in evo.parts or []: if hasattr(part, 'view'): html_part = part.view(self) # <-- ici
J'ai rajouté 2 commits au cas où, pour nettoyer un peu le code derrière mon passage.
0002: j'ai déplacé la fonction is_for_current_user
pour éviter de la redéfinir comme je l'ai fait dans 0001
0003: excès de zèle : j'ai aussi déplacé get_role_translation
parce qu'elle semblait trouver sa place à côté, et que ça permet de retirer des imports dans les fonctions.
Mis à jour par Frédéric Péters il y a plus de 3 ans
0001 : j'ai fait au plus simple mais j'ai du toucher à sql.py pour passer le formdata
Je pense qu'il faut surtout expliquer pourquoi tu as du passer le formdata.
Mis à jour par Frédéric Péters il y a plus de 3 ans
Je pense qu'il faut surtout expliquer pourquoi tu as du passer le formdata.
De manière générale; i.e. la modification à la signature de la méthode view(), ici il me semble ça serait "pour que l'action puisse être configurée pour que le message soit affiché à l'usager associé à la demande, il faut passer la demande lors du rendu des différents éléments de l'historique".
Et ensuite, alors, expliciter le choix de la modif sur sql.py, que je ne comprends pas, parce que le contexte est là l'indexation full text, qui sera partagée par tout le monde, et j'aurais l'impression alors qu'en cas de restriction d'affichage sur l'action, il ne faut juste pas inclure son texte dans l'indexation full text, ce qui n'est pas quelque chose qui demande de passer formdata.
Mis à jour par Frédéric Péters il y a plus de 3 ans
Sur l'ordre des manipulations, ça complique la relecture, on va avoir 0001 et à sa lecture dire "c'est dommage d'avoir du dupliquer is_for_current_user" mais le commentaire sera immédiatement obsolète par 0002 qui supprime la duplication qui vient d'être ajoutée.
Mis à jour par Nicolas Roche il y a plus de 3 ans
- Fichier 0003-workflows-add-target-roles-in-commenter-workflow-ite.patch 0003-workflows-add-target-roles-in-commenter-workflow-ite.patch ajouté
- Fichier 0002-formdata-hold-is_for_current_user-function-38254.patch 0002-formdata-hold-is_for_current_user-function-38254.patch ajouté
- Fichier 0001-formdata-hold-get_role_translation-function-38254.patch 0001-formdata-hold-get_role_translation-function-38254.patch ajouté
Oui à tout.
Merci pour la relecture, et désolé d'être encore passé à coté.
Mis à jour par Frédéric Péters il y a plus de 3 ans
Détails dans 0003 tu mets deux espaces devant les hasattr,
if hasattr(p, 'to') and not self.formdata.is_for_current_user(p.to):
et ici
if hasattr(part, 'to') and not self.is_for_current_user(part.to):
À part ça, si tu veux tu pourrais ajouter dans 0003 un test dans tests/test_workflow_import.py pour assurer que la présence et l'absence de self.to sont bien gérés par les export/import (pas critique vu que to_export_to_xml et to_init_with_xml doivent déjà être traités par d'autres tests).
Et ça sera bon ainsi.
Mis à jour par Nicolas Roche il y a environ 3 ans
- Fichier 0003-workflows-add-target-roles-in-commenter-workflow-ite.patch 0003-workflows-add-target-roles-in-commenter-workflow-ite.patch ajouté
(remarques prises en compte)
Le nouveau test montrait que pour un champ vide on passait de None
à []
.
Du coup j'ai initialisé to
à []
dans wcs/wf/register_comment.py
.
Mis à jour par Frédéric Péters il y a environ 3 ans
Du coup j'ai initialisé to à [] dans wcs/wf/register_comment.py.
Ça me fait plus peur qu'autre chose; ce n'est pas ce qui est fait dans DisplayMessageWorkflowStatusItem. Fais plutôt comme l'existant. Et adapte le test pour gérer la situation.
Mis à jour par Nicolas Roche il y a environ 3 ans
- Fichier 0003-workflows-add-target-roles-in-commenter-workflow-ite.patch 0003-workflows-add-target-roles-in-commenter-workflow-ite.patch ajouté
- Fichier 0002-formdata-hold-is_for_current_user-function-38254.patch 0002-formdata-hold-is_for_current_user-function-38254.patch ajouté
- Fichier 0001-formdata-hold-get_role_translation-function-38254.patch 0001-formdata-hold-get_role_translation-function-38254.patch ajouté
Fais plutôt comme l'existant. Et adapte le test pour gérer la situation.
(fait)
Mis à jour par Frédéric Péters il y a environ 3 ans
Bon je vois que je me suis retenu tout du long mais "hold ..." je ne trouve vraiment pas ça parlant comme message; fait plutôt genre "misc: move get_role_translation method to formdata".
Sur le reste ça me semble ok, si jamais tu te sentais d'ajouter un test dans tests/form_pages/ ça serait super (genre ajout d'un message à tout le monde, à un rôle que l'usager n'a pas, à un rôle que l'usager a, et vérifier ce qui s'affiche).
Mis à jour par Nicolas Roche il y a environ 3 ans
- Fichier 0003-workflows-add-target-roles-in-commenter-workflow-ite.patch 0003-workflows-add-target-roles-in-commenter-workflow-ite.patch ajouté
- Fichier 0002-misc-move-is_for_current_user-function-to-formdata-3.patch 0002-misc-move-is_for_current_user-function-to-formdata-3.patch ajouté
- Fichier 0001-misc-move-get_role_translation-function-to-formdata-.patch 0001-misc-move-get_role_translation-function-to-formdata-.patch ajouté
(remarques prises en compte)
Mis à jour par Frédéric Péters il y a environ 3 ans
- Statut changé de Solution proposée à Solution validée
Ok go.
Mis à jour par Nicolas Roche il y a environ 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 09706c3b40f0daffb91bd46087247aadecbb58db Author: Nicolas ROCHE <nroche@entrouvert.com> Date: Fri Dec 11 00:10:18 2020 +0100 workflows: add target roles in commenter workflow item (#38254) commit a6bb7194133069e6cfb0fe86e00ee583b3e3dfac Author: Nicolas ROCHE <nroche@entrouvert.com> Date: Sat Dec 12 10:46:58 2020 +0100 misc: move is_for_current_user function to formdata (#38254) commit e4c5bea0d86652a45c616e09cccfa7c10674b544 Author: Nicolas ROCHE <nroche@entrouvert.com> Date: Sat Dec 12 10:49:22 2020 +0100 misc: move get_role_translation function to formdata (#38254)
Mis à jour par Frédéric Péters il y a environ 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
misc: move get_role_translation function to formdata (#38254)