Project

General

Profile

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

Added by Mikaël Ates over 2 years ago. Updated over 2 years ago.

Status:
Fermé
Priority:
Normal
Target version:
-
Start date:
23 November 2021
Due date:
24 February 2022
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

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.


Files


Related issues

Related to Combo - Development #58879: "Fiches", pouvoir restreindre la visibilité des fiches selon l'appartenance de l'usager connecté à une fonction de la ficheFermé23 November 202124 February 2022

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

Actions
Related to 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 November 202124 February 2022

Actions

Associated revisions

Revision e9445f93 (diff)
Added by Frédéric Péters over 2 years ago

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

Revision cf1ac90d (diff)
Added by Frédéric Péters over 2 years ago

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

Revision 79cbaf02 (diff)
Added by Frédéric Péters over 2 years ago

sql: add workflow_merged_roles_dict jsonb column (#58881)

Revision 34da0a01 (diff)
Added by Frédéric Péters over 2 years ago

backoffice: add filter on user function (#58881)

History

#1

Updated by Mikaël Ates over 2 years ago

  • Related to Development #58879: "Fiches", pouvoir restreindre la visibilité des fiches selon l'appartenance de l'usager connecté à une fonction de la fiche added
#2

Updated by Mikaël Ates over 2 years ago

  • Subject changed from 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 to 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

Updated by Mikaël Ates over 2 years ago

#4

Updated by Mikaël Ates over 2 years ago

  • Description updated (diff)
#5

Updated by Mikaël Ates over 2 years ago

  • Related to 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 added
#6

Updated by Mikaël Ates over 2 years ago

  • Due date set to 24 February 2022
#7

Updated by Frédéric Péters over 2 years ago

  • Assignee set to Frédéric Péters
#8

Updated by Frédéric Péters over 2 years ago

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

Updated by Lauréline Guérin over 2 years ago

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

Updated by Frédéric Péters over 2 years ago

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

Updated by Lauréline Guérin over 2 years ago

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

Updated by Lauréline Guérin over 2 years ago

  • Status changed from Solution proposée to Solution validée
#13

Updated by Frédéric Péters over 2 years ago

  • Status changed from Solution validée to 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

Updated by Transition automatique over 2 years ago

  • Status changed from Résolu (à déployer) to Solution déployée
#15

Updated by Transition automatique about 2 years ago

Automatic expiration

Also available in: Atom PDF