Guia de referência do relatório do painel de administração

:bookmark: Este é um guia de referência para descrever como funcionam os Relatórios do Painel Administrativo, os dados que exibem, as consultas SQL correspondentes no Data Explorer e onde encontrar o código Ruby de cada relatório.

:person_raising_hand: Nível de usuário necessário: Equipe

O Discourse contém vários Relatórios do Painel Administrativo integrados que podem ser úteis para explorar estatísticas sobre uma comunidade. Para acessar esses relatórios, visite discourse.exemplo.com/admin/dashboard/reports no seu site (ou clique no link Relatórios no topo do painel). Observe que apenas usuários da equipe terão acesso a esses relatórios.

Os dados de todos os usuários de um site estão incluídos nesses relatórios (incluindo atividades da equipe, como visitar páginas administrativas). A única condição aplicada aos usuários nos relatórios é que eles sejam usuários “reais”, o que é usado para excluir o usuário system dos relatórios.

Plugins também podem adicionar relatórios ao painel com add_report(name, &block).

:gem: Os modelos Ruby para a maioria dos relatórios estão localizados em: discourse/app/models/concerns/reports/. Alguns relatórios também referenciam: discourse/app/models/report.rb

:bulb: Os tópicos dashboard-sql contêm todas as consultas SQL correspondentes que podem ser usadas para gerar relatórios idênticos aos Relatórios do Painel Administrativo. Essas consultas podem ser usadas no plugin Data Explorer e para Executar consultas do Data Explorer com a API do Discourse

:wrench: Para ocultar relatórios específicos do painel, use a configuração do site dashboard_hidden_reports.

Soluções aceitas

Exibe o total diário de postagens marcadas como soluções.

Código Ruby: discourse-solved/plugin.rb at main · discourse/discourse-solved · GitHub

Consulta SQL: Dashboard Report - Accepted Solutions

Logins de administradores

Lista de horários de login de administradores com localizações.

Código Ruby: discourse/app/models/concerns/reports/staff_logins.rb

Consulta SQL: Dashboard Report - Admin Logins

Anônimo

Número de novas visualizações de página por visitantes não logados em uma conta.

Código Ruby: discourse/app/models/concerns/reports/consolidated_page_views.rb

Consulta SQL: Dashboard Report - Anonymous

Favoritos

Número de novos tópicos e postagens marcados como favoritos.

Código Ruby: discourse/app/models/concerns/reports/bookmarks.rb

Consulta SQL: Dashboard Report - Bookmarks

Solicitações de API consolidadas

Estatísticas de uso da API por data, rastreando tanto solicitações regulares da API quanto solicitações de API de usuários.

Código Ruby: discourse/app/models/concerns/reports/consolidated_api_requests.rb at main · discourse/discourse · GitHub

Consulta SQL: Dashboard Report - Consolidated API Requests

Visualizações de página consolidadas

Visualizações de página para usuários logados, usuários anônimos e robôs de busca. Este é um relatório legado substituído pelo relatório Tráfego do site.

Código Ruby: discourse/app/models/concerns/reports/consolidated_page_views.rb

Consulta SQL: Dashboard Report - Consolidated Pageviews

Visualizações de página consolidadas com detecção de navegador (Descontinuado)

Visualizações de página para usuários logados, usuários anônimos, robôs de busca conhecidos e outros. Este relatório foi descontinuado e agora delega para o relatório Tráfego do site.

Código Ruby: discourse/app/models/concerns/reports/consolidated_page_views_browser_detection.rb

Consulta SQL: Dashboard Report - Consolidated Pageviews with Browser Detection

DAU/MAU

Número de membros que fizeram login no último dia dividido pelo número de membros que fizeram login no último mês — retorna uma % que indica a “aderência” da comunidade. Almeje >20%.

Código Ruby: discourse/app/models/concerns/reports/dau_by_mau.rb

Consulta SQL: Dashboard Report - DAU/MAU

Usuários engajados diariamente

Número de usuários que deram like ou postaram no último dia.

Código Ruby: discourse/app/models/concerns/reports/daily_engaged_users.rb

Consulta SQL: Dashboard Report - Daily Engaged Users

E-mails enviados

Número de novos e-mails enviados.

Código Ruby: discourse/app/models/concerns/reports/emails.rb

Consulta SQL: Dashboard Report - Emails Sent

