Que um download direto de .csv seja fornecido a partir do modal
Isso seria muito mais simples da perspectiva do usuário
Sugestão 2
Que os e-mails primários sejam relatados neste download (ou que haja uma opção para isso)
Isso permitiria a exportação fácil de participantes quando necessário para outros fins relacionados ao evento.
Eu tenho uma consulta no Data Explorer para isso no momento, que funciona bem o suficiente, mas requer muita manipulação para dar aos organizadores do evento (ou seja, o OP) acesso a ela:
-- [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
Acabei de ser pego por isso novamente hoje, quando um de nossos administradores perguntou como ver quando as pessoas haviam clicado em “Indo”.
O problema de UX que tivemos foi que clicar em Exportar evento não parece realmente fazer nada (ou seja, não há feedback). Foi só quando notei que recebi algumas mensagens mais tarde (enquanto clicava várias vezes procurando erros no console) que percebi que realmente havia funcionado.
Compactar o arquivo parece adicionar muito atrito por valor zero. Qualquer CSV provavelmente será bem pequeno.
Seria bom organizar isso um pouco, pois é uma funcionalidade bastante útil (depois que você descobre como ela funciona).
Usamos a sintaxe [event] do Discourse (através do plugin Calendar) para agendar e coordenar reuniões oficiais do conselho — cada evento fica dentro de um tópico dedicado, e incentivamos os membros a confirmar presença usando a interface integrada.
O problema é: atualmente não temos uma maneira limpa de extrair esses dados de confirmação de presença em um formato utilizável. Para sessões de engajamento público, reuniões executivas e briefings internos, seria incrivelmente útil exportar:
Título do tópico do evento + URL
Nome de exibição / nome de usuário dos confirmados
Status da confirmação de presença (indo / interessado / não indo)
Endereço de e-mail (apenas para administradores, para registros de presença ou acompanhamento direto)
Carimbo de data/hora da confirmação de presença (se possível)
Nossos secretários e presidentes muitas vezes não usam o Discourse, então poder baixar um CSV e compartilhar a lista de presença com eles é essencial.
Compreensivelmente, a visibilidade do e-mail precisaria ser limitada por permissão à equipe do site ou moderadores de grupo — mas sem isso, a exportação perde a maior parte de seu valor administrativo.
Esse tipo de exportação estruturada melhoraria significativamente a utilidade do plugin para organizações do mundo real que usam o Discourse para coordenar reuniões offline.
Ficarei feliz em fornecer um exemplo de layout de .csv se for útil!
Esta consulta do explorador de dados irá longe para lhe dar o que você precisa:
-- [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
Se você criar um grupo para sua equipe administrativa e tornar esta consulta acessível a eles, provavelmente fará o trabalho muito bem.
Você precisará ensiná-los a usar o ID do Tópico e o que isso significa em termos de URL. Mas isso provavelmente é factível.
Sim, mas sua equipe administrativa provavelmente não deveria ser administradoras do seu site Discourse, a menos que realmente precisem desse nível de acesso.
Portanto, você pode torná-las administradoras completas e usar @admins, ou criar um novo grupo que as contenha. Em seguida, basta atribuir a consulta do Explorador de Dados a esse grupo (elas poderão acessá-la na guia Relatórios).