Событие молча не создаётся, если описание длиннее 1000 символов

Краткое описание:

Если описание события превышает 1000 символов, оно отображается пустым, либо вместо него показывается предыдущее описание события.

Это вызвано жёстким ограничением в таблице discourse_post_event_events: description character varying(1000)

Воспроизведение #1

  • Создайте событие
  • Сделайте так, чтобы описание события (текст между [event] и [/event]) превышало 1000 символов
  • Описание события не будет отображаться в отрендеренном посте

Воспроизведение #2

  • Создайте событие
  • Сделайте так, чтобы описание события (текст между [event] и [/event]) было менее 1000 символов
  • Отредактируйте событие
  • Сделайте так, чтобы описание события (текст между [event] и [/event]) превышало 1000 символов
  • В отрендеренном посте будет отображено предыдущее описание события

Это также позволяет отравлять поисковую выдачу.

Связанное

Похоже, то же самое относится к полям url и location

Ожидаемое поведение

Одно из следующего:

a) описание события должно быть без ограничений по длине
b) при слишком длинном описании события должно отображаться явное предупреждение
c) описание события должно обрезаться при рендеринге (при этом полный текст по-прежнему сохраняется в разметке Markdown)

6 лайков

Спасибо за это.

ИМХО, вариант (c) без предупреждения тоже недостаточен. Если я получу голос, то (a) — лучшее решение.

1 лайк

Воспроизведено на последней версии, проверено сегодня. Пользователь сообщил о проблеме с отображением карточек событий — без видимой причины. Тема сохранялась нормально, разметка события в исходном тексте поста была корректной, однако карточка события не появлялась ни в теме, ни в каком-либо другом месте. Предупреждений в редакторе, ошибок сохранения, ошибок в консоли браузера или соответствующих записей в /logs не было.

Я бы поддержал вариант b) — явное предупреждение или ошибку валидации.

Пока мы здесь, стоит отметить, что абсолютно такое же поведение (тихое отсутствие отображения карточки) происходит и в том случае, если по какой-либо другой причине разметка события не может быть корректно распознана. В случае, который я рассматривал несколько месяцев назад, пользователь тщательно подготовил разметку события в Word, а затем скопировал и вставил её в Discourse. В результате вокруг элементов data= автоматически вставились «умные кавычки», что, как можно ожидать, привело к комичным последствиям.

Так что да, видимая ошибка, даже если она будет отображаться только в консоли, была бы оооочень полезна.

2 лайка