Denúncias

Número de novas denúncias.

Código Ruby: discourse/app/models/concerns/reports/flags.rb

Consulta SQL: Dashboard Report - Flags

Status das denúncias

Lista dos status das denúncias, incluindo tipo de denúncia, autor, denunciante e tempo para resolução.

Código Ruby: discourse/app/models/concerns/reports/flags_status.rb

Consulta SQL: Dashboard Report - Flags Status

Likes

Número de novos likes.

Código Ruby: discourse/app/models/concerns/reports/likes.rb

Consulta SQL: Dashboard Report - Likes

Logado

Número de novas visualizações de página de usuários logados.

Código Ruby: discourse/app/controllers/admin/reports_controller.rb#L5

Consulta SQL: Dashboard Report - Logged In

Atividade de moderadores

Lista de atividades de moderadores, incluindo denúncias revisadas, tempo de leitura, tópicos criados, postagens criadas, mensagens privadas criadas e revisões.

Consulta SQL: Dashboard Report - Moderator Activity

Aviso de moderador

Número de avisos enviados por mensagens privadas de moderadores.

Código Ruby: discourse/app/models/concerns/reports/moderator_warning_private_messages.rb

Consulta SQL: Dashboard Report - Moderator Warnings

Novos colaboradores

Número de usuários que fizeram sua primeira postagem durante este período.

Código Ruby: discourse/app/models/concerns/reports/new_contributors.rb

Consulta SQL: Dashboard Report - New Contributors

Notificar moderadores

Número de vezes que moderadores foram notificados privadamente por uma denúncia.

Código Ruby: discourse/app/models/concerns/reports/notify_moderators_private_messages.rb

Consulta SQL: Dashboard Report - Notify Moderators

Notificar usuário

Número de vezes que usuários foram notificados privadamente por uma denúncia.

Código Ruby: discourse/app/models/concerns/reports/notify_user_private_messages.rb

Consulta SQL: Dashboard Report - Notify User

Sentimento geral

Número de postagens classificadas como positivas ou negativas pela IA “Sentimento”, em um período especificado.

Código Ruby: discourse-ai/lib/sentiment/entry_point.rb at main · discourse/discourse-ai · GitHub

Consulta SQL: Relatório do Painel - Sentimento geral

Visualizações de página

Número de novas visualizações de página de todos os visitantes. O mesmo que o total de Visualizações de página consolidadas.

O Discourse usa a seguinte consulta para determinar o total de visualizações de página:

Consulta SQL: Dashboard Report - Consolidated Pageviews

Edições de postagem

Número de novas edições de postagens.

Código Ruby: discourse/app/models/concerns/reports/post_edits.rb

Consulta SQL: Dashboard Report - Post Edits

Postagens

Novas postagens criadas durante o período de tempo selecionado.

Código Ruby: discourse/app/models/concerns/reports/posts.rb

Consulta SQL: Dashboard Report - Posts

Emoção da postagem

Número de postagens classificadas pela IA com uma das seguintes emoções: Tristeza, Surpresa, Medo, Raiva, Alegria, Nojo — agrupadas por nível de confiança do autor, em um período especificado.

Código Ruby: discourse-ai/lib/sentiment/entry_point.rb at main · discourse/discourse-ai · GitHub

Consulta SQL: Relatório do Painel - Emoção da postagem

Reações

Lista das reações mais recentes.

Código Ruby: discourse-reactions/plugin.rb at main · discourse/discourse-reactions · GitHub

Consulta SQL: Dashboard Report - Reactions

Cadastros

Novos registros de contas para este período.

Código Ruby: discourse/app/models/concerns/reports/signups.rb

Consulta SQL: Dashboard Report - Signups

Tráfego do site

Visualizações de página para navegadores logados, navegadores anônimos, robôs de busca e outro tráfego. Este é o relatório de tráfego principal, substituindo os relatórios legados de Visualizações de página consolidadas.

Código Ruby: discourse/app/models/concerns/reports/site_traffic.rb

Consulta SQL: Relatório do Painel - Tráfego do site

Logins suspeitos

Detalhes de novos logins que diferem suspeitosamente dos logins anteriores.

Código Ruby: discourse/app/models/concerns/reports/suspicious_logins.rb

Consulta SQL: Dashboard Report - Suspicious Logins

Sistema

