Bug #5180
New user and group management interface
0%
Description
It uses jQuery dialogs for editing users and roles, and all refresh is ajax based.
Fichiers
Révisions associées
js: add purl.js (refs #5180)
manager: add gadjo as a submodule (refs #5180)
- Use STATICFILES_DIR and TEMPLATE_DIRS to load gadjo templates and
statics. - Use MANIFEST.in to install gadjo
manager: implement all views (refs #5180)
manager: l10n (refs #5180)
Historique
Mis à jour par Benjamin Dauvergne il y a presque 10 ans
- Statut changé de Nouveau à En cours
- Assigné à mis à Benjamin Dauvergne
Mis à jour par Benjamin Dauvergne il y a presque 10 ans
I duplicated #5180, I copy here initial comment by fpeters:
I had some mockups of those management pages, once created they would be linked from the portail-admin.
http://perso.entrouvert.org/~fred/portail-admin/mockups/authentic-utilisateurs-bis.html
http://perso.entrouvert.org/~fred/portail-admin/mockups/authentic-roles.html
Mis à jour par Benjamin Dauvergne il y a presque 10 ans
Full patchset can be cloned from http://repos.entrouvert.org/authentic.git/ on branch wip/manager. To test it you must go on http://localhost;8000/manager/users/
being logged with an user having permissions user.delete
, user.change
, user.add
, group.add
, group.delete
, group.change
, or being a superuser, which is faster to set.
Mis à jour par Frédéric Péters il y a presque 10 ans
De loin, sans l'avoir appliqué en local :
Je préférerais l'utilisation directe de gadjo plutôt que d'en recopier la presque intégralité ici.
Pour le javascript minifié, je préférerais qu'il se créer lors du build plutôt que de le distribuer; ou via un système comme django-compressor.
Mis à jour par Benjamin Dauvergne il y a presque 10 ans
C'est du work in progress, quand gadjo existera sur pypi j'en dépendrai, ou alors peut-être préfère tu que je l'importe comme sous-module git ? Pour la minification, le problème ne me parait pas lié à ce ticket mais on peut bien sûr ouvrir un autre ticket sur l'idée plus générale d'utiliser django-compressor plus systématiquement, mais à mon avis ce travail serait plus utile sur portail-citoyen qui génère plus de vues.
Mis à jour par Frédéric Péters il y a presque 10 ans
Ok, c'est bien de voir apparaitre cette demande ("quand gadjo existera sur pypi j'en dépendrai") maintenant, j'ai créé #5182 avec.
Je n'avais pas noté que c'était work in progress, je vais en tenir compte.
Mis à jour par Frédéric Péters il y a presque 10 ans
To test it you must go on http://localhost;8000/manager/users/ [...]
Le fichier authentic2/manager/urls.py dans la branche wip/manager n'a pas de mention d'une partie users/, uniquement roles/, il reste des commits à y pousser ?
Mis à jour par Benjamin Dauvergne il y a presque 10 ans
Bizarre j'ai ça dans le commit manager: implement users views
et je vois la même chose avec cgit:
diff --git a/authentic2/manager/urls.py b/authentic2/manager/urls.py index 0dcbd04..44fb86b 100644 --- a/authentic2/manager/urls.py +++ b/authentic2/manager/urls.py @@ -6,5 +6,9 @@ urlpatterns = patterns('authentic2.views', url(r'^roles/$', views.roles, name='a2-manager-roles'), url(r'^roles/add/$', views.role_add, name='a2-manager-role-add'), url(r'^roles/(?P<role_ref>[^/]*)/$', views.role, name='a2-manager-role'), + url(r'^roles/(?P<role_ref>[^/]*)/edit/$', views.role_edit, name='a2-manager-role-edit'), + url(r'^users/$', views.users, name='a2-manager-users'), + url(r'^users/add/$', views.user_add, name='a2-manager-user-add'), + url(r'^users/(?P<pk>[^/]*)/$', views.user_edit, name='a2-manager-user-edit'), url(r'^', include('django_select2.urls')), )
Mis à jour par Frédéric Péters il y a presque 10 ans
Je ne sais pourquoi il ne m'avait pas pris tous les commits de la branche, c'est ok maintenant.
Mis à jour par Frédéric Péters il y a presque 10 ans
À l'utilisation, et pour une partie grossièrement présentées dans le diff ci-joint, voici mes notes et des modifications que je suggérerais :
- suppression des liens transversaux "Users management" et "Roles management", ils ont là une position inattendue, et il doit y avoir une page générale /manager/ qui les reprend (c'est en tout cas le cas depuis le portail admin).
- ajout d'un bouton "Rechercher" dans les formulaires de recherche (et suppression du bouton "Effacer"), input type="search" sur le champ d'entrée.
- montée au niveau de la page de l'information sur le rôle sélectionné, avec les liens "add role" (quand pas de rôle sélectionné) et "edit" et "delete" (quand un rôle sélectionné) à la même position que sur la page des utilisateurs (et que sur les pages de passerelle)
- (à voir) position de la recherche dans la page d'un rôle, au-dessus du tableau ça ne me semblait pas aller, je l'ai déplacée dans la barre latérale, mais ça pourrait peut-être aller sous le tableau.
- dans le formulaire derrière "Ajouter un utilisateur à ce rôle :", il ne faudrait pas répéter "utilisateur".
- dans les entêtes de colonne, il ne faudrait pas la capitalisation (elle se fait dans tables2, class Column, propriété header, je ne sais pas s'il y a un moyen propre de modifier ça).
- dans le tableau listant les utilisateurs possédant un rôle, je mettrais en bout de ligne une icône "retirer" (icon-remove-sign, f057 dans font awesome). (plutôt que le context menu).
- idéalement il y aurait un message quand on tente d'ajouter un utilisateur disposant déjà du rôle (ou plus idéal encore, qu'il ne soit pas proposé dans le <select>)
Mis à jour par Benjamin Dauvergne il y a presque 10 ans
Frédéric Péters a écrit :
À l'utilisation, et pour une partie grossièrement présentées dans le diff ci-joint, voici mes notes et des modifications que je suggérerais :
- suppression des liens transversaux "Users management" et "Roles management", ils ont là une position inattendue, et il doit y avoir une page générale /manager/ qui les reprend (c'est en tout cas le cas depuis le portail admin).
Ok, et je pointe le lien accueil dessus en absence d'un setting qui fait pointer celui-ci sur le portail-admin.
- ajout d'un bouton "Rechercher" dans les formulaires de recherche (et suppression du bouton "Effacer"), input type="search" sur le champ d'entrée.
Comment vide-t-on ce champ recherche ? Dans mon idée le bouton Effacer deviendrait une simple croix après passage du webdesign :)
- montée au niveau de la page de l'information sur le rôle sélectionné, avec les liens "add role" (quand pas de rôle sélectionné) et "edit" et "delete" (quand un rôle sélectionné) à la même position que sur la page des utilisateurs (et que sur les pages de passerelle)
Delete, je vois mais edit je ne comprends pas,
- (à voir) position de la recherche dans la page d'un rôle, au-dessus du tableau ça ne me semblait pas aller, je l'ai déplacée dans la barre latérale, mais ça pourrait peut-être aller sous le tableau.
Je vais tenter dessous.
- dans le formulaire derrière "Ajouter un utilisateur à ce rôle :", il ne faudrait pas répéter "utilisateur".
Ok.
- dans les entêtes de colonne, il ne faudrait pas la capitalisation (elle se fait dans tables2, class Column, propriété header, je ne sais pas s'il y a un moyen propre de modifier ça).
Bizarre à lire le code c'est un fallback quand on utilise pas de queryset, sinon c'est sensé prendre l'attribute verbose_name du champ du modèle, à rechercher.
- dans le tableau listant les utilisateurs possédant un rôle, je mettrais en bout de ligne une icône "retirer" (icon-remove-sign, f057 dans font awesome). (plutôt que le context menu).
Ok.
- idéalement il y aurait un message quand on tente d'ajouter un utilisateur disposant déjà du rôle (ou plus idéal encore, qu'il ne soit pas proposé dans le <select>)
Je préfère le message, l'autre solution ne donne pas de raison quand à l'absence de l'utilisateur dans la liste.
Mis à jour par Frédéric Péters il y a presque 10 ans
- ajout d'un bouton "Rechercher" dans les formulaires de recherche (et suppression du bouton "Effacer"), input type="search" sur le champ d'entrée.
Comment vide-t-on ce champ recherche ? Dans mon idée le bouton Effacer deviendrait une simple croix après passage du webdesign :)
Avec input type="search" il y a une petite croix qui apparait.
http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_input_type_search
- montée au niveau de la page de l'information sur le rôle sélectionné, avec les liens "add role" (quand pas de rôle sélectionné) et "edit" et "delete" (quand un rôle sélectionné) à la même position que sur la page des utilisateurs (et que sur les pages de passerelle)
Delete, je vois mais edit je ne comprends pas,
Tu ne comprends pas quoi ? C'est le lien "Edit" qui existe déjà, il est déplacé vers la barre supérieure.
Mis à jour par Benjamin Dauvergne il y a presque 10 ans
Frédéric Péters a écrit :
- ajout d'un bouton "Rechercher" dans les formulaires de recherche (et suppression du bouton "Effacer"), input type="search" sur le champ d'entrée.
Comment vide-t-on ce champ recherche ? Dans mon idée le bouton Effacer deviendrait une simple croix après passage du webdesign :)
Avec input type="search" il y a une petite croix qui apparait.
http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_input_type_search
Vu.
- montée au niveau de la page de l'information sur le rôle sélectionné, avec les liens "add role" (quand pas de rôle sélectionné) et "edit" et "delete" (quand un rôle sélectionné) à la même position que sur la page des utilisateurs (et que sur les pages de passerelle)
Delete, je vois mais edit je ne comprends pas,
Tu ne comprends pas quoi ? C'est le lien "Edit" qui existe déjà, il est déplacé vers la barre supérieure.
Ok vu.
Mis à jour par Benjamin Dauvergne il y a presque 10 ans
Voilà j'ai intégré toutes les remarques, j'ai laissé le champ recherche à gauche finalement.
Mis à jour par Frédéric Péters il y a plus de 9 ans
It would be nice if two latest commits ("integrate fred diff to templates" and "integrate comments from #5180") would be integrated into previous commits; also I would prefer to have gadjo used as a git submodule for the time being (this would be changed once it gets on pypi).
Mis à jour par Benjamin Dauvergne il y a plus de 9 ans
- Fichier
0001-manager-static-add-jquery.form.patchsupprimé
Mis à jour par Benjamin Dauvergne il y a plus de 9 ans
- Fichier
0002-manager-static-add-purl.js.patchsupprimé
Mis à jour par Benjamin Dauvergne il y a plus de 9 ans
- Fichier
0003-manager-static-add-jquery-ui-contextmenu.patchsupprimé
Mis à jour par Benjamin Dauvergne il y a plus de 9 ans
- Fichier
0004-start-manager-app-import-gadjo-theme.patchsupprimé
Mis à jour par Benjamin Dauvergne il y a plus de 9 ans
- Fichier
0005-manager-implement-role-view.patchsupprimé
Mis à jour par Benjamin Dauvergne il y a plus de 9 ans
- Fichier
0006-manager-js-import-gadjo.js.patchsupprimé
Mis à jour par Benjamin Dauvergne il y a plus de 9 ans
- Fichier
0007-manager-implement-users-views.patchsupprimé
Mis à jour par Benjamin Dauvergne il y a plus de 9 ans
- Fichier 0001-js-add-jquery.form.patch 0001-js-add-jquery.form.patch ajouté
- Fichier 0002-js-add-purl.js.patch 0002-js-add-purl.js.patch ajouté
- Fichier 0003-manager-add-gadjo-as-a-submodule.patch 0003-manager-add-gadjo-as-a-submodule.patch ajouté
- Fichier 0004-manager-implement-all-views.patch 0004-manager-implement-all-views.patch ajouté
- Fichier 0005-manager-l10n.patch 0005-manager-l10n.patch ajouté
Nouveau patchs utilisant gadjo directement via un sous-module git.
Mis à jour par Benjamin Dauvergne il y a plus de 9 ans
Ces patchs dépendent des patchs actuellement en attente sur gadjo.
Mis à jour par Frédéric Péters il y a plus de 9 ans
- Fichier 0001-add-style-for-big-informational-message-5180.patch 0001-add-style-for-big-informational-message-5180.patch ajouté
There's a few french strings, at least in roles.html.
I thought I mentioned this already, the title of the username column in French is wrongly capitalised ("Nom D'Utilisateur").
Gadjo didn't have the necessary style for big-msg-info; patch attached.
I wish a jquery confirmation dialog would be used when asking for deletion (instead of native js confirm()), but let's keep that for later.
The second time the "add user" dialog is opened, the "groups" field is not visible.
In the "Edit user" dialog I would use "Save" as confirmation button, not "Edit".
In the "Edit role" dialog the confirmation button is "Create", this should definitely be "Save".
Mis à jour par Benjamin Dauvergne il y a plus de 9 ans
- Fichier 0001-js-destroy-dialog-when-closed.patch 0001-js-destroy-dialog-when-closed.patch ajouté
- Fichier 0006-managers-templates-add-missing-l10n.patch 0006-managers-templates-add-missing-l10n.patch ajouté
- Fichier 0007-manager-update-fr-l10n.patch 0007-manager-update-fr-l10n.patch ajouté
- Fichier 0008-manager-templates-change-default-button-caption-in-f.patch 0008-manager-templates-change-default-button-caption-in-f.patch ajouté
- Fichier 0009-managers-views-remove-action-caption-for-editing-use.patch 0009-managers-views-remove-action-caption-for-editing-use.patch ajouté
- Fichier 0010-managers-views-add-custom-default-button-title-for-R.patch 0010-managers-views-add-custom-default-button-title-for-R.patch ajouté
- Fichier 0011-manager-views-add-mixin-to-RoleAddView-to-get-expect.patch 0011-manager-views-add-mixin-to-RoleAddView-to-get-expect.patch ajouté
Frédéric Péters a écrit :
There's a few french strings, at least in roles.html.
Ok fixed on my side, I will attach discrete for each point later.
I thought I mentioned this already, the title of the username column in French is wrongly capitalised ("Nom D'Utilisateur").
I thought I had a fix for that but don't remember it, I have to look again in django-table code. The problem is fixed in the upstream trunk but still unreleased1.
Now looking at the code in tables.py
, I fixed the problem2 on the "email" column and not on the username because I do not see the problem on the later since on my side the translated string is "Identifiant", I think you just lack a run of compilemessages
in authentic source code.
Gadjo didn't have the necessary style for big-msg-info; patch attached.
Ok, works great.
The second time the "add user" dialog is opened, the "groups" field is not visible.
It only happens when using the close ([X]) button of the dialog and not with the Cancel button or the Save button. It happens because the close button does not destroy the content of the dialog but keep it as detached DOM nodes. When you open the dialog again the js script which initialize the group field target the wrong element (from the detached content), we need to catch the close event and destroy the dialog. Patch for gadjo attached.
In the "Edit user" dialog I would use "Save" as confirmation button, not "Edit".
Ok.
In the "Edit role" dialog the confirmation button is "Create", this should definitely be "Save".
Ok.
I attach discrete patches for review, I will rebase them later on the first ones.
1 https://github.com/bradleyayers/django-tables2/commit/bafce5887cb003ec434bc2c4c3c7478166b77d2f
2 The fix is to use mark_safe
from django.utils.safestring
on the verbose_name
value so that django-tables2 does not try to titlecase it.
Mis à jour par Benjamin Dauvergne il y a plus de 9 ans
- Statut changé de En cours à Solution déployée
Mis à jour par Benjamin Dauvergne il y a plus de 9 ans
- Statut changé de Solution déployée à Fermé
js: add jquery.form (refs #5180)