Feature proposal:
Allow badges to be placed in groups, and set a limit of how many badges each user may have from each defined group (this would be a per-group setting).

My specific use case:
I'm running a Boy Scout troop website, and have badges set up indicating scout ranks. A Scout can only be one rank, so would like to limit them to only choosing one of the rank badges. There are also badges for other things which would be fine to leave in the free-for-all state. :)

Comments

justdave’s picture

I am not against doing coding for this if the feature is wanted, but I would like guidance on how you'd like it implemented if you want it. If we go the absolute simple route with only allowing one from each group (rather than a per-group setting with a limit), then an extra column in the badges table to indicate a group ID is probably all the structure that is needed (allow nulls, restriction only applies if there's a group ID set and it matches the group ID of any other badges). If we allow a per-group limit setting then we probably need another table to define the groups (which might be useful anyway if we want to give names to the groups).

nancydru’s picture

Related: #1787330: Visual badge selector

I like the idea and certainly your type of use case (rank, achievement) has been suggested before, although perhaps not as eloquently. There has also been the suggestion of using Rules for/with this (think of promotions).

If one thinks of using Rules, then perhaps the group definition makes more sense ("user may have only x of ..."). I don't know if you are conversant with Rules development; I am not yet. But, as a beginning user of Rules, it makes sense to me to off-load that kind of logic to a module designed specifically for that purpose.