Número de mensagens privadas enviadas automaticamente pelo Sistema.

Código Ruby: discourse/app/models/concerns/reports/system_private_messages.rb

Consulta SQL: Dashboard Report - System

Tempo para primeira resposta

Tempo médio (em horas) da primeira resposta a novos tópicos.

Código Ruby: discourse/app/models/concerns/reports/time_to_first_response.rb + discourse/discourse/blob/main/app/models/topic.rb#L1799-L1844

Consulta SQL: Dashboard Report - Time to First Response

Usuários mais ignorados / silenciados

Usuários que foram silenciados e/ou ignorados por muitos outros usuários.

Código Ruby: discourse/app/models/concerns/reports/top_ignored_users.rb

Consulta SQL: Dashboard Report - Top Ignored / Muted Users

Tópicos mais referenciados

Tópicos que receberam o maior número de cliques de fontes externas.

Código Ruby: discourse/app/models/concerns/reports/top_referred_topics.rb

Consulta SQL: Dashboard Report - Top Referred Topics

Principais referenciadores

Usuários listados pelo número de cliques em links que compartilharam.

Código Ruby: discourse/app/models/concerns/reports/top_referrers.rb

Consulta SQL: Dashboard Report - Top Referrers

Principais fontes de tráfego

Fontes externas que mais vincularam a este site.

Código Ruby: discourse/app/models/concerns/reports/top_traffic_sources.rb

Consulta SQL: Dashboard Report - Top Traffic Sources

Principais uploads

Lista todos os uploads por extensão, tamanho do arquivo e autor.

Código Ruby: discourse/app/models/concerns/reports/top_uploads.rb

Consulta SQL: Dashboard Report - Top Uploads

Principais usuários por likes recebidos

Top 10 usuários que receberam likes.

Código Ruby: discourse/app/models/concerns/reports/top_users_by_likes_received.rb

Consulta SQL: Dashboard Report - Top Users by Likes Received

Principais usuários por likes recebidos de um usuário com nível de confiança inferior

Top 10 usuários em um nível de confiança superior sendo curtidos por pessoas em um nível de confiança inferior.

Código Ruby: discourse/app/models/concerns/reports/top_users_by_likes_received_from_inferior_trust_level.rb

Consulta SQL: Dashboard Report - Top Users by Likes Received from a User with a Lower Trust Level

Principais usuários por likes recebidos de uma variedade de pessoas

Top 10 usuários que receberam likes de uma ampla gama de pessoas.

Código Ruby: discourse/app/models/concerns/reports/top_users_by_likes_received_from_a_variety_of_people.rb

Consulta SQL: Dashboard Report - Top Users by Likes Received From a Variety of People

Tópicos

Novos tópicos criados durante este período.

Código Ruby: discourse/app/models/concerns/reports/topics.rb

Consulta SQL: Dashboard Report - Topics

Tópicos sem resposta

Número de novos tópicos criados que não receberam resposta.

Código Ruby: discourse/app/models/concerns/reports/topics_with_no_response.rb

Consulta SQL: Dashboard Report - Topics with No Response

Estatísticas de visualização de tópicos

Top 100 tópicos por visualizações com divisões para anônimos e logados, filtráveis por categoria.

Código Ruby: discourse/app/models/concerns/reports/topic_view_stats.rb

Consulta SQL: Relatório do Painel - Estatísticas de visualização de tópicos

Termos de pesquisa em alta

Termos de pesquisa mais populares com suas taxas de cliques.

Código Ruby: discourse/app/models/concerns/reports/trending_search.rb

Consulta SQL: Dashboard Report - Trending Search Terms

Crescimento do nível de confiança

Número de usuários que aumentaram seu Nível de Confiança durante este período.

O relatório de Crescimento do Nível de Confiança está extraindo dados da tabela user_histories no banco de dados do Discourse. Especificamente, este relatório está contando o número de vezes que um user_histories.action é registrado para um aumento no nível de confiança de um usuário.

Código Ruby: discourse/app/models/concerns/reports/trust_level_growth.rb

Consulta SQL: Dashboard Report - Trust Level Growth

Políticas não aceitas

Este relatório do painel identifica tópicos com políticas que não foram aceitas por certos usuários.

Código Ruby: discourse-policy/plugin.rb at main · discourse/discourse-policy · GitHub

Consulta SQL: Dashboard Report - Unaccepted Policies

