Массовое присвоение значка группе пользователей

Значки — отличный способ отметить тех, кто хорошо справляется со своей работой. Теперь в Discourse можно вручать значок группе пользователей.

Если вы перейдёте в раздел «Значки» в панели администратора, то заметите, что рядом с кнопкой «Создать» появилась новая кнопка «Массовое вручение»:

Screen Shot 2020-01-15 at 11.34.31

После нажатия на неё вам будет предложено выбрать значок и начать процесс:

Выберите значок, который хотите вручить, и загрузите CSV-файл со списком электронных адресов или имён пользователей (по одному в строке):

Затем вам будет показано следующее сообщение:

Discourse найдёт соответствующих пользователей, вручит им значок и отправит уведомление.

48 лайков

Это круто.

Я предлагаю изменить эту формулировку на «присваивание значка набору пользователей», так как группа в Discourse имеет конкретное значение, а набор случайных адресов электронной почты в CSV-файле им не является :wink:.

23 лайка

Очень хорошо, это будет полезно :slight_smile:

5 лайков

О да, это очень удобно. Спасибо :slight_smile:.

3 лайка

Это отлично, спасибо за эту функцию :slight_smile:

5 лайков

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

5 лайков

Да, это моя идеальная идея. :grin:

Просто нажмите на пользователей, которых хотите наградить.

2 лайка

Извините, но я не до конца понял это. Мне знакомы следующие термины:

enclosure (обёртка), delimiter (разделитель) и terminator (терминатор).

Обычно enclosure — это кавычки,
delimiter — это запятая,
terminator — это перевод строки.

Например:

"1", "Bob", "rkelly@gmail.com", "CA" 
"2", "Carol", "counselor@hotmail.com", "CA" 
"2", "Ted", "tman@yahoo.com", "FL" 

Сомневаюсь, что вы имеете в виду:

rkelly@gmail.com 
, 
counselor@hotmail.com 
, 
tman@yahoo.com 
1 лайк

Я имел в виду:

rkelly@gmail.com,
counselor@hotmail.com, 
tman@yahoo.com

Я отредактировал пост.

6 лайков

При массовом добавлении пользователей в группу система ожидает список имён пользователей. При массовом добавлении пользователей к значку система ожидает файл .csv с адресами электронной почты.

Лично я предпочитаю список имён пользователей, так как его гораздо проще получить с форумов, не проходя через административные процедуры, и у меня есть несколько приёмов в Excel, позволяющих быстро создать список для копирования и вставки. Раньше я массово назначал значки, добавляя список в временную группу, а затем менял запрос для значка, чтобы он назначался всей этой группе. Когда появилась функция «Назначить значок группе пользователей», я надеялся сократить один шаг…

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

8 лайков

Я согласен, что нужно поддерживать оба варианта.

Если первый элемент списка содержит символ «@», то импортировать по электронной почте, иначе — по имени пользователя.

Также мы могли бы быть немного более гибкими в отношении формата этого списка.

Мы могли бы просто требовать, чтобы адреса электронной почты или имена пользователей располагались на отдельных строках, а затем выполнить split("\n"), удалить пустые строки, убрать все завершающие «,» и удалить любые пары одинарных или двойных кавычек (например, gsub(/^['"]|['"]$/, "")).

9 лайков

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

  1. Массовое присвоение значков: Выберите значок, затем загрузите CSV-файл с адресами электронной почты пользователей.

  2. Массовое добавление пользователей в группу: Выберите группу, затем вставьте список имен пользователей или адресов электронной почты, по одному в строке.

  3. Массовое приглашение пользователей в Discourse: Загрузите CSV-файл, содержащий адреса электронной почты пользователей (с возможностью указать группу(ы), в которую их добавить, и начальное сообщение, которое им показать).

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

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

Очень часто я хочу пригласить нескольких пользователей (скажем, 5–10), и метод приглашения по одному довольно раздражающе медленный, а метод приглашения через CSV — немного хлопотный и требует запуска другой программы или ручного редактирования CSV-файла. Даже если загрузка CSV-файла останется для действительно огромных массовых приглашений, было бы здорово иметь диалоговое окно «Пригласить пользователей», похожее на то, что используется при «Массовом добавлении в группу». Конечно, оно могло бы принимать только адреса электронной почты, по одному в строке, но это вполне приемлемо.

8 лайков

Спасибо всем за обратную связь! :slight_smile:

Мы добавили поддержку имён пользователей здесь:

https://review.discourse.org/t/feature-support-uploading-a-csv-with-either-user-emails-or-usernames-8971/9183

13 лайков

Хотя это всё ещё не так просто, как вставка списка имён пользователей в поле, это огромный шаг вперёд по сравнению с необходимостью использовать электронные адреса! Есть ли планы по унификации массовой обработки добавления пользователей в группы или к бейджикам? Я не программист, но мне это кажется кодом, который можно переиспользовать :slight_smile:

2 лайка

Возможно ли награждать пользователей значком несколько раз с помощью этого? По моим тестам, похоже, что это не поддерживается.

Массовое награждение значком списка пользователей не приводит к тому, что те, у кого уже есть значок, получают его второй раз.

1 лайк

Если отмечен флажок «Может выдаваться несколько раз» (находится в нижней части страницы администрирования значка), вы должны иметь возможность выдавать значок несколько раз таким образом.

3 лайка

У меня эта функция включена, но при импорте CSV-файла (даже если это просто список пользователей, у которых уже есть значок) он не выдается повторно. Мне приходится вручную выдавать значок пользователю, прежде чем он появится в списке как выданный несколько раз.

2 лайка

Можно ли вручить значок вручную одному или двум людям, а не загружать CSV-файл?

По какой-то причине значок «энтузиаст», который должен присваиваться за 10 дней подряд входа в систему, не выдается пользователю, который заходил в систему 12 дней подряд.

1 лайк

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

На данный момент я не думаю, что можно вручную выдавать этот значок, но создание CSV-файла с именами пользователей занимает всего пару секунд. Я только что проверил это на Google Таблицах со своего телефона, и это было очень быстро. :+1:

6 лайков

Просто хочу обратить внимание на этот пост, так как из первого сообщения автора не совсем ясно, как правильно форматировать CSV-файл.

3 лайка