I should be able to vote on a collection of Things or Tags
Summary: This is for any use case where we want people to be able to opine on a selection of choices. Almost any sort of "poll" use case will want it.
I believe this is pretty straightforward. But here are some thoughts:
- I believe the Things version is more important, so focus on that first.
- The heart of it is a new
DiscreteSummarizer
. This looks to be pretty similar to the RatingSummarizer
, with the UVT
type parameter as OID.
- It isn't obvious how best to implement
wikifyKey()
for that Summarizer.
- The values that you are selecting from should probably be a QL expression, which produces a List of Things. It can't be as simple as "all Instances of Foo" or something like that -- for instance, in the NE Scala case, we have several separate votes, for Long, Medium, and Lightning Talks. They're all the same Model, but different filters on it.
- The biggest challenge is probably the UI for selecting options.
RatingType
hard-codes the "stars" display, but in this case we want to be a lot more flexible, I believe. We certainly want to be able to display the names of the options as a simple checklist, but that's sub-optimal for more interesting use cases (eg, NE Scala Proposal Management). Ideally, we want to be able to show a full display of each option, with the checkbox inside of it.
- A crucial and common variation of this is "vote for up to N", where N might be 1 but also might be, say, 3. The back end should enforce this limit; the front end needs a way to reflect it to the user if they have hit the limit. This wants some UX design. (Frankly, getting this right might be the hardest part of the whole thing, especially in light of the previous bullet.)