Proporção de denúncias de usuários

Lista de usuários ordenada pela proporção de resposta da equipe às suas denúncias (discordado para concordado).

Código Ruby: discourse/app/models/concerns/reports/user_flagging_ratio.rb

Consulta SQL: Dashboard Report - User Flagging Ratio

Notas de usuário

Lista das notas de usuário mais recentes.

Código Ruby: discourse-user-notes/plugin.rb at main · discourse/discourse-user-notes · GitHub

Consulta SQL: Dashboard Report - User Notes

Visualizações de perfil de usuário

Total de novas visualizações de perfis de usuário.

Código Ruby: discourse/app/models/concerns/reports/profile_views.rb

Consulta SQL: Dashboard Report - User Profile Views

Visitas de usuário

O número total de visitas de usuários logados no fórum para o período de tempo selecionado (hoje, ontem, últimos 7 dias, etc.).

Uma Visita de Usuário é contada sempre que um usuário logado único visita o site, até uma vez por dia. Por exemplo, se um usuário visitou um site todos os dias em uma semana, o Discourse contaria isso como 7 visitas de usuário.

Código Ruby: discourse/app/models/concerns/reports/visits.rb

Consulta SQL: Dashboard Report - User Visits

Visitas de usuário (mobile)

Número de usuários logados únicos que visitaram usando um dispositivo móvel.

Código Ruby: discourse/app/models/concerns/reports/mobile_visits.rb

Consulta SQL: Dashboard Report - User Visits

Usuário para Usuário (excluindo respostas)

Número de mensagens privadas recém-iniciadas.

Código Ruby: discourse/app/models/concerns/reports/user_to_user_private_messages.rb

Consulta SQL: Dashboard Report - User-to-User

Usuário para Usuário (com respostas)

Número de todas as novas mensagens privadas e respostas.

Código Ruby: discourse/app/models/concerns/reports/user_to_user_private_messages_with_replies.rb

Consulta SQL: Dashboard Report - User-to-User

Usuários por Nível de Confiança

Número de usuários agrupados por nível de confiança.

Código Ruby: discourse/app/models/concerns/reports/users_by_trust_level.rb

Consulta SQL: Dashboard Report - Users Per Trust Level

Usuários por Tipo

Número de usuários agrupados por administrador, moderador, suspenso e silenciado.

Código Ruby: discourse/app/models/concerns/reports/users_by_type.rb

Consulta SQL: Dashboard Report - Users Per Type

Visualizações de página de robôs de busca

Total de visualizações de página de robôs de busca ao longo do tempo.

Código Ruby: discourse/app/models/report.rb

Consulta SQL: Dashboard Report - Web Crawler Pageviews

User agents de robôs de busca

Lista de user agents de robôs de busca, ordenada por visualizações de página.

Código Ruby: discourse/app/models/concerns/reports/web_crawlers.rb

Consulta SQL: Dashboard Report - Web Crawler User Agents

18 curtidas

Não vejo um link para isso em /admin. Estou deixando de ler? Pareceria que isso deveria ser mais fácil de descobrir. Acho que eu sabia que esses relatórios estavam aqui, mas procurei e não consegui encontrá-los.

Embora tenha levado apenas alguns minutos para encontrar, pode ser bom adicionar algo como

3 curtidas

Sim, seria bom em uma mensagem privada para a equipe mencionar eles quando um site é criado pela primeira vez. :thinking:

1 curtida

:crying_cat_face:

Desculpe. Eu achava que já tinha visto isso em algum lugar antes.

Você simplesmente não consegue fazer as pessoas lerem as coisas. . . . Exceto que eu poderia ler o código-fonte para descobrir como fazer isso em um plugin?

Mas talvez atualizar o acima para

Acho que foi isso que realmente me confundiu. (Mas não, não tenho desculpa.)

Eu fiz o tópico ser um wiki, vá em frente! :+1:

2 curtidas

Isso não corresponde à interface do usuário (a interface do usuário usa 20%), qual deles deve ser?

2 curtidas

Boa observação. Foi atualizado recentemente para 20%. Farei a alteração no OP. :slight_smile: :+1:

2 curtidas

Olá @SaraDev Este resultado do relatório pode ser obtido com uma consulta SQL? Você pode compartilhá-la?
Obrigado

1 curtida

