Zenodo: global: formulário de contato

Criado em 20 nov. 2016  ·  12Comentários  ·  Fonte: zenodo/zenodo

Adicione um formulário de contato para facilitar o gerenciamento de suporte:

  • O formulário deve pedir às pessoas que incluam links diretos e sejam precisas. Veja https://github.com/support por exemplo.
  • O formulário de contato pode detectar automaticamente qual navegador e sistema operacional eles estão usando.
Enhancement

Todos 12 comentários

Posso tentar adicionar este aprimoramento ...?

@ jainaman224 Sim, isso seria de grande ajuda para o nosso apoio :)

A ideia principal é que muitas pessoas nos contatem (zenodo.org - o serviço), sobre problemas comuns, que geralmente são:

  • Remover um registro ou atualizar um arquivo para um registro em algum lugar.
  • Fazendo algo com a conta deles.
  • Obtendo um erro em uma página (500s etc).

Muitas vezes, eles não incluem muitas informações (como o sistema operacional mencionado, navegador) e, muitas vezes, eles não especificam qual registro desejam remover / atualizar. Às vezes, eles se esquecem de mencionar qual é o seu e-mail Zenodo (e muitas vezes é diferente daquele de onde estão nos escrevendo).

A ideia principal seria buscar e incluir o máximo possível dessas informações e enviá-las para nós por meio do formulário, para

  1. Capture informações básicas do agente (navegador, sistema operacional, IP). E envie com o e-mail.
  2. Capture o usuário se ele estiver logado e envie seu e-mail + ID de usuário no e-mail (o formulário deve recomendar o login primeiro).
  3. Descrição do texto especificando quais informações devem ser incluídas:

    • Registre a URL ou DOI se for relevante para o problema.

    • ID de erro se eles obtiverem um de uma página (podemos facilmente verificar no Sentry)

    • URL de uma página que pode estar travando para eles

    • GItHub username / orgname / reponame se for relacionado ao GitHub.

A tarefa é implementar os pontos 1. e 2., podemos pensar em um bom texto no formulário (ponto 3.) juntos mais tarde.

Este formulário provavelmente deve nos enviar um e-mail, onde a parte inferior do corpo do e-mail pode incluir uma string pré-formatada com essas informações.

Preciso implementar este formulário https://zenodo.org/support ...?

A página "/ support" atual é apenas uma informação estática sem qualquer formulário - deve permanecer assim por enquanto.

Você precisaria criar uma nova página (por exemplo: "/ support-form"), onde definiria algum formulário de contato simples semelhante ao GitHubs: https://github.com/support

Aqui está um exemplo de um formulário no Zenodo (este em particular é para excluir registros pelo administrador):

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

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

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

Outro recurso interessante seria incluir um botão de opção no formulário, onde o usuário pode selecionar uma categoria do problema, por exemplo:

Suporte Técnico, Políticas Zenodo, Divulgação, Outros (categorias a serem definidas posteriormente).

Esta informação pode ir como um prefixo para o e-mail enviado:

"[Suporte Técnico]: O resto do título"

Seria ótimo. : +1:

Para análise de user agent, use https://github.com/ua-parser/uap-python

Um usuário deve ser capaz de ver quais informações são enviadas para nós (e provavelmente ser capaz de cancelar)

@lnielsen Posso incluí-lo mais tarde, quando uma estrutura básica for aprovada ...?

Tirando algumas correções gerais, o PR de @ jainaman224 já parece muito legal: https://github.com/zenodo/zenodo/pull/1008

Para tornar este recurso pronto para produção, algumas alterações adicionais são necessárias:

  • [] Use uap-python
  • [] Deve haver duas variantes do formulário.

    • Se você estiver conectado, ele deve preencher e exibir:

    • [x] Name (campo de texto pré-preenchido com o nome completo do usuário - editável pelo usuário)

    • [x] Email (apenas um rótulo) dizendo "A equipe Zenodo entrará em contato com você pelo seu e-mail Zenodo :

    • Se você não estiver logado:

    • [x] Name (campo de texto vazio)

    • [x] Email (campo de texto vazio)

  • [x] Teste ReCaptcha para que não recebamos SPAM
  • [x] O formulário deve exibir as informações do Agente do Usuário que serão enviadas do usuário, ou seja:
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)

Ao lado disso, deve haver uma caixa de seleção (habilitada por padrão) dizendo "[x] Enviar o navegador e as informações do sistema."

  • [x] A categoria deve ser configurável em config.py assim:
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."),
 (...)
]

Quando o usuário escolhe a categoria, é exibido um texto abaixo, que adiciona mais algumas informações do que o usuário deve incluir em sua mensagem (dependendo da categoria).

  • [] A categoria deve mostrar uma transição suave entre as escolhas, de preferência sem muito (se houver) javascript personalizado, por exemplo este elemento bootstrap: http://getbootstrap.com/javascript/#collapse

  • [] Um email de confirmação deve ser enviado ao usuário após o email ter sido enviado com sucesso para nós.
    Isso evita que o usuário nos faça uma pergunta e não obtenha uma resposta porque o formulário não nos envia sua mensagem por algum motivo. No formulário, deve ser declarado que ele deve receber um e-mail de confirmação em sua caixa de entrada em 20 minutos - se não, deve tentar novamente ou nos enviar um e-mail diretamente para [email protected]

  • [] Deve ser possível fazer o upload de um arquivo junto com a mensagem, que deve ser enviada para nós como anexo de e-mail. O tamanho máximo do arquivo deve ser configurável e exibir erro para arquivos maiores, sugerindo incluir a URL no arquivo. Ele não deve ser armazenado em nenhum lugar, mas passado pelo aplicativo (memória) e enviado como anexo de e-mail diretamente em uma tarefa.

    • [] Atualmente envio em processo de webapp devido a problemas de serialização de arquivo com aipo. Deve ser corrigido enviando os bytes brutos e o nome do arquivo e, em seguida, montando o objeto de arquivo dentro da tarefa.
    • [] Deve ser possível selecionar vários arquivos para envio.
    • [] Verifique se podemos usar algum widget seletor de arquivos de arrastar e soltar mais agradável.
  • [] O formulário requer algum estilo e trabalho no conteúdo (texto / descrições / tipos de questões a escolher, etc.)

  • [] O módulo precisa ser verificado com linters python.

@ jainaman224 Sua contribuição já é um bom começo e sei que esses são alguns requisitos extras. Você é mais do que bem-vindo para continuar trabalhando nisso se ainda estiver interessado, mas saiba que não é obrigatório aceitar sua primeira contribuição! :)

@lnielsen @krzysztof Acho que não precisamos de muitas informações do usuário. Então, ir por esse caminho seria melhor https://github.com/jainaman224/zenodo/blob/patch-1/zenodo/modules/pages/views.py#L57 # L60. Por favor corrija-me se eu estiver errado.
Obrigado

@lnielsen @krzysztof Por que é preferível usar uap-python ?

Esta página foi útil?
0 / 5 - 0 avaliações