Дублирование всей темы

Я знаю, что этот вопрос уже поднимался/обсуждался ранее. Считаю, что мой случай использования обоснован, но, возможно, недостаточно распространён, чтобы обязать разработчиков внедрять новую функцию, поэтому надеюсь получить от экспертов здесь следующую лучшую рекомендацию… Также буду рад советам по использованию консоли Rails, если кто-то укажет нужные функции и вызовы.

У нас команда с разным уровнем доверия. Некоторые участники публикуют сообщения в ограниченных категориях. Нам нужно написать руководство для новичков, и часть этого руководства будет включать пример полной темы из одного из таких ограниченных форумов (и я знаю, что это звучит противоречиво), выбранной из тем, которые мы можем позволить показать участникам с низким уровнем доверия. Однако я не хочу перемещать тему из её исходной категории, а хочу создать её копию. Мне также нужны ревизии постов. Ручное создание ответов и копирование содержимого каждого поста с изменением владельца было бы следующим лучшим решением, но мне бы очень хотелось сохранить и ревизии постов.

Как администратор, могу ли я через графический интерфейс изменить автора поста на любого конкретного пользователя?

Если бы я хотел сделать это в консоли Rails, мог бы кто-нибудь подсказать, какие функции и вызовы использовать для копирования постов темы в виде набора ответов в существующую тему?

Да. Гаечный ключ администратора > Смена владельца.

Интересно, возможно ли создание тем с помощью TC :thinking:.

Чёрт, я только что вернулся, чтобы удалить эту часть сообщения, после того как увидел команду «Сменить владельца».

К сведению: меня также интересует копирование ревизий каждого сообщения (теперь это уточнено в исходном сообщении выше), по сути — полное копирование. Ручное создание новых сообщений и копирование/вставка содержимого приведёт к потере ревизий (но это было бы следующим лучшим вариантом, если я не смогу дублировать их иначе).

Что такое TC? Я знаю, что раньше создавал новые темы через API, хотя сейчас я не пытаюсь создать новую тему, а хочу дублировать все сообщения (включая ревизии) как ответы в существующей теме.

Компонент темы.

Думаю, это невозможно. Возможно, это стоит обсудить в #feature.

Я имею в виду, что функциональность разделения/объединения тем была бы в корне одинаковой, просто старая тема не удалялась бы… мне нужно только это :slight_smile:

Кто-нибудь, кто хорошо разбирается в Rails для Discourse, может указать мне на функции и вызовы для дублирования поста из одной темы в другую?

Для дублирования темы и её ревизий потребуется плагин. Но что, если одна из тем продолжит вносить изменения?

Я думаю, правильный подход такой:

  • начните тему в секретном разделе;
  • обсудите её, отредактируйте;
  • когда она будет готова к публикации, используйте wrench, выберите сообщения, выберите первый пост (OP) и переместите его в новую тему.

Перемещённая тема сохраняет все свои правки. Оригинальная остаётся в исходной теме со всеми правками. Новая появляется в новой теме также со всеми правками.

Думаю, это именно то, что вам нужно.

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

Если бы уровни доверия были наоборот, это стало бы проблемой, но в рамках системы доверия это имеет смысл.

@pfaffman спасибо за вклад. Старая тема уже закрыта, и мы хотим оставить её в таком виде по разным причинам (не считая ведения записей).

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

Я не призываю разработчиков добавить это как функцию, но был бы благодарен за подсказки, как сделать это самостоятельно в rails console.

А, вы хотите, чтобы правки исходного поста размещались в теме с низким уровнем доверия?

Возможно, это безумная идея, и я не проверял это, но, возможно, ActivityPub Plugin может подойти вам.