Sim, você pode usar o seguinte relatório SQL para Principais Fontes de Tráfego:

-- [params]
-- date :start_date = 01/05/2023
-- date :end_date = 03/06/2023

WITH count_links AS (

SELECT COUNT(*) AS clicks,
       ind.name AS domain
FROM incoming_links il
  INNER JOIN posts p ON p.deleted_at ISNULL AND p.id = il.post_id
  INNER JOIN topics t ON t.deleted_at ISNULL AND t.id = p.topic_id
  INNER JOIN incoming_referers ir ON ir.id = il.incoming_referer_id
  INNER JOIN incoming_domains ind ON ind.id = ir.incoming_domain_id
WHERE t.archetype = 'regular'
  AND il.created_at::date BETWEEN :start_date AND :end_date
GROUP BY ind.name
ORDER BY clicks DESC
),

count_topics AS (

SELECT COUNT(DISTINCT p.topic_id) AS topics,
       ind.name AS domain
FROM incoming_links il
INNER JOIN posts p ON p.deleted_at ISNULL AND p.id = il.post_id
INNER JOIN topics t ON t.deleted_at ISNULL AND t.id = p.topic_id
INNER JOIN incoming_referers ir ON ir.id = il.incoming_referer_id
INNER JOIN incoming_domains ind ON ind.id = ir.incoming_domain_id
WHERE t.archetype = 'regular'
  AND il.created_at > (CURRENT_TIMESTAMP - INTERVAL '30 DAYS')
GROUP BY ind.name
)

SELECT cl.domain,
       cl.clicks AS "Clicks",
       ct.topics AS "Topics"
FROM count_links cl
JOIN count_topics ct ON cl.domain = ct.domain
LIMIT 10

Com esta consulta, observe que os parâmetros de data aceitam datas no formato dia/mês/ano.

1 curtida

Olá @SaraDev, obrigado por compartilhar a consulta.
Uma pergunta mais geral sobre este relatório e a tabela incoming_links na verdade - ela representa apenas o tráfego para páginas de posts e não o tráfego para todas as páginas do fórum, certo?

Contexto: Estou procurando analisar as tendências do tráfego geral do fórum e esperava obter o tráfego geral por fontes do relatório Principais Fontes de Tráfego.
Mas enquanto o tráfego geral é de ~ 272 mil no último mês (usuários e anônimos), os cliques totais no relatório de fontes de tráfego para o mesmo período são de apenas 59 mil.
Além disso, vejo que você usa inner join com as tabelas topics e posts, o que significa que se não houver post_id associado ao clique, você não o conta.

Você pode confirmar minha conclusão e talvez explicar um pouco sobre a lógica por trás da tabela incoming_links?

Olá @SaraDev, executei esta consulta e o resultado não corresponde exatamente ao relatório de Posts na guia geral.
Por exemplo, para 30 de novembro:
Consulta = 112 posts
Relatório = 120 posts
Você pode verificar a diferença?
Obrigado

1 curtida

Apenas um aviso para você, @Yotam_Hagay - mesmo que a Sara seja a OP, o guia é responsabilidade de todos :slight_smile: :discourse: Não há necessidade de uma @menção em cada postagem. :slight_smile:

2 curtidas

Obrigado @JammyDodger por esclarecer.
Há mais alguém que eu possa marcar ou recorrer para obter uma resposta?

1 curtida

Os resultados desta consulta são ligeiramente diferentes do relatório “Tempo de resposta para a primeira resposta”:
Em 8 de novembro, por exemplo:
Consulta: 93 Horas
Relatório: 116 Horas
Alguém pode me ajudar?

1 curtida

Acho que alguns deles podem levar algum tempo para pesquisar. Estou investigando por conta própria para ver se consigo entender o que está acontecendo (embora a lacuna entre minhas habilidades em SQL e minhas habilidades em Ruby seja bem grande :slight_smile:).

Mas continue enviando as descobertas, pois seria ótimo consolidar todas essas informações. :+1:

2 curtidas

Para o de Posts, acho que o relatório de estoque também está contando posts de tópicos, bem como os de usuários do sistema, mas também visando apenas aqueles com post_type 1 (ou seja, não sussurros, posts de pequenas ações ou ações de moderador).

Acho que o SQL ficaria mais assim:

--[params]
-- date :start_date
-- date :end_date

