Criando e gerenciando calendários

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

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

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

Resumo

  • 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: Segunda-feira é considerado o primeiro dia da semana nos calendários do Discourse, independentemente das configurações de local do visualizador. Isso atualmente não é configurável.

Calendário de Categoria

Para criar um calendário para toda a categoria:

  1. Vá para /admin/site_settings/category/discourse_calendar?filter=plugin=discourse-calendar

  2. Na configuração “calendar categories”, adicione uma entrada com o seguinte formato:

    categoryId=123;postId=4949;tzPicker;defaultView=month
    
    • Substitua 123 pelo ID da sua categoria (encontrado na URL ao visualizar a categoria)
    • Substitua 4949 pelo ID da postagem da descrição da categoria (encontrado anexando .json à URL do tópico “Sobre a categoria”)
  3. Adicione o ID da categoria à configuração “events calendar categories”

  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 “Inserir data / hora” no menu do compositor \u003ckbd\u003e+\u003c/kbd\u003e 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 “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
Ocultar fins de semana weekends="false" Oculta sábado e domingo
Ocultar dias específicos hiddenDays="1,2" Oculta segunda e terça-feira (use 0-6 para domingo-sábado)
Definir visualização padrão defaultView="basicWeek" Opções: month, basicWeek, listNextYear
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 destas maneiras:

  • Itens de calendário expirados podem ser removidos automaticamente usando a configuração “delete expired event posts after”
  • Use timers de tópico para excluir postagens automaticamente
  • Exclua manualmente postagens 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 em cartões de usuário e menções @mentions
  6. Opcionalmente, inclua feriados específicos do local para os usuários ativando “calendar automatic holidays enabled”

Perguntas frequentes

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” e “all day event end time” 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 regulares.

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: