Объединённые темы больше не поднимаются

Кажется, в версию 3.6.0.beta2-latest (e2eb9fe93f) закралась ошибка, которой не было в предыдущих обновлениях, которые я делал на прошлой неделе.

Мой дифф обновления, если это поможет: Comparing 31701bd722b635300511e9743edb40b1133ff866...e2eb9fe93f8a338df6981bae0b378f9c9eb57555 · discourse/discourse · GitHub

Возникает проблема при слиянии тем.

Ранее тема, в которую я сливал другую, поднималась вверх.

Теперь этого не происходит, и обе темы исчезают из виду.

Вот оригинальная тема, которую я слил, 21 минуту назад:

Перейдите на /latest, и вы увидите закрытую тему, но никаких признаков темы, в которую она была слита, нет :person_shrugging:

Аналогично, перейдя в категорию Travel, вы тоже не увидите поднятой темы :person_shrugging:

Если я перейду к теме, в которую была слита другая, и нажму Reset Bump Date, она магическим образом появится на /latest с правильным временным штампом последнего сообщения, которое было слито в неё.


Эта проблема не возникает, если я сливаю темы и ставлю галочку для сохранения хронологического порядка.

Я пробовал как аккаунты сотрудников, так и аккаунты модераторов; проблема воспроизводится каждый раз с обоими типами аккаунтов.

1 лайк

Я подозреваю, что это связано с этим :thinking:

2 лайка

Просто для прояснения ситуации, приведу пример.

  • Пользователь создаёт новую тему под названием «Тема XYZ»
  • Сотрудник объединяет эту новую тему с существующей темой «Тема ABC»
    – Стандартная уборка для предотвращения дублирования тем
  • «Тема XYZ» теперь исчезла из публичного доступа, так как была скрыта и объединена
  • «Тема ABC» не видна в разделе /latest (или где-либо ещё недавно), потому что она не была обновлена
  • Ни один пользователь даже не знает, что когда-то была создана новая тема / пост (или что теперь это технически ответ на более старую тему, так как она была объединена), потому что она была перемещена в тему, которой может быть уже год, и которая не была обновлена

Не уверен, насколько хорошо я это объяснил :blush:

2 лайка

Да, я думаю, вы хорошо описываете проблему.

@christo, я считаю, что нам нужно рассмотреть несколько различных комбинаций:

Поскольку мы объединяем тему A (один пост) с темой B, следует рассмотреть следующие случаи:

    1. Пост темы A новее последнего поста темы B
    • a. опция «Сохранять хронологию» выбрана
    • b. опция «Сохранять хронологию» не выбрана
    1. Пост темы A старше последнего поста темы B
    • c. опция «Сохранять хронологию» выбрана
    • d. опция «Сохранять хронологию» не выбрана

По-моему, ожидаемое поведение заключается в том, что тема должна подниматься во всех случаях, кроме 2(c).

Во всех случаях, кроме 2(c), пост из темы A будет добавлен в конец темы B, поэтому, на мой взгляд, при слиянии дата поднятия должна устанавливаться на момент выполнения операции слияния.

Однако я не совсем уверен, что должно происходить в случае 2(d), если администратор позже выполнит «Сброс даты поднятия». Думаю, в таком случае дата поднятия должна обновляться до даты самого последнего созданного поста в теме (например, предпоследнего поста).

@martin, мы с тобой уже обсуждали логику дат поднятия в других сценариях — имеет ли вышеизложенный смысл для тебя?

2 лайка

Да, исходя исключительно из того, что так было всегда до обновлений, которые я установил на этой неделе.

Опять же, проблема, с которой мы столкнулись сейчас, заключается в том, что новые темы/сообщения просто исчезают в ниоткуда, поскольку они больше не поднимают тему, в которую они были объединены — как это всегда было в прошлом.

Я согласен.

1 лайк

Да, я думаю, это имеет смысл :+1:

2 лайка

Да, похоже, это баг, который я допустил в коммите, на который есть ссылка выше. Я собирался исправить проблему, когда дата bumped_at иногда сдвигалась назад во времени, если первое сообщение, старее последнего сообщения в целевой теме, было объединено. Но, похоже, я также сломал случай, когда первое сообщение новее.

У меня уже есть исправление в работе, и я обновлю эту тему, когда проблема будет решена.

1 лайк

Вот PR для исправления этой проблемы. Я обновлю информацию снова после её утверждения и слияния.

3 лайка

Спасибо за быстрое исправление, @christo :person_bowing:

3 лайка

Отлично, это исправление уже влилось в основную ветку. Здесь всё должно снова работать как положено.

2 лайка