Zenodo: 全球:联系表

创建于 2016-11-20  ·  12评论  ·  资料来源: zenodo/zenodo

添加联系表单以简化支持管理:

  • 表格应该要求人们包括直接链接并且要准确。 例如,请参见https://github.com/support
  • 联系表单可以自动检测他们使用的浏览器和操作系统。
Enhancement

所有12条评论

我可以尝试添加此增强功能吗...?

@jainaman224是的,这实际上对我们的支持有很大帮助:)

主要想法是很多人联系我们(zenodo.org - 服务),关于常见问题,通常是:

  • 删除记录或将文件更新为某处的记录。
  • 用他们的帐户做一些事情。
  • 在页面上出现错误(500 秒等)。

它们通常不包含太多信息(例如提到的操作系统、浏览器),而且它们通常不指定要删除/更新的记录。 有时他们忘记提及他们的 Zenodo 电子邮件是什么(而且通常与他们给我们写信的电子邮件不同)。

主要想法是获取并包含尽可能多的信息,然后通过表单将其发送给我们,因此

  1. 捕获基本代理信息(浏览器、操作系统、IP)。 并通过电子邮件发送。
  2. 捕获已登录的用户并在电子邮件中发送他的电子邮件 + 用户 ID(表单应建议先登录)。
  3. 文本说明,指定它们应包含哪些信息:

    • 如果与问题相关,请记录 URL 或 DOI。

    • 如果他们从页面获取错误 ID(我们可以在 Sentry 上轻松检查)

    • 可能会导致他们崩溃的页面的 URL

    • 如果与 GitHub 相关,则为 GItHub 用户名/组织名称/reponame。

任务是实现第 1. 和 2. 点,稍后我们可以一起想到表单上的漂亮文字(第 3. 点)。

此表单可能应该向我们发送一封电子邮件,其中电子邮件正文的底部可以包含带有此信息的预格式化字符串。

我是否需要实施此表格https://zenodo.org/support ...?

当前的“/support”页面只是没有任何形式的静态信息 - 现在应该保持这样。

您需要创建一个新页面(例如:“/support-form”),您将在其中定义一些类似于 GitHub 的简单联系表单: https :

这是 Zenodo 中的一个表单示例(这个特定的表单用于由管理员删除记录):

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

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

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

另一个不错的功能是在表单上包含一个单选按钮,用户可以在其中选择问题的类别,例如:

技术支持、Zenodo 政策、外展、其他(稍后定义的类别)。

此信息可以作为已发送电子邮件的前缀:

“[技术支持]:标题的其余部分”

那会很好。 :+1:

对于用户代理解析使用https://github.com/ua-parser/uap-python

用户应该能够看到发送给我们的信息(并且可能能够选择退出)

@lnielsen一旦基本结构获得批准,我可以稍后包含它吗?

除了一些一般性的修复, @jainaman224的 PR 看起来真的很酷: https :

为了使此功能可用于生产,需要进行一些进一步的更改:

  • [ ] 使用uap-python
  • [ ] 表格应该有两种变体。

    • 如果您已登录,它应该预先填写并显示:

    • [x] Name (带有用户全名的预填充文本字段 - 可由用户编辑)

    • [x] Email (只是一个标签)说“Zenodo 工作人员会通过您的 Zenodo 电子邮件回复您: [email protected] ”(不可修改)

    • 如果您未登录:

    • [x] Name (空文本字段)

    • [x] Email (空文本字段)

  • [x] ReCaptcha 测试,所以我们不会收到垃圾邮件
  • [x] 表单应显示将从用户发送的 User-Agent 信息,即:
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)

旁边应该有一个复选框(默认启用),上面写着“[x] 发送浏览器和系统信息”。

  • [x] 类别应该在config.py配置,如下所示:
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."),
 (...)
]

当用户选择类别时,将显示下面的文本,其中添加了更多关于用户应在其消息中包含的内容的信息(取决于类别)。

  • [ ] 类别应该显示选择之间的平滑过渡,理想情况下没有太多(如果有)自定义 javascript,例如这个 bootstrap 元素: http :

  • [ ] 电子邮件成功发送给我们后,应向用户发送确认电子邮件。
    这种类型可以防止用户向我们提出问题然后没有得到答复,因为表单出于某种原因没有向我们发送他的消息。 在表格上应该说明他应该在 20 分钟内在他的收件箱中收到一封确认电子邮件 - 如果没有,他应该重试或直接向我们发送电子邮件至[email protected]

  • [ ] 应该可以与消息一起上传文件,该消息应作为电子邮件附件发送给我们。 最大文件大小应该是可配置的,并且对于较大的文件显示错误,建议将 URL 包含到文件中。 它不应该存储在任何地方,而是通过应用程序(内存)传递并直接在任务中作为电子邮件附件发送。

    • [ ] 由于 celery 的文件序列化问题,当前在 webapp 进程中发送。 应该通过发送原始字节和文件名然后在任务中组装文件对象来修复。
    • [ ] 应该可以选择多个文件进行发送。
    • [ ] 检查我们是否可以使用一些更好的拖放文件选择器小部件。
  • [ ] 表单需要一些样式和内容处理(文本/描述/问题类型等)

  • [] 模块需要使用 python linter 检查。

@jainaman224你的贡献已经是一个好的开始,我知道这些是一些额外的要求。 如果您仍然感兴趣,我们非常欢迎您继续为此工作,但要知道接受您的第一个贡献不是强制性的! :)

@lnielsen @krzysztof我认为我们不需要用户提供太多信息。 所以,走这条路会更好https://github.com/jainaman224/zenodo/blob/patch-1/zenodo/modules/pages/views.py#L57 #L60。 如果我错了,请纠正我。
谢谢

@lnielsen @krzysztof为什么最好使用uap-python

此页面是否有帮助?
0 / 5 - 0 等级