导出事件数据有点痛苦,电子邮件地址会很有用

使用 Creating and managing events 的功能,我觉得下载和使用 image 非常麻烦。

目前它使用与用户导出类似机制,提供给您:

  1. 一个 zip 文件,通过私信发送给对该帖子有编辑权限的人。
  2. 提供这些字段:
    username status first_answered_at last_updated_at

建议 1

从模态框中提供直接的 .csv 下载。

从用户角度来看,这将简单得多。

建议 2

在此下载中报告主要电子邮件(或提供此选项)。

这将允许轻松导出参与者,以便在活动的其他相关目的中使用。

目前我有一个数据探索器查询可以满足此需求,但需要大量调整才能让活动组织者(即发帖人)访问它:

-- [params]
-- int :post_id

WITH e AS (
  SELECT email, user_id
  FROM user_emails u
  WHERE u.primary = true
)

SELECT dpei.user_id, email, status, notified
FROM discourse_post_event_invitees dpei
JOIN e ON e.user_id = dpei.user_id
WHERE dpei.post_id = :post_id
ORDER BY status, email
3 个赞

今天我又遇到了这个问题,我们的一位管理员询问如何查看谁点击了“参加”。

我们遇到的用户体验问题是,点击“导出事件”似乎并没有实际起作用(即没有反馈)。直到我注意到(在我多次点击并查看控制台中的错误时)过了几条消息后,我才意识到它实际上已经奏效了。

压缩文件似乎增加了许多不便,但毫无价值。任何 CSV 文件可能都很小。

最好能稍微整理一下,因为它是一个非常实用的功能(一旦你弄清楚它是如何工作的)。

1 个赞

+1 — 我们强烈支持这一点。

我们使用 Discourse 的 [event] 语法(通过 Calendar 插件)来安排和协调官方委员会会议 — 每个活动都存在于一个专门的主题中,我们鼓励成员使用内置界面进行 RSVP。

问题是:我们目前没有一种干净的方法来以可用的格式提取 RSVP 数据。对于公开会议、执行会议和内部简报,能够导出以下内容将非常有用:

  • 活动主题标题 + URL
  • RSVP 者显示名称 / 用户名
  • RSVP 状态(参加 / 感兴趣 / 不参加)
  • 电子邮件地址(仅管理员可见,用于考勤记录或直接跟进)
  • RSVP 时间戳(如果可能)

我们的职员和主席通常不自己使用 Discourse,因此能够下载 CSV 并与他们共享出勤信息至关重要。

可以理解的是,电子邮件可见性需要限制为网站员工或组管理员的权限 — 但没有它,导出将失去大部分管理价值。

这种结构化导出将大大提高该插件对于使用 Discourse 协调线下会议的现实组织的使用价值。

如果需要,我很乐意提供一个示例 .csv 布局!

此数据浏览器查询将极大地帮助您获得所需内容:

-- [params]
-- int :topic_id

WITH user_emails AS (
  SELECT
    ue.user_id,
    ue.email
  FROM
    user_emails ue
  WHERE
    ue.primary = true
),
forum_timezone AS (
  SELECT
    value AS timezone
  FROM
    site_settings
  WHERE
    name = 'discourse_local_dates_email_timezone'
)

SELECT
  u.name AS display_name,
  u.username,
  ue.email,
  CASE dpei.status
    WHEN 0 THEN 'Going'
    WHEN 1 THEN 'Interested'
    WHEN 2 THEN 'Not Going'
  END AS status,
  to_char(dpei.created_at AT TIME ZONE 'UTC' AT TIME ZONE ft.timezone, 'YYYY-MM-DD HH24:MI:SS') AS rsvp_timestamp
FROM
  discourse_post_event_invitees dpei
JOIN
  posts p ON p.id = dpei.post_id
JOIN
  users u ON u.id = dpei.user_id
JOIN
  user_emails ue ON ue.user_id = dpei.user_id
JOIN
  forum_timezone ft ON true
WHERE
  p.topic_id = :topic_id
ORDER BY
  dpei.status, ue.email

如果您为管理员团队创建一个组,并让他们可以访问此查询,它很可能会很好地完成任务。
您需要教他们使用主题 ID,以及它在 URL 中的含义。但这可能是可行的。

1 个赞

我猜有一个为 admins 准备的种子组,对吧?

但是,您的行政人员除非确实需要访问权限,否则可能不应成为 Discourse 站点的管理员。

因此,您可以让他们成为完全管理员并使用 @admins,或者创建一个包含他们的组。然后,只需将数据浏览器查询分配给该组(他们可以在“报告”选项卡下访问它)。

2 个赞