Projet

Général

Profil

Development #34238

import csv, permettre de télécharger un exemple de fichier

Ajouté par Frédéric Péters il y a presque 5 ans. Mis à jour il y a presque 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
22 juin 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

C'était quelque chose que j'avais exposé dans le mockup initial dans #32833, je trouve cela très pratique. (surtout qu'il n'y a aucune indication sur le format attendu).


Fichiers

Révisions associées

Révision ef31bcfb (diff)
Ajouté par Benjamin Dauvergne il y a presque 5 ans

manager: add help on users imports (#34238)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Il y a une documentation à écrire un exemple, à part le nom des colonnes je ne pense pas que ça sera très éclairant.

#2

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Est-ce qu'un truc comme cela irait ?

Le bouton fichier d'exemple retournant un truc comme cela :

username,email,first_name,last_name,first_name,last_name,title,birthdate,birthplace,birthcountry,preferred_username,preferred_givenname,birthdepartment,address_number,address_street,address_complement,address_zipcode,address_city,address_country,home_phone,home_mobile_phone,professional_mobile_phone,professional_phone,comment,validated,validation_context,validation_partner,validation_date,birthplace_insee,birthcountry_insee,creation_mode,creation_partner,creation_domain,address,phone
whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever
whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever
whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever
whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever
whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever
whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever
whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever
whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever
whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever
whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever,whatever

#3

Mis à jour par Frédéric Péters il y a presque 5 ans

Oui, en me disant aussi que le fichier d'exemple pourrait plutôt être un lien dans le help_text, pour ne pas avoir à déplier la section "Aide" pour y accéder; peut-être aussi placer l'aide sous la liste des imports, et elle pourrait comme ça tout le temps être dépliée.

Dans le fichier d'exemple, je pense que seule la ligne d'entête est utile.

#4

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

  • Assigné à mis à Benjamin Dauvergne
#5

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Voilà. J'ai ajouté en plus l'alignement à gauche des tableaux parce que centré c'est juste affreux; je le ferai ensuite sur les autres pages plus tard. Pourquoi centre-t-on actuellement ? C'est un peu contraire à toutes les règles de typographie sur les tableaux, non ?

#6

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

(les valeurs par défaut pour unique et globallu-unique sont fausse, je le vois à l'instant je vais corriger cela).

#7

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Corrigé + remplacement de <tt/> par <var/>.

#8

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

J'ai aussi ajouté plus des examples en ligne.

#9

Mis à jour par Frédéric Péters il y a presque 5 ans

Pourquoi centre-t-on actuellement ?

Pas trouvé d'historique, c'est ainsi dès le premier commit dans gadjo pour les tableaux qui ont class="main", sans retrouver où existaient des tableaux avec cette classe.

#10

Mis à jour par Frédéric Péters il y a presque 5 ans

Pas trouvé d'historique, c'est ainsi dès le premier commit dans gadjo pour les tableaux qui ont class="main", sans retrouver où existaient des tableaux avec cette classe.

Ça vient des premiers mockups de calebasse (9/2012), copié ainsi dans gadjo (3/2014), puis authentic a fait son /manager/ en utilisant gadjo et en posant la classe "main" sur ses tableaux (ce que je n'avais pas retrouvé initialement parce que via django-tables2).

#11

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Frédéric Péters a écrit :

Pas trouvé d'historique, c'est ainsi dès le premier commit dans gadjo pour les tableaux qui ont class="main", sans retrouver où existaient des tableaux avec cette classe.

Ça vient des premiers mockups de calebasse (9/2012), copié ainsi dans gadjo (3/2014), puis authentic a fait son /manager/ en utilisant gadjo et en posant la classe "main" sur ses tableaux (ce que je n'avais pas retrouvé initialement parce que via django-tables2).

Ouaip mais assez vite j'ai recalé à gauche certains trucs :

table.main th.name, table.main td.name, #user-table .link, #user-table .username, #user-table
.email, #user-table .first_name, #user-table .last_name, #user-table .ou {
        text-align: left;
}

J'ai créé #34245 pour discuter de la possibilité de revenir sur ce choix.

#12

Mis à jour par Frédéric Péters il y a presque 5 ans

Ça se voit dans ta capture, j'avais d'abord imaginé ça artefact de configurations locales particulières mais je l'ai eu aussi chez moi, les colonnes first_name/last_name sont doublées, avec comme résultat qu'un import donnera "L'entête « first_name » existe deux fois" (pareil pour last_name).

Aussi, le fichier proposé ainsi n'expose aucune colonne avec "key", ce qui rend l'import impossible ("Colonne clé manquante").

#13

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Frédéric Péters a écrit :

Ça se voit dans ta capture, j'avais d'abord imaginé ça artefact de configurations locales particulières mais je l'ai eu aussi chez moi, les colonnes first_name/last_name sont doublées, avec comme résultat qu'un import donnera "L'entête « first_name » existe deux fois" (pareil pour last_name).

Yep faut que j'évite de prendre les champs first/last_name si ils existent aussi en attribut.

Aussi, le fichier proposé ainsi n'expose aucune colonne avec "key", ce qui rend l'import impossible ("Colonne clé manquante").

Alors je ne sais pas trop quoi faire, je met email comme clé par défaut ? Dans l'idée que c'est comme cela qu'on fonctionne en général ?

#14

Mis à jour par Frédéric Péters il y a presque 5 ans

Alors je ne sais pas trop quoi faire, je met email comme clé par défaut ? Dans l'idée que c'est comme cela qu'on fonctionne en général ?

Ou qu'il n'y ait rien de précisé à ce niveau mais que dans l'analyse des colonnes présentes, il n'y ait pas arrêt si une colonne "key" n'est pas définie; genre de manière basique s'il y a une colonne "username" la prendre comme "key", sinon prendre la colonne "email", etc.

#15

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Frédéric Péters a écrit :

Alors je ne sais pas trop quoi faire, je met email comme clé par défaut ? Dans l'idée que c'est comme cela qu'on fonctionne en général ?

Ou qu'il n'y ait rien de précisé à ce niveau mais que dans l'analyse des colonnes présentes, il n'y ait pas arrêt si une colonne "key" n'est pas définie; genre de manière basique s'il y a une colonne "username" la prendre comme "key", sinon prendre la colonne "email", etc.

Dans ce cas, puisqu'on envisage un comportement par défaut je vais l'expliciter dans le fichier, donc si je produis une colonne username ce sera la clé sinon ce sera email.

#16

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

  • suppression doublon first_name/last_name en préférant l'attribut et son label
  • ajout du modificateur " key" à username ou email dans le fichier d'exemple
#17

Mis à jour par Emmanuel Cazenave il y a presque 5 ans

Verified : on comprends pas ce que ça veux dire.

Dans les exemples je rajouterai en premier un truc bateau genre :

Importing first and last name of users keyed by email

    email key,first_name,last_name
    john.doe@example.com,John,Doe

Ça fait redondant par rapport au fichier mais celui-ci saute moins aux yeux que les exemples.

Importing email, family_reference, first and last name of users from application app1, ensuring family_reference is unique.

    _source_name,_source_id,email,family_reference,first_name,last_name
    app1,1,john.doe@example.com,1234,John,Doe

Manque unique après family_reference.

#18

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Voilà.

Interdiff:

diff --git a/src/authentic2/manager/templates/authentic2/manager/user_imports.html b/src/authentic2/manager/templates/authentic2/manager/user_imports.html
index ad9e8f5c..59d30767 100644
--- a/src/authentic2/manager/templates/authentic2/manager/user_imports.html
+++ b/src/authentic2/manager/templates/authentic2/manager/user_imports.html
@@ -162,15 +162,21 @@
       {% endblocktrans %}
     </p>
     <h4>{% trans "Examples" %}</h4>
+    <p>Importing first and last name of users keyed by email</p>
+    <blockquote>
+      <pre>"email key",first_name,last_name
+john.doe@example.com,John,Doe
+</pre>
+    </blockquote>
     <p>Importing verified first and last name of users keyed by email</p>
     <blockquote>
-      <pre>email key,first_name verified,last_name verified
+      <pre>"email key","first_name verified","last_name verified" 
 john.doe@example.com,John,Doe
 </pre>
     </blockquote>
     <p>Importing email, family_reference, first and last name of users from application <var>app1</var>, ensuring family_reference is unique.</p>
     <blockquote>
-      <pre>_source_name,_source_id,email,family_reference,first_name,last_name
+      <pre>_source_name,_source_id,email,"family_reference unique",first_name,last_name
 app1,1,john.doe@example.com,1234,John,Doe
 </pre>
     </blockquote>
</pre>

#19

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Emmanuel Cazenave a écrit :

Verified : on comprends pas ce que ça veux dire.

C'est une notion interne à authentic, on ne peut pas vraiment expliquer.

#20

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Benjamin Dauvergne a écrit :

Emmanuel Cazenave a écrit :

Verified : on comprends pas ce que ça veux dire.

C'est une notion interne à authentic, on ne peut pas vraiment expliquer.

On peut à la rigueur décrire une des conséquences : l'attribut sera verrouillé pour les utilisateurs.

#21

Mis à jour par Emmanuel Cazenave il y a presque 5 ans

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

Benjamin Dauvergne a écrit :

On peut à la rigueur décrire une des conséquences : l'attribut sera verrouillé pour les utilisateurs.

Go avec cette précision.

#22

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit ef31bcfb4bf6a1dea4221dd35cc5d5683233b0e9
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Sun Jun 23 13:08:11 2019 +0200

    manager: add help on users imports (#34238)
#23

Mis à jour par Frédéric Péters il y a presque 5 ans

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

Formats disponibles : Atom PDF