Criar tópicos individuais para eventos recorrentes

Abri um PR implementando isso como um modo de Evento recorrente opcional (opt-in):

Ele adiciona uma configuração de site discourse_post_event_recurring_topic_mode com duas opções:

  • reuse_topic — o comportamento existente e o padrão
  • create_next_topic — preserva o tópico da ocorrência concluída e cria um novo tópico para a próxima ocorrência

Com create_next_topic, quando uma ocorrência termina, o tópico concluído é mantido com seu Evento fixado naquela ocorrência concluída e a recorrência removida. Um tópico sucessor é então criado para a próxima recorrência, preservando o título/corpo originais, a categoria, as tags e o autor, enquanto avança as datas do Evento.

Os testes automatizados também cobrem a semântica de transferência de RSVPs: a presença recorrente going é transferida para o sucessor, enquanto a presença de uso único permanece com a ocorrência concluída.

A transferência também é transacional, então, se a criação do sucessor falhar, a ocorrência permanece pendente e pode ser tentada novamente, em vez de ficar parcialmente concluída.

Isso implementa especificamente o modelo “criar o próximo tópico quando a ocorrência atual termina”. Ele ainda não gera tópicos individuais para todas as ocorrências futuras antecipadamente, que é o modelo alternativo mencionado acima por @opcourdis.

O comportamento existente permanece como padrão, portanto, isso é opcional (opt-in) para sites que desejam que o tópico do Evento concluído funcione como um arquivo.

1 curtida