В целом функция работает, но, возможно, даже слишком эффективно.
Я заметил несколько проблемных побочных эффектов, вызванных этими изменениями:
Когда решение снимается из-за того, что все теги, разрешавшие пометить тему как решённую, были удалены, пользователю не выводится предупреждение о том, что это действие приведёт к снятию статуса решения. Это особенно проблематично, поскольку:
Решение снимается даже в том случае, если тема находится в категории, допускающей решения, — достаточно лишь удалить теги. Пока либо категория, либо хотя бы один тег разрешают пометить тему как решённую, я ожидаю, что тема останется с пометкой «решено».
Проблема существует и в обратном направлении: если тема находится в категории, допускающей решения, и имеет тег, также разрешающий это, и затем тема перемещается в другую категорию, решение снимается. В этом случае хотя бы появляется предупреждение, но я бы предпочёл возможность сохранить решение, а не выбирать его заново после перемещения темы.
Возможно ли:
Предупреждать пользователей о том, что удаление тегов приведёт к снятию статуса решения?
Сохранять решение, пока либо категория, либо хотя бы один тег разрешают пометить тему как решённую?
Мы выпустили обновление, которое решает обе эти проблемы:
Если у вас настроен тег как Включить тег «решено», то удаление этого тега из темы со статусом «решено» снимет этот статус. Мы будем уведомлять администраторов, когда они попытаются удалить такой тег, чтобы они были в курсе:
В ситуациях, когда тема находится в категории со статусом «решено» и имеет тег «решено», удаление одного из них (то есть удаление тега «решено» при сохранении категории со статусом «решено» или перемещение темы из категории со статусом «решено» при сохранении тега «решено») не повлияет на статус «решено» темы.