Есть ли способ массово выдать значки списку пользователей?
Планирую выдать конкретные значки сотням пользователей. Не уверен, есть ли способ сделать это, кроме как заходить на страницу администратора каждого пользователя и выдавать значок вручную…
Есть ли способ массово выдать значки списку пользователей?
Планирую выдать конкретные значки сотням пользователей. Не уверен, есть ли способ сделать это, кроме как заходить на страницу администратора каждого пользователя и выдавать значок вручную…
Для этого вы можете воспользоваться инструментом массовой выдачи на странице /admin/badges. ![]()
Спасибо за ответ!
Вопрос на скорую руку: я загрузил CSV-файл, в котором каждая строка начинается с адреса электронной почты.
Однако прошло уже некоторое время, а значки так и не были выданы.
Поэтому я попробовал добавить запятую после адреса, просто чтобы проверить.
Если в первой строке есть запятая, система сообщает, что импорт первой строки не удался.
Теперь я в тупике: в сообщении всё выглядит правильно.
Есть ли более конкретные примеры правильного формата для импорта CSV-файла?

Даже это не назначает значки пользователям. Есть какие-нибудь подсказки для отладки?
Исходя из:
Здесь должно быть одно электронное письмо или одно имя пользователя в строке, и, судя по коду, запятые не нужны.
То, что вы сделали изначально, должно сработать. ![]()
Вы видели сообщение «Ваш CSV-файл получен, и x пользователей получат свой значок в ближайшее время»?
Также обратите внимание на слово в ближайшее время; это не мгновенно. Полагаю, существует очередь заданий, и вам, возможно, придется подождать один день. Вы можете вручную запустить задание BadgeGrant на странице /sidekiq/scheduler. Это должно очистить очередь.
Спасибо за быстрый ответ.
Вы видели сообщение «Ваш CSV-файл получен, и x пользователей скоро получат свой значок»?
Да, я это видел!
/sidekiq/scheduler — это расширение? Я не думаю, что у нас установлен Sidekiq. И в данный момент я не смогу установить это расширение. Возможно, мне придется подождать один день.
Отлично, тогда всё в порядке!
Это не расширение. Discourse использует его внутренне для обработки фоновых задач.
Ваш Discourse размещён самостоятельно? Если да, то вы должны иметь к нему доступ: <ваш_url>/sidekiq/scheduler.
Также вы можете просто подождать, конечно. ![]()
Массовые награды выдаются немедленно.
Задание BadgeGrant предназначено для автоматических наград.
Спасибо! Это саморазмещённая версия.
Однако я не вижу её в запланированных задачах… И значки всё ещё не выданы.
Интересно, связано ли это с тем, что значок содержит неанглийские символы, если это имеет значение?
Выдача значков по одному работает, хотя.
Хорошо, спасибо за информацию! Уточню: я на самом деле не тестировал это — просто изучил код. Похоже, что код помещает элементы в очередь (но, посмотрев внимательнее, кажется, что очередь по умолчанию обрабатывается немедленно, если не указано иное). Моя ошибка! ![]()
Думаю, нет. Всё ещё безрезультатно?
Выяснили проблему.
Первого пользователя в CSV-файле каким-то образом упустили. Я проверял, есть ли у первого пользователя значок. Но, похоже, все пользователи, кроме первого, его получили.
Я вручную выдал значок первому пользователю, теперь проблема решена ![]()
Спасибо за всю вашу помощь!