Дополнительные группы не отображаются на странице /about

Сегодня утром я обновился до версии Discourse 3.5.0.beta6-dev (da0b303568).

После обновления в верхней части сайта появился красный баннер со следующим сообщением:

Уведомление администратора: вы используете компонент темы discourse-add-groups-to-about. Эта функция теперь доступна в ядре Discourse. Вам следует удалить этот компонент темы.

Я последовал совету и удалил компонент: Add groups to the /about page

Затем я зашёл в настройки своего сайта Discourse и повторно применил все параметры страницы «О нас», которые использовались в старом компоненте:

Однако ни одна из групп не отображается на странице «О нас»:

Вот как это выглядело раньше, до удаления компонента:

Я также попробовал просмотреть сайт в безопасном режиме, но изменений не произошло.

1 лайк

Я думаю, что настройка сайта show_additional_about_groups всё ещё скрыта

Но вам нужно включить её, чтобы группы появились.

6 лайков

О нет :confused:

Я не могу переустановить тему сейчас, потому что большой красный предупреждающий баннер виден всем пользователям, даже тем, кто не авторизован :cry:

2 лайка

Если вы используете собственный хостинг, вы можете включить настройку

6 лайков

Спасибо @Moin

Мне нужно сделать это вручную, или этот баг, скорее всего, будет исправлен в одном из будущих обновлений? :thinking:

1 лайк

Думаю, миграция, добавленная 3 дня назад, должна была включить эту настройку. https://github.com/discourse/discourse/pull/32910 Так что не знаю, произойдёт ли это у вас на форуме, и почему этого не случилось при вашем обновлении :woman_shrugging:

5 лайков

Отличное наблюдение, спасибо :slight_smile:

Видна ли настройка show_additional_about_groups в вашей панели администратора? :thinking:

1 лайк

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

На самом деле я слежу за PR на GitHub в основном потому, что скриншоты помогают с переводом, особенно для таких функций, как эта, которые изначально недоступны в интерфейсе.

2 лайка

Но если это теперь в ядре, разве эта опция не доступна всем сейчас? :thinking:

1 лайк

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

Если я правильно понял, идея заключается в том, что настройка show_additional_about_groups добавляется в ядро. Затем в компонент темы добавляется проверка, чтобы группы отображались только если show_additional_about_groups имеет значение false. Это означает, что всё продолжает работать как прежде. После этого всё встроенное в ядро, но отображается только если show_additional_about_groups имеет значение true.
После автоматической миграции настроек show_additional_about_groups активируется. Теперь код из ядра отображает группы, а не компонент.
Эта миграция была добавлена 3 дня назад. А 2 дня назад в компоненте было добавлено уведомление, которое вы видели.
Непонятно, почему миграция явно не сработала для вас (ни настройки не были применены автоматически, ни show_additional_about_groups не активирована).

Я считаю, что определённо упущено, что глобальное предупреждение не проверяет, является ли пользователь администратором.

2 лайка

Спасибо за информацию @Moin — очень полезно.

Хм, значит, по умолчанию это включено для всех, кто ранее не использовал компонент темы?

А у меня на странице «О нас» не отображаются никакие группы, потому что моя настройка в фоне всё ещё застряла на false?

Вы не поверите, сколько писем и запросов мы получили от наших участников по поводу этого баннера с предупреждением :see_no_evil_monkey:

1 лайк

@Moin Я применил это через консоль Rails:

SiteSetting.show_additional_about_groups = true

И дополнительные группы снова появились.

Ещё раз спасибо за всю вашу помощь и советы :person_bowing:

4 лайка

Спасибо, что обратили на это внимание. Я исправлю это, чтобы другие не столкнулись с такой проблемой.

4 лайка

Подождите, здесь осталась ошибка, которую нужно исправить, или это уже просто тема для #поддержки?

1 лайк

Мне казалось, что миграция должна была перенести конфигурацию @Richie из компонента в основные настройки, а также включить скрытую настройку сайта show_additional_about_groups. Возможной причиной того, что это не сработало, могло стать изменение имени компонента, так как это легко сделать через интерфейс.

Есть ли причина, по которой миграция полагается только на имя, не проверяя также наличие компонента, у которого remote_url из таблицы remote_themes совпадает? Такой подход позволил бы обнаруживать переименованные компоненты, если они были установлены из официального репозитория.

Скрытая настройка сайта, которая не была включена из-за того, что миграция не произошла, не позволила основному модулю отображать группы, поэтому группы продолжал показывать компонент. Однако глобальное уведомление от компонента сообщало пользователю, что компонент нужно удалить. При этом основной модуль всё равно не показывал группы, так как show_additional_about_groups оставался отключённым, и включить его было непросто.

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

Возможно, было бы лучше включить show_additional_about_groups для всех или отобразить эту настройку в интерфейсе до добавления в компонент уведомления о необходимости его удаления. Тогда ручная миграция прошла бы успешно, и основной модуль начал бы показывать группы, так что удаление компонента не оставило бы администраторов без групп на странице «О нас».

Сейчас, когда администратор добавляет группы в настройку сайта «about page extra groups», ничего не происходит, поскольку скрытая настройка show_additional_about_groups не включена. Это кажется ошибкой, хотя с точки зрения разработчика всё работает как задумано. Мне кажется, администраторам было бы проще понять, что происходит, если бы эта настройка была видимой, а не скрытой.

4 лайка

@Moin идеально всё подытожил.

Ни одно из моих настроек не перенеслось, а когда я их скопировал, группы всё равно не отображались на странице /about, поскольку скрытая настройка мешала их появлению, и мне пришлось использовать консоль Rails, чтобы решить проблему.

Вот как я застрял:

И это вечный вопрос :blush:

3 лайка

@ted / @kris.kotlarek / @hugh есть какие-то мысли по этому поводу? Требуется ли доработка миграции, которую выполнил Тед?

Это выглядит очень странно. Почему бы просто не удалить настройку сайта show_additional_about_groups и не сделать её значение по умолчанию равным true?

Это избавит от одной лишней настройки, и параметр «about page extra groups» всегда будет работать как ожидается.

4 лайка

Привет, @Richie, @Moin! :waving_hand:

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

Теперь, когда перенос завершён, эта настройка нам больше не нужна, как отметил @sam. Мы можем просто посмотреть на список настроенных групп.

Существует PR, который это реализует, по ссылке:

5 лайков

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

4 лайка

Спасибо за обновление, @ted :slightly_smiling_face:

2 лайка