I’m having a hard time mapping the semantics of groups and categories to the more community-based model of organization that we use in our system.
Background: our intent is to use Discourse as one component in a larger system used by medical researchers to share experimental results. This includes, for example, tools that would allow a user to create a graph showing an analysis of a clinical trial and attach that to a post as an embed. There’s also a portal page that leads to various apps, and one of those would be discussion boards based on Discourse.
In our model, users are organized into communities or groups which we call “collaborations”, but you can think of them as teams or departments. Each team consists of a set of researchers working on a particular problem. A member of a team who wanted to share some information would post a message to that team. However, occasionally one might want to share data more widely, posting to multiple teams.
As you probably already noticed, this is exactly the semantics of email groups, G+ communities, and many others I could name. If I am working for a company and I am a member of groups A and B, and a message is posted to both A and B, I only get one copy of the message.
Trying to map this on to Discourse’s groups: the closest I can get is to write a script to create, for each team, both a group and a category with the same name as the team. However, I can’t post to multiple categories (and I imagine that this would be very difficult to change in the code, as I suspect it’s pretty well baked into the db schema).
And to be honest, I think categories is the wrong tool for this - a category should really be a collection of posts with related topics, not a collection of posts that are visible by a subset of users.
Ideally, what I’d like to see is a site-specific option to add a ‘visible to’ field to the compose window, which would default to ‘everyone’, but where one could put a list of groups (and possibly individual users).