Add polls and voting functionality to wiki pages and tickets
This is a fully featured database driven poll macro with permission controls for voting and polls creation. Google charts is used to graphically show poll results. The purpose of this macro is to provide an easy way to integrate polls with Trac wiki and ticket pages.
- Response type: Poll creator can decide the response type for polls, ie whether you want single response poll (radio button poll) or multiple response poll (checkbox button poll).
- Google charts: Poll creator can decide which type of chart they want to use for showing poll results.
- Poll options: Poll option can be any valid english string or any Ticket number from Trac, EasyPoll will fetch summary for given ticket and use it as option text.
- Change vote: Poll creator can manage whether user can change their vote or not after casting it for the first time.
Permissions: this macro introduces the following permissions:
EASYPOLL_CREATE: this permission allows a user to create polls in wiki or ticket pages.
EASYPOLL_VOTE: this permission allows a user to vote on polls in wiki or ticket pages.
Note that the
TRAC_ADMIN permission provides for both of the above permissions.
Every logged in user on Trac can see EasyPoll, but can vote or create only if the user has sufficient permissions.
- EasyPoll as of now only supports ASCII characters.
- Don't use comma (,) while picking poll options, because it is used as an attribute separator. Instead, options should be separated by a colon (:).
Please provide your feedback/suggestions to hi.amigo@…. I would really appreciate it.
If you have any issues, create a new ticket.
Download the zipped source from here.
[[EasyPoll(name = my first poll, title = What's the best programming language to start with?, response_type = single, options = Python : C : PHP : Java : Lisp, user_can_change_vote = false, chart_type = pie)]]
- name (required): name is used as a poll identifier, if you change the name value than it will be treated as new poll. Nowhere in the poll the name will be shown. Don't change the name of the poll after poll creation.
- title (required): title will be used as a poll title. You can change it whenever you want.
- options (required): options should be separated by colon (:) option can also have Ticket id as their option like options = #1 : #2 : #3 In this case the summary will be pulled out from the valid tickets and will be used as option text with ticket link.
- response (optional): response can take two values (1) multiple and (2) single. Default is (2) single option.
- multiple: multiple response type will generate poll with checkboxes, in this case user can choose multiple options.
- single: single response type will generate poll with radio buttons, in this case user can choose only one option.
- user_can_change_vote(optional): user_can_change_vote can take two values (1) false and (2) true. Default is (1) false.
- false: once user cast their vote, they cannot change their vote, Poll will be disabled for them, however they can see poll results.
- true: user can change their vote at any time and many times. Poll will always be enabled for them and they can see poll results.
- chart_type(optional): chart_type can take two values (1) pie and (2) bar. Default is (1) pie.
- pie: Pie chart will be used to show poll results.
- bar: Bar chart will be used to show poll results. User can see poll results only after casting their vote.
Sample Poll Example: