Projet

Général

Profil

Development #38254

Pouvoir définir à quel rôle s'applique l'action "Message dans l'historique"

Ajouté par Stéphane Laget il y a plus de 4 ans. Mis à jour il y a plus de 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
06 décembre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non
Tags:

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

0001-workflows-add-target-roles-in-commenter-workflow-ite.patch (18,7 ko) 0001-workflows-add-target-roles-in-commenter-workflow-ite.patch Nicolas Roche, 11 décembre 2020 16:44
0002-formdata-hold-is_for_current_user-function-38254.patch (5,97 ko) 0002-formdata-hold-is_for_current_user-function-38254.patch Nicolas Roche, 12 décembre 2020 13:57
0003-formdata-hold-get_role_translation-function-38254.patch (17,2 ko) 0003-formdata-hold-get_role_translation-function-38254.patch Nicolas Roche, 12 décembre 2020 13:57
0002-formdata-hold-is_for_current_user-function-38254.patch (4,29 ko) 0002-formdata-hold-is_for_current_user-function-38254.patch Nicolas Roche, 13 décembre 2020 17:51
0003-workflows-add-target-roles-in-commenter-workflow-ite.patch (11,9 ko) 0003-workflows-add-target-roles-in-commenter-workflow-ite.patch Nicolas Roche, 13 décembre 2020 17:51
0001-formdata-hold-get_role_translation-function-38254.patch (16,1 ko) 0001-formdata-hold-get_role_translation-function-38254.patch Nicolas Roche, 13 décembre 2020 17:51
0003-workflows-add-target-roles-in-commenter-workflow-ite.patch (13,9 ko) 0003-workflows-add-target-roles-in-commenter-workflow-ite.patch Nicolas Roche, 22 janvier 2021 17:10
0002-formdata-hold-is_for_current_user-function-38254.patch (4,2 ko) 0002-formdata-hold-is_for_current_user-function-38254.patch Nicolas Roche, 16 février 2021 10:13
0003-workflows-add-target-roles-in-commenter-workflow-ite.patch (13,8 ko) 0003-workflows-add-target-roles-in-commenter-workflow-ite.patch Nicolas Roche, 16 février 2021 10:13
0001-formdata-hold-get_role_translation-function-38254.patch (16,5 ko) 0001-formdata-hold-get_role_translation-function-38254.patch Nicolas Roche, 16 février 2021 10:13
0002-misc-move-is_for_current_user-function-to-formdata-3.patch (4,21 ko) 0002-misc-move-is_for_current_user-function-to-formdata-3.patch Nicolas Roche, 16 février 2021 21:04
0003-workflows-add-target-roles-in-commenter-workflow-ite.patch (17,4 ko) 0003-workflows-add-target-roles-in-commenter-workflow-ite.patch Nicolas Roche, 16 février 2021 21:04
0001-misc-move-get_role_translation-function-to-formdata-.patch (16,5 ko) 0001-misc-move-get_role_translation-function-to-formdata-.patch Nicolas Roche, 16 février 2021 21:04

Révisions associées

Révision e4c5bea0 (diff)
Ajouté par Nicolas Roche il y a environ 3 ans

misc: move get_role_translation function to formdata (#38254)

Révision a6bb7194 (diff)
Ajouté par Nicolas Roche il y a environ 3 ans

misc: move is_for_current_user function to formdata (#38254)

Révision 09706c3b (diff)
Ajouté par Nicolas Roche il y a environ 3 ans

workflows: add target roles in commenter workflow item (#38254)

Historique

#1

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.

#2

Mis à jour par Stéphane Laget il y a plus de 3 ans

Oui, ce serait selon moi à prioriser.
Par exemple : #46372

#3

Mis à jour par Nicolas Roche il y a plus de 3 ans

  • Assigné à mis à Nicolas Roche
#4

Mis à jour par Nicolas Roche il y a plus de 3 ans

#5

Mis à jour par Nicolas Roche 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

               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.

#6

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.

#7

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.

#8

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.

#10

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.

#11

Mis à jour par Nicolas Roche il y a environ 3 ans

(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.

#12

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.

#14

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).

#16

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.

#17

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)
#18

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
#19

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

  • Tags mis à accessible

Formats disponibles : Atom PDF