Zenodo: global: formulario de contacto

Creado en 20 nov. 2016  ·  12Comentarios  ·  Fuente: zenodo/zenodo

Agregue un formulario de contacto para permitir una administración de soporte más fácil:

  • El formulario debe pedir a las personas que incluyan enlaces directos y que sean precisos. Consulte https://github.com/support, por ejemplo.
  • El formulario de contacto puede detectar automáticamente qué navegador y sistema operativo están usando.
Enhancement

Todos 12 comentarios

¿Puedo intentar agregar esta mejora ...?

@ jainaman224 Sí, eso sería de gran ayuda para nuestro apoyo :)

La idea principal es que muchas personas se pongan en contacto con nosotros (zenodo.org - el servicio), sobre problemas comunes, que suelen ser:

  • Eliminar un registro o actualizar un archivo a un registro en algún lugar.
  • Haciendo algo con su cuenta.
  • Obteniendo un error en una página (500, etc.).

Muy a menudo, no incluyen mucha información (como el sistema operativo mencionado, el navegador) y, muy a menudo, no especifican qué registro quieren eliminar / actualizar. A veces se olvidan de mencionar cuál es su correo electrónico de Zenodo (y muy a menudo es diferente de aquel desde el que nos escriben).

La idea principal sería buscar e incluir tanta información como sea posible y enviárnosla a través del formulario, así

  1. Capture la información básica del agente (navegador, SO, IP). Y envíalo con el correo electrónico.
  2. Capture al usuario si ha iniciado sesión y envíe su correo electrónico + ID de usuario en el correo electrónico (el formulario debería recomendar iniciar sesión primero).
  3. Descripción de texto especificando qué información deben incluir:

    • Registre la URL o el DOI si es relevante para el problema.

    • ID de error si obtienen uno de una página (podemos verificarlo fácilmente en Sentry)

    • URL de una página que podría fallar para ellos

    • GItHub username / orgname / reponame si está relacionado con GitHub.

La tarea es implementar los puntos 1. y 2., podemos pensar en un texto agradable en el formulario (punto 3.) juntos más tarde.

Este formulario probablemente debería enviarnos un correo electrónico, donde la parte inferior del cuerpo del correo electrónico puede incluir una cadena preformateada con esta información.

¿Necesito implementar este formulario https://zenodo.org/support ...?

La página "/ support" actual es solo información estática sin ningún formulario; debería permanecer así por ahora.

Necesitaría crear una nueva página (por ejemplo: "/ support-form"), donde definiría un formulario de contacto simple similar a GitHubs: https://github.com/support

Aquí hay un ejemplo de un formulario en Zenodo (este en particular es para eliminar registros por parte del administrador):

Plantilla:
https://github.com/zenodo/zenodo/blob/master/zenodo/modules/deposit/templates/zenodo_deposit/delete.html

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

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

Otra característica interesante sería incluir un botón de opción en el formulario, donde el usuario puede seleccionar una categoría del problema, por ejemplo:

Soporte técnico, políticas de Zenodo, extensión, otros (categorías que se definirán más adelante).

Esta información podría ir como prefijo del correo electrónico enviado:

"[Soporte técnico]: el resto del título"

Que sería genial. : +1:

Para el análisis del agente de usuario, utilice https://github.com/ua-parser/uap-python

Un usuario debería poder ver qué información se nos envía (y probablemente poder optar por no participar)

@lnielsen ¿Puedo incluirlo más tarde una vez que se apruebe una estructura básica ...?

Aparte de algunas correcciones generales, las relaciones públicas de @ jainaman224 ya se ven muy bien: https://github.com/zenodo/zenodo/pull/1008

Para que esta función esté lista para producción, se requieren algunos cambios adicionales:

  • [] Utilice uap-python
  • [] Debe haber dos variantes del formulario.

    • Si ha iniciado sesión, debería precompletarse y mostrar:

    • [x] Name (campo de texto precargado con el nombre completo del usuario, editable por el usuario)

    • [x] Email (solo una etiqueta) que dice "El personal de Zenodo se comunicará con usted mediante su correo electrónico de Zenodo :

    • Si no ha iniciado sesión:

    • [x] Name (campo de texto vacío)

    • [x] Email (campo de texto vacío)

  • [x] Prueba ReCaptcha para que no recibamos SPAM
  • [x] El formulario debe mostrar la información de Usuario-Agente que será enviada por el usuario, es decir:
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)

Junto a eso, debería haber una casilla de verificación (habilitada de forma predeterminada) que diga "[x] Enviar la información del navegador y del sistema".

  • [x] La categoría debe ser configurable en config.py así:
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."),
 (...)
]

Cuando el usuario elige la categoría, se muestra un texto a continuación, que agrega más información de lo que el usuario debe incluir en su mensaje (según la categoría).

  • [] La categoría debe mostrar una transición suave entre las opciones, idealmente sin demasiado javascript personalizado (si lo hay), por ejemplo, este elemento de arranque: http://getbootstrap.com/javascript/#collapse

  • [] Se debe enviar un correo electrónico de confirmación al usuario después de que el correo electrónico se nos haya enviado correctamente.
    Esto evita que el usuario nos haga una pregunta y luego no obtenga una respuesta porque el formulario no nos envía su mensaje por alguna razón. En el formulario debe indicarse que debe recibir un correo electrónico de confirmación en su bandeja de entrada dentro de los 20 minutos; si no es así, debe volver a intentarlo o enviarnos un correo electrónico directamente a [email protected]

  • [] Debería ser posible cargar un archivo junto con el mensaje, que debe enviarse como archivo adjunto de correo electrónico. El tamaño máximo de archivo debe ser configurable y mostrar un error para archivos más grandes sugiriendo incluir la URL del archivo en su lugar. No debe almacenarse en ningún lugar, sino pasar a través de la aplicación (memoria) y enviarse como archivo adjunto de correo electrónico directamente en una tarea.

    • [] Actualmente se envía el proceso de la aplicación web debido a problemas de serialización de archivos con apio. Debe arreglarse enviando los bytes sin procesar y el nombre del archivo y luego ensamblando el objeto de archivo dentro de la tarea.
    • [] Debería ser posible seleccionar varios archivos para enviar.
    • [] Compruebe si podemos usar algún widget selector de archivos de arrastrar y soltar más agradable.
  • [] El formulario requiere algo de estilo y trabajo en el contenido (texto / descripciones / tipos de problemas para elegir, etc.)

  • [] Es necesario comprobar el módulo con linters de Python.

@ jainaman224 Su contribución ya es un buen comienzo, y sé que esos son algunos requisitos adicionales. Eres más que bienvenido a seguir trabajando en esto si todavía estás interesado, ¡pero debes saber que no es obligatorio aceptar tu primera contribución! :)

@lnielsen @krzysztof Creo que no necesitamos mucha información del usuario. Entonces, ir de esta manera sería mejor https://github.com/jainaman224/zenodo/blob/patch-1/zenodo/modules/pages/views.py#L57 # L60. Por favor, corríjame si estoy equivocado.
Gracias

@lnielsen @krzysztof ¿ uap-python ?

¿Fue útil esta página
0 / 5 - 0 calificaciones