Skip to main content

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), including Edit URL and Live URL columns linking to the page editor and the published page — clickable in XLSX.
  • Automatic deduplication of Comment rows 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.

The export has two URL columns: Edit URL (the page editor — the same target as the report table's page link) and Live URL (the published page; empty when the page isn't routable under any Site). Both are clickable hyperlinks in the XLSX export.

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, not DISTINCT 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/

Release files for wagtail-comments-report 1.1.0

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

Source distribution (sdist)

Source distribution for wagtail-comments-report 1.1.0
File Size Uploaded
wagtail_comments_report-1.1.0.tar.gz 8.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wagtail-comments-report 1.1.0
File Interpreter ABI Platform
wagtail_comments_report-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.1 kB

Release files / wagtail_comments_report-1.1.0.tar.gz

Download URL wagtail_comments_report-1.1.0.tar.gz
Size 8.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c0b3534384a5d4dcf1af2e0fa05934019a42fdb9c5d4f03d198f7c27e3822af6
BLAKE2b-256 checksum
How to use checksums
0e2e9070bf3b2ec97e7077453e23cc698b0ef6c36cd774fe055e68238d385099
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 11, 2026.

Transparency log

Release files / wagtail_comments_report-1.1.0-py3-none-any.whl

Download URL wagtail_comments_report-1.1.0-py3-none-any.whl
Size 9.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fe518d8351df01720aee1b05211371e9ae3e09cdcd18928eb7167022ee7ab8e8
BLAKE2b-256 checksum
How to use checksums
86aff8eca81ab6d0b1c65330bfa8efc1cf2bd184d8c837d66896eba55f874062
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.0

2 release files

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