Экспорт данных событий немного неудобен, а адреса электронной почты были бы полезны

Используя функционал Creating and managing events, я считаю довольно неудобным скачивать и использовать image.

В настоящее время используется механизм, аналогичный экспорту пользователей, который предоставляет:

  1. ZIP-файл через личное сообщение тем, у кого есть права на редактирование этого сообщения;
  2. следующие поля:
    username status first_answered_at last_updated_at

Предложение 1

Предоставить прямую загрузку .csv из модального окна.

Это было бы гораздо проще для пользователя.

Предложение 2

Указывать основные адреса электронной почты в этой загрузке (или предоставить такую возможность).

Это позволит легко экспортировать участников при необходимости для других целей, связанных с мероприятием.

У меня сейчас есть запрос для Data Explorer, который работает вполне хорошо, но требует значительных усилий, чтобы предоставить организаторам мероприятия (то есть автору исходного сообщения) к нему доступ:

-- [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 лайка

Сегодня снова столкнулся с этим, когда один из наших администраторов спросил, как посмотреть, кто нажал «Пойду».

Проблема с UX заключалась в том, что нажатие на «Экспорт события» не давало никакой видимой реакции (то есть отсутствовала обратная связь). Я понял, что функция сработала, только когда заметил несколько новых сообщений (поскольку нажимал несколько раз, пытаясь найти ошибки в консоли).

Архивация файла, похоже, лишь добавляет лишние сложности без какой-либо пользы. Любой CSV-файл, скорее всего, будет довольно небольшим.

Было бы неплохо немного доработать этот момент, так как функционал довольно полезен (после того как разберёшься, как он работает).

1 лайк

+1 — мы полностью поддерживаем это.

Мы используем синтаксис [event] Discourse (через плагин Calendar) для планирования и координации официальных заседаний совета — каждое событие размещается в отдельной теме, и мы рекомендуем участникам подтверждать участие через встроенный интерфейс.

Проблема в том, что у нас сейчас нет удобного способа извлечь эти данные о подтверждении участия в пригодном для использования формате. Для открытых сессий по вовлечению общественности, исполнительных заседаний и внутренних брифингов было бы невероятно полезно экспортировать:

  • Заголовок темы события + URL
  • Отображаемое имя / имя пользователя подтвердивших участников
  • Статус подтверждения (пойду / интересно / не пойду)
  • Адрес электронной почты (только для администраторов, для журналов посещаемости или прямой обратной связи)
  • Временную метку подтверждения (если возможно)

Наши секретари и председатели часто сами не используют Discourse, поэтому возможность скачать CSV-файл и поделиться данными о посещаемости с ними является критически важной.

Понятно, что видимость адресов электронной почты должна быть ограничена правами доступа для сотрудников сайта или модераторов групп, но без этого экспорт теряет большую часть своей административной ценности.

Такой структурированный экспорт значительно повысит полезность плагина для реальных организаций, использующих Discourse для координации очных встреч.

Готовы предоставить пример структуры .csv, если это будет полезно!

Этот запрос для Data Explorer во многом поможет вам получить所需ные данные:

-- [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

Если вы создадите группу для ваших администраторов и предоставите им доступ к этому запросу, это, скорее всего, отлично справится с задачей. Возможно, вам потребуется настроить параметр «Discourse Local Dates Email Timezone» (или изменить запрос, чтобы игнорировать его).

Вам нужно научить их использовать ID темы и объяснить, что это означает с точки зрения URL-адреса. Но это, вероятно, выполнимо.

1 лайк

Кажется, что группа admins уже существует по умолчанию, не так ли?

Да, но ваш административный персонал, вероятно, не должен быть администратором вашего сайта Discourse, если им действительно не требуется такой уровень доступа.

Так что вы можете либо сделать их полными администраторами и использовать @admins, либо создать новую группу, в которую их включите. Затем просто назначьте запрос Data Explorer этой группе (они смогут получить к нему доступ во вкладке Отчёты).

2 лайка