Adicione um formulário de contato para facilitar o gerenciamento de suporte:
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:
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
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):
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:
uap-python
Name
(campo de texto pré-preenchido com o nome completo do usuário - editável pelo usuário)Email
(apenas um rótulo) dizendo "A equipe Zenodo entrará em contato com você pelo seu e-mail Zenodo : Name
(campo de texto vazio)Email
(campo de texto vazio)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."
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.
[] O formulário requer algum estilo e trabalho no conteúdo (texto / descrições / tipos de questões a escolher, etc.)
@ 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
?