A Wagtail admin report listing every page comment in one place.
Project description
wagtail-comments-report
A Wagtail admin report that lists every page comment across the site in one place, with filters and dedup.
Why
Wagtail puts comments inside each page's edit view. There is no built-in way to scan all open comments across the whole site, which makes it easy to forget about open threads on pages you rarely touch.
This package adds a Comments entry under Reports in the Wagtail admin showing:
- Comment text, page, author, date, and Open / Resolved status, ordered newest first.
- Filters: author, page, date range, and a tri-state Status (Open / Resolved / All) that defaults to Open so editors land on outstanding comments first.
- CSV / XLSX export (provided by Wagtail's
SpreadsheetExportMixin). - Automatic deduplication of
Commentrows that Wagtail can stash at the same(page, user, contentpath)as a side effect of revision saves — only the most recent row per logical comment is shown.
Install
pip install wagtail-comments-report
Add the app to INSTALLED_APPS (after wagtail.admin so the report
URLs and menu hooks are picked up):
INSTALLED_APPS = [
# ...
"wagtail.admin",
"wagtail",
"wagtail_comments_report",
# ...
]
No migrations are required — the report reads wagtail.models.Comment
directly.
Configuration
None required. The report appears under Reports > Comments in the Wagtail admin to any user with admin access.
The status filter defaults to Open. To link directly to all
comments (or only resolved), pass ?status=all or ?status=resolved
on the URL.
Compatibility
The package itself has no hard pins on Django or Wagtail — pip will
install on whatever you've got. What's actively tested in CI (defined
in pyproject.toml under [tool.hatch.envs.hatch-test]):
- Python 3.10, 3.11, 3.12, 3.13, 3.14
- Django 5.2 and 6.0
- Wagtail 6.4+ (with Django 5.2) and Wagtail 7.x (with Django 5.2 or 6.0)
- Postgres or SQLite (the dedup uses portable
Max("id")aggregation, notDISTINCT ON)
Combinations not exercised: Django 6 needs Python 3.12+, and Wagtail 6 doesn't run on Django 6. The matrix excludes those.
It will probably work on older Wagtail/Django too — those just aren't in the matrix. If you find a real incompatibility, open an issue or a PR with a CI matrix entry.
Development
The test matrix is managed by Hatch and
defined in pyproject.toml under [tool.hatch.envs.hatch-test]. The
fastest way to drive it is with uv:
# run the full matrix (note --all; without it hatch only runs ONE env)
uvx hatch test --all
# run one cell
uvx hatch test --include "python=3.13" --include "wagtail=7"
# filter pytest across the whole matrix
uvx hatch test --all -k test_report_dedupes
# lint
uvx hatch fmt --check
If you'd rather skip the matrix and just run pytest in one interpreter:
uv sync --extra test
uv run pytest src/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wagtail_comments_report-1.0.0.tar.gz.
File metadata
- Download URL: wagtail_comments_report-1.0.0.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc02c7b451598f88dde9f2257811243f67822a241cb0327d96632997f99d49da
|
|
| MD5 |
c01810453f4ce54d0e97d0046bc6507f
|
|
| BLAKE2b-256 |
ffbbce0c706265135b64cc4808e7b20f4ce44bad94f71decfd15a34a41e5b4aa
|
Provenance
The following attestation bundles were made for wagtail_comments_report-1.0.0.tar.gz:
Publisher:
release.yml on bartTC/wagtail-comments-report
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wagtail_comments_report-1.0.0.tar.gz -
Subject digest:
bc02c7b451598f88dde9f2257811243f67822a241cb0327d96632997f99d49da - Sigstore transparency entry: 1470253550
- Sigstore integration time:
-
Permalink:
bartTC/wagtail-comments-report@d6d52e5ec2ce4c0726c91de63d8381f6e5babdc0 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/bartTC
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d6d52e5ec2ce4c0726c91de63d8381f6e5babdc0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file wagtail_comments_report-1.0.0-py3-none-any.whl.
File metadata
- Download URL: wagtail_comments_report-1.0.0-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a088ada165a5bc7f28d8bf8f80be4d49d105d787a6768798f729f975532156d5
|
|
| MD5 |
7a8b041cb8b06392178066ae30139231
|
|
| BLAKE2b-256 |
f14eba971ae245db88e16da81347f5f129cdc18dc357610cd5c86ba094ac039b
|
Provenance
The following attestation bundles were made for wagtail_comments_report-1.0.0-py3-none-any.whl:
Publisher:
release.yml on bartTC/wagtail-comments-report
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wagtail_comments_report-1.0.0-py3-none-any.whl -
Subject digest:
a088ada165a5bc7f28d8bf8f80be4d49d105d787a6768798f729f975532156d5 - Sigstore transparency entry: 1470253774
- Sigstore integration time:
-
Permalink:
bartTC/wagtail-comments-report@d6d52e5ec2ce4c0726c91de63d8381f6e5babdc0 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/bartTC
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d6d52e5ec2ce4c0726c91de63d8381f6e5babdc0 -
Trigger Event:
push
-
Statement type: