Natural breakpoints or "chapters" for long topics?

Я обдумал этот вопрос. Исходя из моего опыта работы с мега-темами и обычными темами, которые обновляются медленно, пользователи крайне негативно реагируют на закрытие тем, за которыми они следили, даже если созданы новые, заменяющие их.

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

  1. Новый способ разделения тем, при котором старые сообщения переносятся в новую тему, а новые остаются в исходной.
  2. Способ разделения темы или создания её продолжения, который копирует настройки отслеживания/подписки/игнорирования пользователя на новую тему.

Подробнее о каждой идее:

Разделение темы сверху

Как я это вижу: модератор выбирает сообщение, затем нажимает «и все предыдущие», что вызывает новое или модифицированное окно создания новой темы. Новая тема по умолчанию будет относиться к той же категории, получит название исходной темы с указанием дат начала и окончания, а также по умолчанию будет создана как закрытая. Первое и последнее (последнее — системное) сообщения будут содержать ссылки на основную тему, от которой она была отделена. Исходная тема сохранит первое сообщение, получит новое сообщение на месте перемещённых (игнорируя любые другие специальные сообщения разделённой темы) и в остальном останется без изменений.

Вероятно, также потребуется задача Rake для исправления ссылок на цитаты в других темах, но это может быть сложнее.

Разделение с копированием настроек отслеживания

Этот вариант, скорее всего, проще реализовать, но он кажется мне менее удовлетворительным. Во-первых, ссылки общего вида example.discourse/t/_/12345 (то есть ведущие к теме, а не к конкретному сообщению) становятся неактуальными. Такие ссылки часто встречаются, если тема используется для внешних обсуждений («Предлагайте идеи для приложения здесь!»). При использовании этого варианта существующая тема закрывается, её название изменяется для указания временного диапазона (по умолчанию), создаётся новая тема в той же категории с копированием названия, первого сообщения и всех настроек отслеживания/игнорирования. В системное сообщение о закрытии темы в старой теме добавляется ссылка на новую тему.

Вероятно, также стоит отменить отслеживание/подписку на закрытую тему для всех пользователей, которые не участвовали в ней. Сценарий, который я имею в виду: пользователь Илайджа, который был активен несколько месяцев, а затем исчез на год, мог явно следить за темой. Ему могут быть не интересны две созданные и закрытые промежуточные темы, возникшие во время его отсутствия, но он всё же может захотеть следить за последней версией после возвращения.

2 лайка