Criação e gerenciamento de calendários

:bookmark: Este guia explica como criar e gerenciar calendários no Discourse usando o plugin Calendar (e Evento).

:person_raising_hand: Nível de usuário necessário: Todos os usuários

Calendários são um recurso poderoso no Discourse que permite organizar e exibir eventos dentro da sua comunidade. Este guia o guiará pelo processo de criação de calendários, adição de eventos e gerenciamento eficaz deles.

Sumário

  • Ativar o plugin Calendar
  • Criar um calendário em um tópico ou categoria
  • Adicionar eventos ao seu calendário
  • Gerenciar opções e configurações do calendário
  • Usar o recurso de calendário de feriados

Ativando o plugin Calendar

Antes de poder criar calendários, certifique-se de que o plugin “Calendar (and Event)” esteja ativado em sua instância do Discourse. Para mais detalhes sobre como ativar o plugin e suas configurações relacionadas, consulte a documentação do plugin Discourse Calendar and Event.

Criando um calendário

Calendário de tópico

Para incorporar um calendário em um tópico:

  1. Crie um novo tópico ou edite a primeira postagem de um tópico existente

  2. Adicione o seguinte código em linhas separadas:

    [calendar]
    [/calendar]
    
  3. Publique ou atualize a postagem


:information_source: A segunda-feira é considerada o primeiro dia da semana nos calendários do Discourse, independentemente das configurações de localidade do visualizador. Atualmente, isso não é configurável.

Calendário de categoria

Para criar um calendário para toda a categoria:

  1. Acesse /admin/site_settings/category/discourse_calendar?filter=plugin=discourse-calendar

  2. Na configuração “calendar categories” (categorias de calendário), adicione uma entrada com o seguinte formato:

    categoryId=123;tzPicker;defaultView=month
    
    • Substitua 123 pelo seu ID de categoria (encontrado na URL ao visualizar a categoria)
  3. Adicione o ID da categoria à configuração “events calendar categories” (categorias de calendário de eventos)

  4. Opcionalmente, defina “discourse post event allowed on groups” para controlar quais grupos podem adicionar eventos

Adicionando itens a um calendário

Calendário de tópico

Para adicionar um evento a um calendário de tópico:

  1. Responda ao tópico que contém o calendário
  2. Use a função “Insert date / time” (Inserir data / hora) no menu do compositor + para adicionar uma data ou intervalo de datas
  3. Adicione uma descrição acima da data
  4. Envie a resposta

O evento aparecerá no calendário após recarregar o tópico.

Calendário de categoria

Para adicionar um evento a um calendário de categoria:

  1. Crie um novo tópico na categoria
  2. Clique no botão de engrenagem e selecione “Create event” (Criar evento)
  3. Preencha os detalhes do evento e publique

O evento aparecerá no calendário da categoria.

Opções de calendário

Você pode personalizar seu calendário usando várias opções:

Opção Exemplo Descrição
Hide weekends (Ocultar fins de semana) weekends="false" Oculta sábado e domingo
Hide specific days (Ocultar dias específicos) hiddenDays="1,2" Oculta segunda e terça-feira (use 0-6 para domingo-sábado)
Set default view (Definir visualização padrão) defaultView="basicWeek" Opções: month, basicWeek, listNextYear
Ignore timezones (Ignorar fusos horários) fullDay="true" Trata todos os eventos como eventos de dia inteiro

Exemplo de uso:

[calendar weekends="false" hiddenDays="1,2" defaultView="basicWeek" fullDay="true"]
[/calendar]

Removendo itens do calendário

Itens do calendário podem ser removidos das seguintes maneiras:

  • Itens de calendário expirados podem ser removidos automaticamente usando a configuração “delete expired event posts after” (excluir postagens de eventos expirados após)
  • Use temporizadores de tópico para excluir respostas automaticamente
  • Exclua postagens manualmente conforme necessário

Calendário de feriados

O calendário de feriados é um recurso especial para gerenciar férias da equipe do site:

  1. Crie um tópico com um calendário na primeira postagem
  2. Defina “holiday calendar topic id” para o ID deste tópico
  3. As respostas a este tópico serão tratadas como tempo de férias para o usuário que postar
  4. As entradas de férias são coloridas automática e aleatoriamente
  5. Um emoji (padrão: :date:) aparece ao lado dos nomes dos usuários de férias nos cartões de usuário e menções @mentions
  6. Opcionalmente, inclua feriados específicos de localidade para os usuários ativando “calendar automatic holidays enabled” (feriados automáticos do calendário ativados)

FAQs

P: Por que alguns eventos parecem abranger vários dias?
R: O calendário está sempre em UTC. Use as configurações “all day event start time” (hora de início do evento de dia inteiro) e “all day event end time” (hora de término do evento de dia inteiro) para ajustar as diferenças de fuso horário.

P: Posso controlar as cores das entradas do calendário de feriados?
R: Atualmente, não é possível controlar as cores das entradas do calendário de feriados ou obter entradas coloridas em calendários normais.

