Projet

Général

Profil

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

Ajouté par Mikaël Ates il y a plus de 2 ans. Mis à jour il y a environ 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
23 novembre 2021
Echéance:
24 février 2022
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

On souhaite proposer des formulaires avec des champs listes sourcées sur des fiches, mais que la liste des fiches soit restreinte à :
  • 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

Lié à Combo - Development #58879: "Fiches", pouvoir restreindre la visibilité des fiches selon l'appartenance de l'usager connecté à une fonction de la ficheFermé23 novembre 202124 février 2022

Actions
Lié à Publik - Development #58887: Améliorations sur le backoffice des démarches.En cours

Actions
Lié à Combo - Development #58878: "contenu d'une fiche", pouvoir restreindre la visibilité de la cellule selon l'appartenance de l'usager connecté à une fonction de la ficheFermé23 novembre 202124 février 2022

Actions

Révisions associées

Révision e9445f93 (diff)
Ajouté par Frédéric Péters il y a environ 2 ans

formdata: handle function name variables with combined users and roles (#58881)

Révision cf1ac90d (diff)
Ajouté par Frédéric Péters il y a environ 2 ans

workflows: move get_sorted_functions from view to model (#58881)

Révision 79cbaf02 (diff)
Ajouté par Frédéric Péters il y a environ 2 ans

sql: add workflow_merged_roles_dict jsonb column (#58881)

Révision 34da0a01 (diff)
Ajouté par Frédéric Péters il y a environ 2 ans

backoffice: add filter on user function (#58881)

Historique

#1

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é
#2

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

Mis à jour par Mikaël Ates il y a plus de 2 ans

#4

Mis à jour par Mikaël Ates il y a plus de 2 ans

  • Description mis à jour (diff)
#5

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é
#6

Mis à jour par Mikaël Ates il y a plus de 2 ans

  • Echéance mis à 24 février 2022
#7

Mis à jour par Frédéric Péters il y a environ 2 ans

  • Assigné à mis à Frédéric Péters
#8

Mis à jour par Frédéric Péters il y a environ 2 ans

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.

#9

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

#10

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.

#11

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.

#12

Mis à jour par Lauréline Guérin il y a environ 2 ans

  • Statut changé de Solution proposée à Solution validée
#13

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

Mis à jour par Transition automatique il y a environ 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#15

Mis à jour par Transition automatique il y a environ 2 ans

Automatic expiration

Formats disponibles : Atom PDF