Exportar dados de eventos é um pouco doloroso, e endereços de e-mail seriam úteis

Usando a funcionalidade Creating and managing events, acho bastante complicado baixar e usar o image.

Atualmente, ele usa um mecanismo semelhante ao User Export, fornecendo:

  1. um arquivo zip via PM para aqueles com privilégios de edição nessa postagem
  2. fornece esses campos:
    username\tstatus\tfirst_answered_at\tlast_updated_at

Sugestão 1

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
3 curtidas

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).

1 curtida

+1 — apoiamos fortemente isso.

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.

1 curtida

acho que existe um grupo semeado para administradores, não?

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).

2 curtidas