Увеличить лимит описания события

Только на уровне сайта

  • Максимальное количество символов в описании события — увеличить с 1000 до ?? возможно, 3000?

У меня есть пользователи, которые хотят добавлять значительный объём текста в описание события. Это было бы полезно, например, если необходимо переносить описание в Google Календарь; простое добавление текста в тему не удовлетворит этот сценарий использования.

Судя по FEATURE: Add event location/description and "My Events" filter (#746) · discourse/discourse-calendar@bdf8869 · GitHub, в базе данных это ограничение составляет 1000 символов. Есть ли причина, по которой используется STRING(1000) вместо TEXT? (больше вопрос по базе данных — я не знаком с ограничениями, которые накладывает использование Ruby).

Можно ли увеличить это ограничение или сделать его неограниченным?

2 лайка

Вы имеете в виду описание в всплывающем диалоговом окне при создании события? Видят ли ваши пользователи это где-то? Значит, размещение описания в теме, где вы создаете событие, не подойдет для вашего случая?

Я имею в виду текстовое поле под разделом «Описание» при создании мероприятия.

В мероприятии это отображается следующим образом:

Мы — беговой клуб, и используем описание для пошаговых инструкций по маршруту. Если маршрут длинный, возникает опасение, что места может не хватить.

Дополнительный текст содержится в теме, но если пользователь сохраняет событие в свой календарь, он не отображается в записи календаря (по крайней мере, в Google Календаре), тогда как описание — отображается.

Понятно, я всё уяснил.

Именно поэтому я и спросил: им бы хотелось, чтобы всё помещалось в их календаре, и им не нужно было бы переходить к теме.

1 лайк

Для меня идеальным вариантом было бы разместить это в превью события

У этого есть два преимущества:

  • Не нужно кликать на событие, чтобы увидеть описание. Это позволяет пользователям сразу понять, интересно ли событие или нет.
  • То же самое касается добавления в личный календарь. Если описание видно заранее, пользователь сразу решает, добавлять событие в календарь или нет, что избавляет от лишних манипуляций.

Внимание: это всего лишь идея. Иногда проще сказать, чем реализовать в коде :sweat_smile:

Главная проблема для меня в том, что при добавлении описания события пользователем происходит тихий сбой. Если описание превышает 1000 символов, запись в базе данных событий, по всей видимости, не создаётся. Текст по-прежнему остаётся в теме внутри блока [event], но само событие нигде не отображается для пользователей.

Мне приходится замечать, что это произошло, и заходить в сообщение темы, чтобы перенести описание за пределы блока события.

Я вижу, что в discourse/plugins/discourse-events/app/models/discourse_post_event/event.rb at 2ad5c29a2cda0513086295c0601cb7524ad5d87f · discourse/discourse · GitHub описание валидируется, и обновление MAX_DESCRIPTION_LENGTH кажется достаточно простым, но, честно говоря, я недостаточно хорошо знаком с ruby/discourse, чтобы добавить миграцию базы данных, и в любом случае не хочу, чтобы моя версия расходилась со стандартной (хотя, возможно, эту миграцию можно сделать с помощью плагина?).

Похоже, это поле можно было бы перенести в TEXT вместо STRING(1000), чтобы устранить эту проблему (см. discourse/plugins/discourse-events/db/migrate/20250616101945_add_description_to_event.rb at main · discourse/discourse · GitHub), но я вижу, что в настоящее время в ожидании рассмотрения находится 282 pull request.

2 лайка

Совпадение, но это только что было сообщено как баг: Событие тихо не работает, если описание длиннее 1000 символов

3 лайка