Development #35773
import csv, ajout d'un rôle
0%
Description
- soit dans une colonne du csv (role id ? slug du rôle ?)
- soit dans l'interface d'import, on ajoute un menu déroulant où l'on choisit le/les rôle.s
Files
Related issues
History
Updated by Thomas Noël about 5 years ago
Si les rôles sont dans le CSV rapidement arrive la question : est-ce la liste exhaustive des rôles de chaque utilisateur ? Autrement dit, retire-t-on à chacun les rôles qui ne lui sont pas attribués dans le CSV ?
Updated by Marie Kuntz about 5 years ago
Cas posé uniquement par les modifications. Je propose qu'il s'agisse d'un ajout simple de rôle, ça me paraît plus facile plus l'import si on ne doit pas passer sur les rôles de chaque utilisateur pour vérifier qu'on n'en oublie pas.
Updated by Benjamin Dauvergne about 5 years ago
- Category set to 525
Réservons ce ticket pour un import via le CSV pas d'ajout à l'interface.
Il y a déjà un fonctionnalité de modifier prévue pour gérer ajout, suppression, écrasement.
Je dirai de ne prévoir que l'ajout d'un unique rôle par cellule, si besoin d'ajouter plusieurs rôles on fait plusieurs lignes, en général sur un import initial on ajoutera qu'un rôle (sinon c'est que la hiérarchie des rôles est mal branlée).
Par défaut je dirai de regarder le rôle uniquement dans l'OU cible ça évitera d'avoir à indiquer l'OU en général, on pourra désigner un rôle par son slug ou son nom, ça donnerait pour un import initial.
Par défaut le modifier serait "add" pour ajouter un rôle.
email key, first_name, last_name, _role_name jo.jo@triffouilly.fr,Jo,Jo,Agent
pour un import d'ajout de rôle, on a juste besoin de la clé et des rôles :
email key,_role_name jo.jo@triffouilly.fr,Agent jo.jo@triffouilly.fr,"Administrateur fonctionnel" toto@triffouilly.fr,Agent
pour un import de suppression de rôle, idem on a juste besoin de la clé et des rôles, mais on ajoutera le modifier "delete"
email key,_role_name delete jo.jo@triffouilly.fr,"Administrateur fonctionnel"
pour un écrasement on mettra "clear", on est sûr ensuite que les utilisateurs visés n'ont plus que ces rôles là :
email key,_role_name clear jo.jo@triffouilly.fr,Agent jo.jo@triffouilly.fr,"Administrateur fonctionnel" toto@triffouilly.fr,Agent
Des commentaires ?
Updated by Benjamin Dauvergne almost 5 years ago
Je note que le ticket est toujours en attente de commentaires des gens concernés par le ticket, en l’occurrence Marie et Thomas.
Updated by Valentin Deniaud almost 5 years ago
- File 0001-csv_import-allow-adding-roles-35773.patch 0001-csv_import-allow-adding-roles-35773.patch added
- Status changed from Nouveau to Solution proposée
- Patch proposed changed from No to Yes
Qui ne dit mot consent !
Le seul point problématique du patch est le contournement des contraintes d'unicité, qui feraient normalement échouer l'ajout multiple. Si la solution que j'ai choisie est OK, il reste juste à faire la doc dans l'interface, et afficher d'une jolie couleur les lignes dupliquées pour ajout de rôle, facile avec le nouveau flag process_role
ajouté sur ces lignes.
Updated by Benjamin Dauvergne almost 5 years ago
La façon dont est implémenté "role clear" ne va pas fonctionner avec plusieurs ligne, il faut un clear par user par import, là le clear est fait sur chaque ligne.
Il faudrait déterminer le comportement à adopter si on a des colonnes marquées update avec des ajouts de rôles sur plusieurs lignes, je serai pour l'interdire i.e. on applique quand même la contrainte d'unicité si on a autre chose qu'un ajout de rôle, ou alors on demande à ce que les colonnes soient vides; il faudrait des tests correspondants (plusieurs utilisateurs, plusieurs lignes).
Updated by Valentin Deniaud almost 5 years ago
comportement à adopter si on a des colonnes marquées update avec des ajouts de rôles sur plusieurs lignes
[...]
je serai pour l'interdire
Ce qui obligerait à créer deux fichiers si on a besoin de créer des utilisateurs avec plusieurs rôles. Il y a aussi potentiellement un obstacle technique, qui est qu'on découvrirait le problème au deuxième ajout de rôle pour un utilisateur, donc au final l'import sortirait des erreurs en ayant été à moitié exécuté.
À l'inverse, je trouve tout à fait cohérent de permettre des duplications de lignes quelque soit les colonnes (si une colonne d'ajout de rôle est présente) en marquant bien dans la doc « à part l'ajout de rôle, les valeurs des autres attributs seront ignorées dans les lignes supplémentaires pour un même utilisateur ». Ça peut être rendu clair dans le rendu avec les couleurs, en plus.
La raison c'est aussi que mon mode opératoire pour créer un tel fichier, mettons importer un utilisateur, ses attributs et deux rôles, ça serait d'écrire une première ligne avec tous les attributs et un premier rôle, et puis Vyp et je modifie juste la colonne rôle dans la ligne que je viens de dupliquer grâce au copain vim (et j'imagine que sous excel un agent procéderait pareil).
En fait j'ai peut-être simplement pas compris de quoi on voudrait se protéger avec cette interdiction ?
Updated by Valentin Deniaud almost 5 years ago
- File 0002-csv_import-allow-adding-roles-35773.patch added
- File 0001-csv_import-make-sure-has_errors-is-toggled-35773.patch 0001-csv_import-make-sure-has_errors-is-toggled-35773.patch added
- File 1571062365.png 1571062365.png added
Voici ce que ça donne, sans interdiction pour le moment. J'ai réparé le clear + ajouté le test correspondant, et puis j'ai amélioré pas mal de trucs.
Screenshot en bonus pour appuyer que les lignes d'ajout multiple sont intelligibles.
Updated by Valentin Deniaud almost 5 years ago
- File deleted (
0002-csv_import-allow-adding-roles-35773.patch)
Updated by Valentin Deniaud almost 5 years ago
- File 0002-csv_import-allow-adding-roles-35773.patch 0002-csv_import-allow-adding-roles-35773.patch added
(erreur d'indentation qui mettait le boxon)
Updated by Valentin Deniaud almost 5 years ago
- File 0002-csv_import-allow-adding-roles-35773.patch 0002-csv_import-allow-adding-roles-35773.patch added
Juste des modifs de style pour rendre le diff de #35774 plus sympa.
Updated by Valentin Deniaud almost 5 years ago
- Blocked by Bug #36832: import csv : certaines erreurs ne sont pas affichées added
Updated by Valentin Deniaud almost 5 years ago
- Blocks Development #35774: import csv, gestion du mot de passe added
Updated by Benjamin Dauvergne almost 5 years ago
- Status changed from Solution proposée to Solution validée
Updated by Valentin Deniaud almost 5 years ago
- File 0003-update-translations-35773.patch 0003-update-translations-35773.patch added
- File 0002-csv_import-allow-adding-roles-35773.patch 0002-csv_import-allow-adding-roles-35773.patch added
- Status changed from Solution validée to Solution proposée
J'ai ajouté le paragraphe de doc qui va bien et les traductions, je sais pas si il y a besoin de relecture mais here it goes.
Updated by Benjamin Dauvergne almost 5 years ago
- Status changed from Solution proposée to En cours
Tes traductions change le chemin de tous les fichiers, il faut les faire depuis la racine du projet, sinon c'est nickel.
Updated by Valentin Deniaud almost 5 years ago
- File 0003-update-translations-35773.patch 0003-update-translations-35773.patch added
- Status changed from En cours to Solution proposée
Oups, je me disais bien qu'il avait l'air malade ce diff.
Updated by Benjamin Dauvergne almost 5 years ago
- Status changed from Solution proposée to Solution validée
Gogogo.
Updated by Valentin Deniaud almost 5 years ago
- Status changed from Solution validée to Résolu (à déployer)
commit 7f6385853211c6accfc296540756b9f094add8de Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Mon Oct 21 17:34:03 2019 +0200 update translations (#35773) commit f12353d81cc07b51adb7579b853b2568e8c7bb70 Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Wed Oct 9 15:29:24 2019 +0200 csv_import: allow adding roles (#35773) commit 64157da70c5f18c133f71c3245d204d33f0e7cf0 Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Mon Oct 14 15:42:16 2019 +0200 csv_import: make sure has_errors is toggled (#35773)
Updated by Frédéric Péters almost 5 years ago
- Status changed from Résolu (à déployer) to Solution déployée
csv_import: make sure has_errors is toggled (#35773)