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.0a2

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.0a2
File Size Uploaded Provenance
collective_polls-3.0.0a2.tar.gz 390.9 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 802.7 kB

Release files / collective_polls-3.0.0a2.tar.gz

Download URL collective_polls-3.0.0a2.tar.gz
Size 390.9 kB
Tags Source
SHA-256 checksum
How to use checksums
cab2cc46ed421fd96877fffa183d96ae1a2de39e1918a9c48e2246482aad1433
BLAKE2b-256 checksum
How to use checksums
a66eac6ee6cee07ea49644f0bdc9dbfc8d599e191081cb8f8b43844724a4eef4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","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.0a2-py3-none-any.whl

Download URL collective_polls-3.0.0a2-py3-none-any.whl
Size 411.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0ab457aecc039bc7a6afbe7a4b67c9f74d4b280a2353ba7f624ca97dc660715e
BLAKE2b-256 checksum
How to use checksums
69cdab88cdc26d70898edd32323739064fec4a1f326d407577b12096925eb6c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","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}

Security for collective.polls 3.0.0a2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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