사용자 그룹에 일괄 배지 부여하기

배지는 일을 잘하는 사용자를 인정하는 훌륭한 방법입니다. 이제 Discourse에서는 사용자 집단에 배지를 수여할 수 있습니다.

관리자 패널의 배지 섹션으로 이동하면, ‘새로 만들기’ 버튼 옆에 '일괄 수여’라는 새로운 버튼이 추가된 것을 확인할 수 있습니다:

Screen Shot 2020-01-15 at 11.34.31

이 버튼을 클릭하면 배지를 선택하고 시작하도록 안내받게 됩니다:

수여할 배지를 선택한 후, 사용자 이메일이나 사용자 이름 목록(한 줄에 하나씩)이 포함된 CSV 파일을 업로드하세요.

이후 다음과 같은 메시지가 표시됩니다:

Discourse는 일치하는 사용자를 찾아 해당 배지를 수여하고, 사용자에게 알림을 보냅니다.

48개의 좋아요

This is cool.

I propose changing this language to “awarding a badge to a set of users”, as group has a specific meaning in Discourse and a bunch of random email addresses in a CSV isn’t it :wink:.

23개의 좋아요

Very nice, This will be useful :slight_smile:

5개의 좋아요

Awww Yiss, that’s very handy. Thanks :slight_smile:.

3개의 좋아요

This is great, thanks for the feature :slight_smile:

5개의 좋아요

Selecting them from a user list could be easier if possible. Good feature anyway.

5개의 좋아요

Yes that’s my ideal idea. :grin:

Just press on users you want to award too.

2개의 좋아요

Sorry, but I’m not 100% clear on this. Terminology I’m familiar with is:

enclosure, delimiter (the separator) and terminator

enclosure is often quotation marks
delimiter is often a comma
terminator is often a newline

eg.

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

I doubt you mean

rkelly@gmail.com 
, 
counselor@hotmail.com 
, 
tman@yahoo.com 
1개의 좋아요

What I meant was:

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

I edited the post.

6개의 좋아요

When bulk-adding users to a group, the system expects a list of user names. When bulk-adding users to a badge, the system expects a .csv file with e-mail addresses.

Personally I prefer the list of usernames, as it’s a lot easier to get those from the forums without jumping through admin-y hoops, and I’ve got some Excel tricks that can spit out a copy-and-pastable list. I used to bulk-assign badges by bulk-adding a list to a temporary group, then changing the badge query to assign to that whole group. When ‘award a badge to a set of users’ popped up I’d hoped to cut out a step…

Is there any way to make the list-of-users method a valid alternative way to bulk-assign badges?

8개의 좋아요

I agree we should be supporting both.

If the first item in the list has an “@”, then import by email, otherwise, import by username.

Also, we could be a little more lenient when it comes to the format of that list.

We could just require the emails/usernames to be on their own line and then do a split("\n"), remove any empty lines, remove any trailing “,” and remove any pair of single/double quotes (eg. gsub(/^['"]|['"]$/, "")).

9개의 좋아요

I know it’s hard and starts to risk mission-creep, but I wonder if over time the admin UI could aim towards more consistency across all Admin bulk operations? For example when:

  1. Awarding Badges in bulk: Select badge then upload a CSV of users’ email addresses

  2. Adding users to a Group in bulk: Select group then paste a list of usernames or emails, one per line

  3. Inviting users to Discourse in bulk: Upload a CSV containing users’ email addresses (optionally specifying groups(s) to add them to and the initial post to show them)

Clearly these have areas of commonality but also areas of definite disparity where they are not doing the same thing. So how easy it is to work towards a consistent UI paradigm for all Admin bulk actions, I don’t know. But I thought I’d raise the issue here since it is being discussed.

Of all three variants, I’d say the nicest at the moment is the Bulk Add To Group ‘Paste a list of usernames or emails, one per line’.

Quite often I want to Invite several users (say 5-10) and the one-by-one invite method is a bit irritatingly slow, but the CSV invite method is a bit faffy and requires me to fire up another program, or edit CSV manually. Even if the CSV upload was kept for the really BIG bulk invites, it would be great to have an Invite Users dialog like the Bulk Add To Group one. Of course it could only accept email addresses, one per line, but this would be fine.

8개의 좋아요

Thanks everyone for the feedback! :slight_smile:

We added username support here:

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

13개의 좋아요

Though still not as simply as pasting a list of usernames into a box, that’s a great step forward from needing e-mails! Are there any plans to unify the bulk handling of adding users to groups or badges? I’m not a programmer, but that sounds like re-usable code to me :slight_smile:

2개의 좋아요

이 방법으로 사용자에게 배지를 여러 번 수여할 수 있을까요? 제 테스트 결과로는 지원되지 않는 것으로 보입니다.

사용자 목록에 배지를 일괄 수여해도 이미 해당 배지를 보유한 사용자에게는 두 번째로 수여되지 않습니다.

1개의 좋아요

배지의 “여러 번 수여 가능”(배지 관리 페이지 하단 섹션에서 찾을 수 있음) 체크박스가 선택되어 있다면, 이 방식으로 배지를 여러 번 수여할 수 있어야 합니다.

3개의 좋아요

활성화되어 있지만, CSV 가져오기(이미 배지를 보유한 사용자의 사용자 이름 목록만 포함하더라도)를 통해 배지를 다시 부여하지 않습니다. 사용자가 여러 번 배지를 받은 것으로 표시되려면, 먼저 해당 사용자에게 배지를 수동으로 부여해야 합니다.

2개의 좋아요

CSV 파일을 업로드하는 대신, 수동으로 특정 1~2명에게만 배지를 수여할 수 있나요?

어떤 이유인지 모르겠지만, 10일 연속 로그인 시 부여되는 ‘enthusiast’ 배지가 12일 연속 로그인한 사용자에게 정상적으로 작동하지 않고 있습니다.

1개의 좋아요

그 배지는 꽤 신뢰할 수 있다고 생각하지만, 때로는 시간대와 UTC의 차이가 다른 것처럼 보이게 할 수 있습니다.

현재 그 배지를 수동으로 부여할 수 없다고 생각하지만, 사용자 이름만 포함된 CSV 파일을 만드는 데는 고작 1~2초밖에 걸리지 않습니다. 방금 휴대폰으로 Google 스프레드시트를 사용해 한번 해봤는데, 정말 빠르더군요. :+1:

6개의 좋아요

OP가 CSV를 올바르게 포맷하는 방법에 대해 명확하지 않았기 때문에 이 게시물을 강조하고 싶습니다.

3개의 좋아요