📅 Novo Recurso de Calendário: Data de Término para Eventos Recorrentes

Agora você pode definir uma data de término para eventos recorrentes no Discourse Calendar! :sparkles:

Este recurso muito solicitado permite que você especifique quando uma série de eventos recorrentes deve parar, dando a você mais controle sobre o agendamento de seus eventos.

Crie eventos que se repetem diariamente, semanalmente ou mensalmente - e agora determine exatamente quando eles devem terminar.

Para mais detalhes sobre o plugin Calendar e seus recursos, visite o tópico oficial do Calendar.

No futuro, podemos adicionar a possibilidade de excluir dias específicos da semana.

22 curtidas

Uma questão delicada com a palavra “Até” é que não é totalmente óbvio se está incluída ou excluída? Há algo que possamos fazer aqui para dar mais clareza?

2 curtidas

Sim, o Google Agenda tem o mesmo problema! Eles usam On, mas sofre da mesma ambiguidade:

No entanto, acho que a maioria dos usuários assumiria com segurança que Until inclui essa data.

3 curtidas

Até (incluído):

?

edit: Fiz isso por enquanto UX: better copy by jjaffeux · Pull Request #737 · discourse/discourse-calendar · GitHub parece uma mudança simples e boa.


Uma solução alternativa seria exibir a data/hora real ao lado da entrada de data, mas provavelmente exagero?

3 curtidas

Você pode querer pegar algumas ideias da minha implementação das datas de Início/Fim de Vouchers na caixa de diálogo Novo Voucher em um e-commerce em que estou trabalhando:


Outro exemplo para demonstrar a flexibilidade e como evitamos ambiguidades em intervalos de datas na interface do usuário:


Detalhe técnico: Em nosso aplicativo, sempre salvamos datas como “timestamp com fuso horário” (postgres), portanto, nenhuma configuração de banco de dados ou configuração de conexão pode afetar o timestamp real armazenado. Mesmo que o Postgres não recomende, nós o fazemos porque isso garante 100% de correção da data em qualquer situação e em qualquer consulta SQL. Você pode operar com fusos horários de data diretamente no postgres usando suas funções de data/hora/fuso horário e ter certeza de que funcionará 100% corretamente sempre. Nós confiamos nisso.

E então temos uma configuração de fuso horário para todos os tipos de entidades que precisam dela: perfis de usuário, mercados, vouchers, relatórios para contadores, e assim por diante - para que possamos traduzir quaisquer datas para quaisquer fusos horários instantaneamente, sem hesitação.

As principais conclusões aqui são:

  1. Sempre armazene data e hora com fuso horário.
  2. Sempre armazene a preferência de fuso horário.
  3. Seja muito explícito sobre as datas na interface do usuário, não faça nenhuma mágica.
  4. Deixe o usuário ver as datas reais no fuso horário escolhido antes de clicar em “Salvar”.
1 curtida

Olá,

Na minha instância auto-hospedada (gerada há apenas um mês), não vejo nenhuma opção de data de término.

Estou fazendo algo errado?

Acho que a captura de tela mostra o diálogo Inserir data / hora em vez do diálogo Criar evento.

Esses são dois fluxos de trabalho diferentes no Discourse Calendar:

  • Inserir data / hora é usado para respostas em um tópico cujo post inicial contém um bloco [calendar].
  • Criar evento cria um Evento real ([event ...][/event]) e é onde ficam as configurações de evento recorrente, incluindo a data de término da recorrência.

Portanto, para o recurso anunciado neste tópico, tente abrir o menu + do compositor e escolher Criar evento, em vez de Inserir data / hora.

Eu estava testando esse fluxo de Evento recorrente recentemente e também encontrei um caso extremo depois que uma recorrência limitada expirou completamente, para o qual abri uma correção aqui:

1 curtida

Na verdade, o objetivo era manter um calendário (coletando eventos) em um tópico.

Desculpe pelo mal-entendido, sou novo por aqui.

De fato, ao criar um evento, parece funcionar.

Uma pena que não funcione para Inserir data / hora.

Obrigado pela ajuda!

1 curtida

Sem problemas :slightly_smiling_face:

Apenas para esclarecer, não acho que isso seja realmente um caso de a funcionalidade não estar funcionando para Inserir data / hora — trata-se de um fluxo de trabalho diferente.

Inserir data / hora é usado quando você tem um bloco [calendar] na mensagem inicial de um tópico e deseja que as respostas com data apareçam no calendário daquele tópico específico.

Criar evento, por outro lado, cria um Evento real do Discourse ([event ...][/event]). A data final do evento recorrente discutida neste tópico se aplica ao sistema de recorrência desse Evento.

Portanto, se seu objetivo é manter um calendário local para um único tópico, o fluxo de trabalho mostrado na sua captura de tela original é o adequado; ele apenas não usa o mesmo recurso de recorrência limitada dos Eventos.

Sim, entendi.

O caso de uso é manter um calendário para a minha escola. Sempre há compromissos para serem registrados, e qualquer pai ou responsável pode responder ao tópico para adicionar um novo compromisso.

Mas, só ontem, precisei registrar um compromisso recorrente e, infelizmente, não temos essa opção neste fluxo de trabalho. Então, preciso fazer isso manualmente, respondendo várias vezes ao tópico com uma nova data (não sei se existe uma forma mais inteligente de fazer isso…).

Pode haver uma forma de automatizar as respostas manuais, mantendo seu fluxo de trabalho existente com o [calendar] local do tópico.

Uma possibilidade seria usar um usuário dedicado do Discourse com a opção de resposta por e-mail ativada e, em seguida, usar uma ferramenta como o Power Automate ou um Azure Logic App para gerar as respostas individuais datadas e enviá-las para o tópico do calendário por e-mail.

Por exemplo, um compromisso semanal com data de término poderia ser expandido pela automação nas respostas individuais necessárias, de modo que os pais ainda veriam um calendário de tópico normal, em vez de tópicos de Evento separados.

Há alguns detalhes em torno das chaves de resposta por e-mail por usuário do Discourse que precisariam ser configurados com cuidado, então este tópico provavelmente não é o melhor lugar para passar pela configuração.

Se essa abordagem for útil para você, ficarei feliz em ajudar a trabalhar nisso em um tópico Meta separado.

Até o momento, isso só aconteceu uma vez, então vou esperar até a próxima vez (e torcer para que não se repita).

Vou manter o truque de responder por e-mail, obrigado. Mas isso significa que, para um evento semanal ao longo de um ano inteiro, teremos que gerar 52 respostas? Isso vai deixar o tópico difícil de ler…

Caso contrário, suponho que, como tenho permissões de administrador, também posso usar a API para adicionar os compromissos manualmente.

Obrigado pelas informações!

Sim — infelizmente, a API automatizaria a criação das respostas, mas não resolveria de fato o problema do excesso de conteúdo: em um calendário de tópicos, as entradas individuais do calendário ainda são representadas por respostas individuais.

Acabei de encontrar uma solicitação de recurso existente que é praticamente o seu caso de uso:

O exemplo deles é um curso que ocorre em doze quartas-feiras consecutivas, e eles fazem o mesmo ponto: criar cada ocorrência individualmente é trabalhoso e polui o tópico.

Eles sugerem permitir recorrência em Inserir data / hora, juntamente com uma data de término para a última ocorrência, o que parece muito próximo do que você precisa.

Portanto, em vez de criar um contorno via API/Power Automate que gere 52 publicações, essa solicitação de recurso é provavelmente o lugar melhor para adicionar o seu caso de uso de calendário escolar.

1 curtida

Obrigado, vou fazer isso!