Skip to main content

A content type, workflow, and portlet for conducting online polls, for anonymous and logged-in users.

Project description

Life, the Universe, and Everything

A content type, workflow, and portlet for conducting online polls, for anonymous and logged-in users.

Don’t Panic



  • Polls can be opened for anonymous users to vote
  • If a open poll, allowed for anonymous is in a private folder nobody can vote. The parent folder of this poll should be published before opening the poll for this field to take effect
  • Voting can take place in the object or in a voting portlet
  • The voting portlet shows automatically the latest open poll or a specific open poll and closed polls
  • Users can see partial results of the poll
  • Results can be shown using a bar chart, a pie chart, or just by number of votes
  • Polls can have relations with other content in the site

Workflow description

The workflow associated with polls has the following states: Private, Pending review, Open and Closed.

  • Polls are created in Private state; only Owner, Manager, Editor or Site Administrator roles can modify them
  • When a poll is Private it can be sent to Pending review or directly to Open, if the user has the proper role (Reviewer, Manager, Site Administrator)
  • When a poll is Pending review it can be edited by Manager, Editor, Reviewer or Site Administrator roles
  • A poll in Pending review can be sent to Open, with “Review portal content” permission, or to Private, with “Request review” permission
  • When the poll is Open, people can only vote; nobody can modify the poll in any way
  • An Open poll can be sent to Private or Closed state by Reviewer, Manager or Site Administrator roles
  • When an Open poll is sent to Private, all votes are removed to avoid data manipulation.
  • When a poll is Closed nobody can modify it, nor can anyone vote on it; there is no way to reopen a closed poll

Mostly Harmless

Have an idea? Found a bug? Let us know by opening a support ticket.


To enable this product in a buildout-based installation:

  1. Edit your buildout.cfg and add collective.polls to the list of eggs to install:

    eggs =
  2. If you are using Plone 4.1 you may need to extend a Dexterity known good set (KGS) to make sure that you get the right versions of the packages that make up Dexterity:

    extends =

After updating the configuration you need to run ‘’bin/buildout’‘, which will take care of updating your system.

Go to the ‘Site Setup’ page in a Plone site and click on the ‘Add-ons’ link.

Check the box next to ‘’collective.polls’’ and click the ‘Activate’ button.

Note: You may have to empty your browser cache and save your resource registries in order to see the effects of the product installation.

Share and Enjoy

collective.polls would not have been possible without the contribution of the following people:

  • Franco Pellegrini
  • Héctor Velarde
  • Érico Andrei
  • Rafahela Bazzanella
  • Silvestre Huens
  • Elio Schmutz
  • Timon Tschanz
  • WebDesignerDepot (icon)

Development sponsored by Open Multimedia and Simples Consultoria.


Because you have to know where your towel is.

1.2 (2012-09-16)

  • EnhancedTextLinesFieldWidget widget was updated; new features (like inline editing and reordering) are now available. [hvelarde]
  • Added the ‘open’ transition to the ‘closed’ state, that way, polls can be re-opened after they were closed (closes #53). [frapell]

1.1 (2012-08-14)

  • Multiple poll charts can be rendered in one page. [Quimera]
  • Multiple poll portlets can be rendered in one page. [Quimera]
  • Updated Brazilian Portuguese translation. [rafahela]
  • Add translation functionality for the ‘Others’ string and translate it to German. [eschmutz]
  • Fixed translation strings for actions on poll workflow; updated Spanish and Brazilian Portuguese translations. [hvelarde]
  • Update German translations. [tschanzt]
  • allow_anonymous field is always shown (fixes #51). [hvelarde]
  • Some refactoring on tests was done; we now test for CSS installation and removal. [hvelarde]
  • DataGridField widget was replaced with EnhancedTextLinesFieldWidget. [flecox, hvelarde]

1.0.1 (2012-05-08)

  • Fix UnicodeDecodeError in PossiblePolls vocabulary when we have a poll with umlauts in the title. [elioschmutz]
  • Add German translation. [elioschmutz]

1.0 (2012-05-02)

  • Tested for Plone 4.2 compatibility. [hvelarde]
  • Updated Dexterity version requirement (we want to use latest version to avoid any issues). [hvelarde]
  • Added a nice hack to include both README.txt and README.rst in the package declaration. [hvelarde]
  • Pie chart is now shown when all votes go to one option (issue #27). [flecox]

1.0rc2 (2012-02-20)

  • Ajax load of partial results on portlet (issue #37). [Quimera]
  • Updated Brazilian Portuguese translation. [ericof]
  • Added option to control if portlet shows closed polls when no open ones are available (issue #32). [ericof]
  • Added validation for Poll options (issue #31). [ericof]
  • Add a subscriber to erase votes when poll is sent back to revision (issue #33). [ericof]
  • Fix Anonymous permissions to View and Vote on polls. [ericof]
  • Modify workflows and permissions to be consistent with the ones used in Plone. [ericof]
  • Fixed file. [nueces]
  • Renamed the workflow state to ‘Opened’ instead of ‘Published’ (issue #26). [frapell]
  • Updated tests and translations. [frapell]
  • Added the pieChart to the portlet (issue #23). [frapell]
  • Made the poll redirect to the place where the vote was casted (issue #22). [frapell]
  • Updated Spanish translation. [hvelarde]
  • Fixed permissions on private and pending states (issue #20). [hvelarde]
  • Fixed javascript registry uninstall and tests. [hvelarde]

1.0rc1 (2012-01-10)

  • Initial release.

Project details

Release history Release notifications

History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


This version
History Node


History Node


History Node


History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date (112.2 kB) Copy SHA256 hash SHA256 Source None Sep 17, 2012

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page