Zenodo: global : formulaire de contact

Créé le 20 nov. 2016  ·  12Commentaires  ·  Source: zenodo/zenodo

Ajoutez un formulaire de contact pour faciliter la gestion du support :

  • Le formulaire doit demander aux gens d'inclure des liens directs et d'être précis. Voir https://github.com/support par exemple.
  • Le formulaire de contact peut détecter automatiquement le navigateur et le système d'exploitation qu'ils utilisent.
Enhancement

Tous les 12 commentaires

Puis-je essayer d'ajouter cette amélioration...?

@jainaman224 Oui, cela serait en fait d'une grande aide pour notre support :)

L'idée principale est que de nombreuses personnes nous contactent (zenodo.org - le service), à ​​propos de problèmes courants, qui sont généralement :

  • Supprimer un enregistrement ou mettre à jour un fichier vers un enregistrement quelque part.
  • Faire quelque chose avec leur compte.
  • Obtenir une erreur sur une page (500s, etc.).

Très souvent, ils n'incluent pas beaucoup d'informations (telles que le système d'exploitation mentionné, le navigateur) et très souvent, ils ne précisent pas quel enregistrement ils souhaitent supprimer/mettre à jour. Parfois, ils oublient de mentionner quel est leur e-mail Zenodo (et très souvent, il est différent de celui à partir duquel ils nous écrivent).

L'idée principale serait de récupérer et d'inclure autant d'informations que possible et de nous les envoyer via le formulaire, donc

  1. Capturez les informations de base sur l'agent (navigateur, système d'exploitation, IP). Et envoyez-le avec l'e-mail.
  2. Capturez l'utilisateur s'il est connecté et envoyez son e-mail + son identifiant dans l'e-mail (le formulaire doit recommander de se connecter en premier).
  3. Description textuelle précisant les informations à inclure :

    • Enregistrez l'URL ou le DOI s'il est pertinent pour le problème.

    • ID d'erreur s'ils en obtiennent un à partir d'une page (nous pouvons facilement le vérifier sur Sentry)

    • URL d'une page qui pourrait planter pour eux

    • GitHub username/orgname/reponame s'il est lié à GitHub.

La tâche est de mettre en œuvre les points 1. et 2., nous pouvons penser à un joli texte sur le formulaire (point 3.) ensemble plus tard.

Ce formulaire devrait probablement nous envoyer un e-mail, où la partie inférieure du corps de l'e-mail peut inclure une chaîne pré-formatée avec cette information.

Dois-je implémenter ce formulaire https://zenodo.org/support ... ?

La page "/support" actuelle n'est que des informations statiques sans aucune forme - elle devrait rester ainsi pour l'instant.

Vous devrez créer une nouvelle page (sous par exemple : "/support-form"), où vous définirez un formulaire de contact simple similaire à GitHubs : https://github.com/support

Voici un exemple de formulaire dans Zenodo (celui-ci est destiné à la suppression d'enregistrements par l'administrateur) :

Modèle:
https://github.com/zenodo/zenodo/blob/master/zenodo/modules/deposit/templates/zenodo_deposit/delete.html

Former:
https://github.com/zenodo/zenodo/blob/master/zenodo/modules/deposit/forms.py

Vue:
https://github.com/zenodo/zenodo/blob/master/zenodo/modules/deposit/views.py#L142 -L211

Une autre fonctionnalité intéressante serait d'inclure un bouton radio sur le formulaire, où l'utilisateur peut sélectionner une catégorie du problème, par exemple :

Support technique, Politiques Zenodo, Sensibilisation, Autre (catégories à définir ultérieurement).

Cette information pourrait servir de préfixe à l'e-mail envoyé :

"[Support technique] : le reste du titre"

Ce serait génial. :+1:

Pour l'analyse de l'agent utilisateur, utilisez https://github.com/ua-parser/uap-python

Un utilisateur devrait être en mesure de voir quelles informations nous sont envoyées (et probablement de pouvoir les refuser)

@lnielsen Puis-je l'inclure plus tard une fois qu'une structure de base est approuvée... ?

Mis à part quelques correctifs généraux, le PR de @jainaman224 a déjà l'air vraiment cool : https://github.com/zenodo/zenodo/pull/1008

