Evento falha silenciosamente se a descrição tiver mais de 1000 caracteres

Resumo:

Se a descrição de um evento tiver mais de 1000 caracteres, ela aparece em branco ou a descrição do evento anterior é exibida.

Isso é causado por um limite rígido na tabela discourse_post_event_events: description character varying(1000)

Reprodução #1

  • Crie um evento
  • Faça com que a descrição do evento (o texto entre [event] e [/event]) tenha mais de 1000 caracteres
  • A descrição do evento não aparecerá na postagem renderizada

Reprodução #2

  • Crie um evento
  • Faça com que a descrição do evento (o texto entre [event] e [/event]) tenha menos de 1000 caracteres
  • Edite o evento
  • Faça com que a descrição do evento (o texto entre [event] e [/event]) tenha mais de 1000 caracteres
  • A descrição anterior do evento será exibida na postagem renderizada

Isso também permite a manipulação de resultados de busca (search poisoning).

Relacionado

O mesmo parece se aplicar aos campos url e location

Esperado

Um dos seguintes:

a) a descrição do evento deve ser ilimitada
b) um aviso claro é exibido quando a descrição do evento for longa demais
c) a descrição do evento é truncada durante a renderização (enquanto o texto completo ainda é mantido no markdown)

6 Curtiram

Obrigado por isso.

Na minha opinião, a opção (c) sem aviso também é insuficiente. Se eu pudesse votar, a opção (a) seria a melhor solução.

1 Curtiu

Reproduzido na versão mais recente, testado hoje. Um usuário relatou um problema com os cartões de Evento não sendo exibidos, sem explicação aparente. O tópico foi salvo normalmente, a marcação do Evento estava correta no texto bruto da publicação, mas nenhum cartão de Evento apareceu no tópico ou em qualquer outro lugar. Não houve nenhum aviso no editor, erro de salvamento, erro no console do navegador ou entrada relevante em /logs.

Eu sou a favor da opção b) um aviso claro ou um erro de validação.

Enquanto estamos no assunto, exatamente o mesmo comportamento (falha silenciosa na exibição do cartão) também ocorre se, por qualquer outro motivo, a marcação do Evento não puder ser analisada corretamente. No caso que eu estava investigando alguns meses atrás, um usuário havia preparado cuidadosamente a marcação do Evento no Word e depois a copiou e colou no Discourse, resultando em aspas inteligentes automáticas ao redor dos itens data=, com a consequente confusão que se pode esperar.

Então, sim, um erro visível, mesmo que seja apenas no console, seria muito, muito bom.

2 Curtiram