SELECT 
    p.created_at::date AS "Dia",
    COUNT(p.id) AS "Contagem"
FROM posts p
INNER JOIN topics t ON t.id = p.topic_id AND t.deleted_at ISNULL
WHERE p.created_at::date BETWEEN :start_date AND :end_date
    AND p.deleted_at ISNULL
    AND t.archetype = 'regular'
    AND p.post_type = 1
GROUP BY p.created_at::date
ORDER BY 1

Você poderia executar isso no seu site e ver se corresponde?

2 curtidas

Obrigado Jammy, vou verificar!
Estou trabalhando em uma análise de Tempo de Primeira Resposta, então agradeceria se você pudesse dar uma olhada nesta também.

1 curtida

Ao analisar a versão SQL, acho que está faltando o AND p.user_id <> t.user_id para excluir respostas do OP. Se eu adicionar isso, ele me dá o tempo preciso entre o OP e a primeira resposta de outra pessoa:

--[params]
-- date :date_start
-- date :date_end

WITH first_reply AS (
    SELECT 
        p.topic_id, 
        MIN(post_number) post_number, 
        t.created_at
    FROM posts p
    INNER JOIN topics t ON (p.topic_id = t.id)
    WHERE p.deleted_at IS NULL
        AND p.user_id <> t.user_id
        AND p.post_number != 1
        AND p.post_type = 1
        AND p.user_id > 0
        AND t.user_id > 0
        AND t.deleted_at IS NULL
        AND t.archetype = 'regular'
        AND t.created_at::date BETWEEN :date_start AND :date_end
    GROUP BY p.topic_id, t.created_at
    ORDER BY 2 DESC
)

SELECT 
    p.topic_id, 
    fr.created_at::date dt_topic_created,
    (p.created_at - fr.created_at) response_time
FROM posts p
INNER JOIN first_reply fr 
    ON fr.topic_id = p.topic_id 
    AND fr.post_number = p.post_number
    AND p.created_at > fr.created_at
ORDER BY response_time

Também acho que o relatório de estoque está em decimal em vez de horas e minutos como o SQL. Vou tentar novamente para que corresponda. :+1:


Apenas uma pequena atualização para incluir o AVG para que seja mais semelhante à saída do relatório de estoque:

--[params]
-- date :date_start
-- date :date_end

WITH first_reply AS (
    SELECT 
        p.topic_id, 
        MIN(post_number) post_number, 
        t.created_at
    FROM posts p
    INNER JOIN topics t ON p.topic_id = t.id
    WHERE p.deleted_at IS NULL
        AND p.user_id <> t.user_id
        AND p.post_type = 1
        AND p.user_id > 0
        AND t.user_id > 0
        AND t.deleted_at IS NULL
        AND t.archetype = 'regular'
        AND t.created_at::date BETWEEN :date_start AND :date_end
    GROUP BY p.topic_id, t.created_at
)

SELECT 
    fr.created_at::date dt_topic_created,
    AVG(p.created_at - fr.created_at) response_time
FROM posts p
INNER JOIN first_reply fr 
    ON fr.topic_id = p.topic_id 
    AND fr.post_number = p.post_number
    AND p.created_at > fr.created_at
GROUP BY fr.created_at::date
ORDER BY response_time

Isso parece corresponder ao relatório de estoque, desde que você leve em consideração que um está em decimal e o outro em HH:MM. Tenho certeza de que há uma maneira de converter o response_time do SQL para decimal, mas o HH:MM parece uma maneira mais intuitiva de fazer isso. (Acho que também há alguns critérios extras que podem não ser necessários, mas também podem ser uma proteção contra circunstâncias incomuns, então, em última análise, deixei essas partes como estão até que eu possa dizer com certeza uma coisa ou outra :slight_smile:)

Você poderia executar este e ver como ele se compara?

4 curtidas

Sim, agora soma os números mostrados no relatório de estoque, obrigado!
Apenas um comentário -
Descobri que a função AVG abaixo retorna resultados ausentes caso o tempo seja > 24h (uma seção de # de dias está faltando, eu acho).

AVG(p.created_at - fr.created_at)::time response_time

1 curtida

Ah sim, converter para time foi uma má escolha. :slight_smile: Se você remover o ::time, ele voltará à versão mais precisa (embora mais difícil de ler).

Também editarei a de cima. :+1:

2 curtidas