Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

collective.polls

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

This is the Plone backend add-on. Its Volto frontend is @plone-collective/volto-polls, and a site needs both.

Features

  • The Poll content type. A question with two or more options, which can hold the images it shows.
  • Single or multiple choice. How many options a voter can pick, the legend shown above them, and whether they appear in a random order.
  • Anonymous voting. An open poll accepts anonymous votes when it allows them and visitors can see its parent folder. A cookie keeps an anonymous visitor from voting twice.
  • A workflow of its own. Private, Pending review, Open, and Closed. Votes are collected only while open, and sending an open poll back to Private removes them.
  • A REST API. GET @poll answers the state of a poll for the current user, and POST @vote records a vote, as {"option_id": 0} or {"option_ids": [0, 2]}.
  • Export and import. With plone.exportimport, a closed poll's votes go out with its content and come back on import. The REST API never reads or writes them.
  • An upgrade from 2.x. The upgrade step moves the stored votes to the new storage and removes the voting portlets.
  • Translations in Catalan, Czech, German, Spanish, Finnish, French, Italian, Dutch, Brazilian Portuguese, and Traditional Chinese.

Documentation

Read the documentation at collective.github.io/collective.polls.

Installation

Add collective.polls to your project's dependencies.

uv add collective.polls

Then install it in your Plone site from the Add-ons control panel.

Upgrading from 2.x

Version 3 requires Plone 6.2. After upgrading the package, run the upgrade steps from the Add-ons control panel.

Contribute

Prerequisites ✅

Installation 🔧

  1. Clone this repository.

    git clone git@github.com:collective/collective.polls.git
    cd collective.polls/backend
    
  2. Install this code base.

    make install
    
  3. Create a Plone site with example content, then start it at http://localhost:8080/.

    make create-site
    make start
    

Tests

Run the test suite, with or without a coverage report.

make test
make test-coverage

Check the code, and its type annotations.

make lint
make typecheck

License

The project is licensed under GPLv2.

Credits and acknowledgements 🙏

Generated using Cookieplone (2.0.0) and cookieplone-templates (99c2201) on 2026-10-04 22:40:50.366931. A special thanks to all contributors and supporters!

Metadata

Release files for collective.polls 3.0.0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for collective.polls 3.0.0a1
File Size Uploaded
collective_polls-3.0.0a1.tar.gz 385.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for collective.polls 3.0.0a1
File Interpreter ABI Platform
collective_polls-3.0.0a1-py3-none-any.whl Python 3 none any Details

Total release size: 792.8 kB

Release files / collective_polls-3.0.0a1.tar.gz

Download URL collective_polls-3.0.0a1.tar.gz
Size 385.7 kB
Tags Source
SHA-256 checksum
How to use checksums
65bf4b1b70b0ec8019c51c316f67152548fc73b6ba2a258071a7f3bc02d84e31
BLAKE2b-256 checksum
How to use checksums
0949cd070bd91e7394949d64bedb5330118d2020b6b793a55f5c760a1a472113
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / collective_polls-3.0.0a1-py3-none-any.whl

Download URL collective_polls-3.0.0a1-py3-none-any.whl
Size 407.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ba362ee9d2a78fe2e2d3f686d7ee1ea6e0709f02fc563eeb354a1019b5cd42e7
BLAKE2b-256 checksum
How to use checksums
59802ef07770db626a0327a29443629ceae1d6e900a496c2bd5635ef7ffd1e6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page