Pour que cette fonctionnalité soit prête pour la production, d'autres modifications sont nécessaires :

  • [ ] Utilisez uap-python
  • [ ] Il devrait y avoir deux variantes du formulaire.

    • Si vous êtes connecté, il doit pré-remplir et afficher :

    • [x] Name (champ de texte pré-rempli avec le nom complet de l'utilisateur - modifiable par l'utilisateur)

    • [x] Email (seulement une étiquette) disant « Le personnel Zenodo vous répondra par votre email Zenodo :

    • Si vous n'êtes pas connecté :

    • [x] Name (champ de texte vide)

    • [x] Email (champ de texte vide)

  • [x] Test ReCaptcha pour ne pas recevoir de SPAM
  • [x] Le formulaire doit afficher les informations User-Agent qui seront envoyées par l'utilisateur, c'est-à-dire :
To better address your problem, the following information can be sent to us (recommended) alongside with your message:
Operating system: ...
Browser: ...
(more User-Agent info)

À côté de cela, il devrait y avoir une case à cocher (activée par défaut) disant "[x] Envoyer les informations du navigateur et du système".

  • [x] La catégorie devrait être configurable dans config.py comme ceci :
PAGES_SUPPORT_CATEGORIES = [
 ('Technical Support', "Please describe the error you are getting, include any error messages or link to screenshots which might be relevant"),
 ('File upload request', "Please include the URL of the updated file, and specify which record and file you want to replace. Please use publicly accessible URLs."),
 (...)
]

Lorsque l'utilisateur choisit la catégorie, un texte ci-dessous s'affiche, ce qui ajoute des informations supplémentaires sur ce que l'utilisateur doit inclure dans son message (selon la catégorie).

  • [ ] La catégorie doit afficher une transition en douceur entre les choix, idéalement sans trop (le cas échéant) de javascript personnalisé, par exemple cet élément d'amorçage : http://getbootstrap.com/javascript/#collapse

  • [ ] Un e-mail de confirmation doit être envoyé à l'utilisateur une fois que l'e-mail nous a été envoyé avec succès.
    Cela empêche l'utilisateur de nous poser une question et de ne pas obtenir de réponse car le formulaire ne nous envoie pas son message pour une raison quelconque. Sur le formulaire, il doit être indiqué qu'il devrait recevoir un e-mail de confirmation dans sa boîte de réception dans les 20 minutes. Sinon, il doit réessayer ou nous envoyer un e-mail directement à

  • [ ] Il devrait être possible de télécharger un fichier avec le message, qui devrait nous être envoyé en pièce jointe d'un e-mail. La taille maximale du fichier doit être configurable et afficher une erreur pour les fichiers plus volumineux, suggérant d'inclure l'URL du fichier à la place. Il ne doit pas être stocké n'importe où, mais transmis via l'application (mémoire) et envoyé en pièce jointe directement dans une tâche.

    • [ ] Envoi actuel du processus d'application Web en raison de problèmes de sérialisation de fichiers avec le céleri. Devrait être corrigé soit en envoyant les octets bruts et le nom de fichier, puis en assemblant l'objet fichier à l'intérieur de la tâche.
    • [ ] Doit être possible de sélectionner plusieurs fichiers à envoyer.
    • [ ] Vérifiez si nous pouvons utiliser un meilleur widget de sélection de fichiers par glisser-déposer.
  • [ ] La forme nécessite un certain style et un travail sur le contenu (texte/descriptions/types de problèmes à choisir, etc.)

  • [ ] Le module doit être vérifié avec des linters python.

@jainaman224 Votre contribution est déjà un bon début, et je sais que ce sont des exigences supplémentaires. Vous êtes plus que bienvenus pour continuer à travailler sur ce sujet si vous êtes toujours intéressé, mais sachez qu'il n'est pas obligatoire d'accepter votre première contribution ! :)

@lnielsen @krzysztof Je pense que nous n'avons pas besoin de beaucoup d'informations de la part de l'utilisateur. Donc, il serait préférable de suivre cette voie https://github.com/jainaman224/zenodo/blob/patch-1/zenodo/modules/pages/views.py#L57 #L60. S'il vous plait corrigez moi si je me trompe.
Merci

@lnielsen @krzysztof Pourquoi est-il préférable d'utiliser uap-python ?

Cette page vous a été utile?
0 / 5 - 0 notes