Files
monica_site/site/analytics/admin.py
T
westfarn 46abaa6917
Deploy Beta / unit-tests (push) Successful in 12s
Deploy Beta / docker (push) Successful in 22s
Deploy Beta / deploy-beta (push) Successful in 5m40s
Add public PageView tracking for portal analytics (#4)
## Summary
Closes #3.

- Add `PageView` model + migration for successful public marketing GET hits
- Wire `PublicPageViewMiddleware` (skips portal/admin/accounts/api/static/health/etc.; fails soft on DB errors)
- Portal analytics report: last-30-day views + top pages table
- Admin registration and tests

## Test plan
- [ ] Apply migration `analytics.0002_pageview`
- [ ] Hit `/` and `/about/` → rows in `PageView` / admin
- [ ] Hit `/healthz/`, `/portal/`, `/admin/` → no new pageviews
- [ ] Open portal Analytics → views count + Top pages look right
- [ ] `uv run python site/manage.py test analytics.tests`

Reviewed-on: #4
2026-08-20 03:34:56 -07:00

24 lines
720 B
Python

from django.contrib import admin
from analytics.models import Attribution, PageView, UTMVisit
@admin.register(PageView)
class PageViewAdmin(admin.ModelAdmin):
list_display = ("path", "created_at")
list_filter = ("created_at",)
search_fields = ("path",)
date_hierarchy = "created_at"
readonly_fields = ("id", "path", "created_at", "updated_at")
@admin.register(UTMVisit)
class UTMVisitAdmin(admin.ModelAdmin):
list_display = ("utm_source", "utm_campaign", "path", "created_at")
search_fields = ("utm_source", "utm_campaign", "correlation_id")
@admin.register(Attribution)
class AttributionAdmin(admin.ModelAdmin):
list_display = ("lead", "utm_source", "utm_campaign", "created_at")