P: Como exibo eventos passados em uma visualização de lista?
R: Atualmente, há um bug ao usar defaultView=listNextYear que faz com que a visualização inicial fique vazia. Como solução alternativa, os usuários precisam mudar para a visualização mensal, voltar um mês e, em seguida, retornar à visualização de lista para ver eventos passados.

Recursos adicionais

11 curtidas

Tenho dificuldade em entender como criar um calendário para que ele seja exibido em uma categoria e o que fazer para preenchê-lo depois de criado. Para tópicos, é bastante simples, mas o caso da categoria é mais obscuro. Alguém pode dar um exemplo?

Criar um Calendário de Categoria

A diferença entre um calendário de tópicos e um calendário de categorias é que o primeiro usa add date de uma resposta de tópico específica e exibe o calendário no próprio tópico, enquanto o último usa create event em qualquer tópico da categoria configurada e exibe o calendário de eventos na categoria.

1. Habilitar o plugin de calendário

Em /admin/site_settings/category/discourse_calendar?filter=plugin%3Adiscourse-calendarcalendar categories:
Você quer algo como: categoryId=123;postId=4949;tzPicker;defaultView=month

  • categoryId é fácil de encontrar: é o número na URL quando você clica em #category

  • postId pode ser encontrado assim: vá para a descrição da categoria (o tópico fixado “Sobre a categoria”) e adicione .json à URL: o postId está no início do arquivo JSON.

  • Revise a documentação do discourse-calendar para opções disponíveis.

  • Adicione a categoria (numerada 123 em nosso exemplo) a events calendar categories
    Você pode querer definir discourse post event allowed on groups para incluir os grupos que você deseja que possam adicionar eventos.

2. Criar um evento

Você pode criar um novo tópico na categoria 123 e create event (a partir do botão de engrenagem).
O evento aparecerá então no calendário da categoria.

:tada:

2 curtidas

Existe alguma forma de exibir não os próximos eventos, mas os do último ano? Gostaríamos de usar o plugin para nossa seção de diário e listar todas as entradas passadas na primeira postagem.

Ao usar o trecho abaixo, a lista de eventos fica inicialmente vazia. Somente ao voltar para a visualização mensal, voltar um mês e retornar para a visualização de lista, funciona

[calendar defaultView=listNextYear fullDay=true]
[/calendar]

Veja o bug em ação:
CleanShot 2024-05-07 at 14.08.49 2

6 curtidas

Também tenho interesse nesta função.

Gostaria de saber se também pode haver alguns scripts de explorador de dados para acompanhar a pesquisa de calendário.

3 curtidas

Quando alguém na minha comunidade posta um evento de calendário, e então um Administrador edita esse evento, por que o postador original não pode mais editar?

Este é um grande problema que afeta centenas de pessoas.

Deixe claro que, por enquanto, apenas o calendário do Tópico começa na segunda-feira e que o calendário da Categoria começa no domingo.

Adoraria que isso fosse configurável pelo administrador, pois agora cada um mostra o calendário de forma diferente…

3 curtidas

Entendi. Isso faz sentido, porque eu não percebi–

Para que os feriados sejam visíveis no calendário de feriados, vale a pena mencionar que a resposta deve conter um timestamp que você adiciona no menu do editor.
Além disso, como foi dito anteriormente, o id da postagem é encontrado adicionando .json à url da postagem. Acho que isso deveria ser adicionado à documentação aqui, pois se as categorias têm seu id na url, o id da url do tópico confundirá as pessoas, pois seu número pode ser próximo, mas não semelhante ao id real do tópico.

Obrigado por este guia de qualquer maneira, há muito a cobrir porque existem muitos recursos, o que é legal, ótimo trabalho devs!

Ah, a reescrita da IA adicionou alguma terminologia de ‘evento’. Idealmente, este termo seria evitado na parte ‘Calendário’ da documentação para não criar ambiguidade com o recurso adicional de ‘Evento’ do plugin.

1 curtida

Eu quero perguntar que meu discourse não tem o botão de calendário e engrenagem depois que ativei o plugin, há algo de errado?

1 curtida

O ícone de engrenagem foi alterado para há um tempo. Acho que inserir data foi movido para esse menu mais (acho que agora também usa o ícone ).

Definitivamente um ponto muito bom. Parece que esta documentação precisa de uma atualização (e provavelmente há outros tópicos que ainda se referem ao ícone de engrenagem).

1 curtida

Obrigado pela resposta, e então percebi outro erro relacionado a isso. Tenho este ícone, mas ele é maior e está no lugar errado, bloqueando, como você pode ver. É normal no telefone, mas não no desktop. A propósito, não há calendário, mas eventos na lista. O que posso fazer :pleading_face:

O modo de segurança corrige a posição do ícone de mais?

Qual botão de calendário você espera?

Aquele agora é

Eu tenho este botão de inserção, então como posso postar um calendário? Tentei o código [calendar], que está funcionando, mas a data/hora inclui o calendário?

Para o botão grande, tentei o modo de segurança, e ainda está assim. Reconstruir o aplicativo não está funcionando, posso esperar que a próxima atualização da versão corrija isso?:relieved_face: Ou há algo que eu possa fazer, exceto fazer tudo de novo :rofl: