Development #58881
Permettre de définir une vue personnalisée sur des fiches utilisée en source de données en filtrant sur une fonction de l'usager
0%
Description
- dans un premier temps, le fait que l'usager a la visibilité sur ces fiches,
- dans un second temps, qu'il possède une fonction spécifique sur ces fiches.
Par exemple, l'usager peut avoir une fonction "Gestionnaire" ou "Mandataire" sur des fiches "Personnes morales".
Lorsque l'on affiche un formulaire, comme modification des coordonnées, on veut afficher la liste des fiches "Personnes morales" sur lesquelles l'usager a au moins une fonction (visibilité).
Mais pour un formulaire comme "Habilitation des mandataires" on ne souhaitera présenter à l'usager que les fiches pour lesquelles l'usager a une fonction "Gestionnaire".
Pour cela il faudrait pouvoir définir des vues personnalisées sur des fiches utilisées en source de données en filtrant sur une fonction de l'usager.
Fichiers
Demandes liées
Révisions associées
workflows: move get_sorted_functions from view to model (#58881)
sql: add workflow_merged_roles_dict jsonb column (#58881)
backoffice: add filter on user function (#58881)
Historique
Mis à jour par Mikaël Ates il y a plus de 2 ans
- Lié à Development #58879: "Fiches", pouvoir restreindre la visibilité des fiches selon l'appartenance de l'usager connecté à une fonction de la fiche ajouté
Mis à jour par Mikaël Ates il y a plus de 2 ans
- Sujet changé de Permettre de définir une vue personnalisée sur des fiches utilisées en source de données en filtrant sur une fonction de l'usager à Permettre de définir une vue personnalisée sur des fiches utilisée en source de données en filtrant sur une fonction de l'usager
Mis à jour par Mikaël Ates il y a plus de 2 ans
- Lié à Development #58887: Améliorations sur le backoffice des démarches. ajouté
Mis à jour par Mikaël Ates il y a plus de 2 ans
- Lié à Development #58878: "contenu d'une fiche", pouvoir restreindre la visibilité de la cellule selon l'appartenance de l'usager connecté à une fonction de la fiche ajouté
Mis à jour par Frédéric Péters il y a environ 2 ans
- Fichier 0003-backoffice-add-filter-on-user-function-58881.patch 0003-backoffice-add-filter-on-user-function-58881.patch ajouté
- Fichier 0002-sql-add-workflow_merged_roles_dict-jsonb-column-5888.patch 0002-sql-add-workflow_merged_roles_dict-jsonb-column-5888.patch ajouté
- Fichier 0001-workflows-move-get_sorted_functions-from-view-to-mod.patch 0001-workflows-move-get_sorted_functions-from-view-to-mod.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
0001 est un trivial déplacement de code.
0002 ajoute une colonne workflow_merged_roles_dict dans les tables, cette colonne reprend l'info combinée de formdef.workflow_roles (l'attribution statique des fonctions au niveau formulaire ou modèle de fiche) et de formdata.workflow_roles (l'attribution dynamique). L'idée est d'ensuite pouvoir faire les requêtes d'assignation directement sur la base de données, plutôt que de devoir tout charger.
0003 termine avec la partie interface et la requête en tant que telle, avec l'introduction d'un nouveau critère ElementIntersects, pour regarder si une fonction matche les rôles de l'usager.
Le filtre ajouté via l'interface se rapporte à l'usager connecté (comme le "filter-user" existant) mais pour la partie API on veut pouvoir pointer un usager précis, ici il y a eu quelques hésitations pour au final exploiter le paramètre filter-user-uuid créé pour filter-user, plutôt qu'introduire un nouveau (filter-user-function-uuid). L'avantage immédiat est qu'il suffit côté combo de pointer une vue personnalisée filtrée sur les fonctions de l'usager et de cocher "Restreindre aux fiches liées à l’usager connecté" et ça tapera juste.
Ça limite un peu, ça ne couvre pas la situation où on voudrait une requête type "toutes les fiches associées à l'usager A et pour lesquelles l'usager B a telle fonction, mais personne n'a demandé ça.
Il y aura aussi certainement demande pour pouvoir faire ce type de requête via des filtres django mais ça sera un autre ticket.
Mis à jour par Lauréline Guérin il y a environ 2 ans
Dans #60785 j'ai ajouté les opérateurs eq et ne pour le filtre user-id, est-ce que du coup je les supprime pour éviter les confusions ?
(et on est d'accord qu'il n'est pas nécessaire de gérer des opérateurs pour le filtre user-function ?)
note: ça va conflicter avec les tickets sur les opérateurs
Mis à jour par Frédéric Péters il y a environ 2 ans
Dans #60785 j'ai ajouté les opérateurs eq et ne pour le filtre user-id, est-ce que du coup je les supprime pour éviter les confusions ?
(et on est d'accord qu'il n'est pas nécessaire de gérer des opérateurs pour le filtre user-function ?)
Oui, je pense que ça n'est pas nécessaire, ni filter-user ni filter-submission-agent.
note: ça va conflicter avec les tickets sur les opérateurs
J'ai l'impression que oui mais sans trop être pénible non plus; si tu préfères ça me va de passer #60785 d'abord et je m'occuperai du rebase; par contre pour #61271 côté calendrier ça doit venir plus tard.
Mis à jour par Lauréline Guérin il y a environ 2 ans
Non ça ira, je passerai les tickets opérateur après celui-ci, si je supprime les opérateurs pour filter-user et filter-submission-agent le rebase ne devrait pas faire trop mal.
Mis à jour par Lauréline Guérin il y a environ 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Frédéric Péters il y a environ 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 34da0a014cdb805ae97a2ed4327b15176fe3f07b Author: Frédéric Péters <fpeters@entrouvert.com> Date: Mon Feb 7 16:01:01 2022 +0100 backoffice: add filter on user function (#58881) commit 79cbaf02b72bba23892a296512d0793fa183d76d Author: Frédéric Péters <fpeters@entrouvert.com> Date: Mon Feb 7 14:57:36 2022 +0100 sql: add workflow_merged_roles_dict jsonb column (#58881) commit cf1ac90dd6e55a2065baa6125c3e4a1ccfe98a43 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Mon Feb 7 14:56:17 2022 +0100 workflows: move get_sorted_functions from view to model (#58881)
Mis à jour par Transition automatique il y a environ 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
formdata: handle function name variables with combined users and roles (#58881)