feat(admin): new Django admin dashboard landing page#4665
Conversation
Replace the stock admin index (alphabetical app/model table) with an Astro/React dashboard rendered via the existing custom-admin overlay. Backend: - custom_admin/index.py overrides admin.site.index, bucketing registered models into 9 workflow groups (+ Other catch-all so nothing is dropped), builds quick-action links (schedule builder, grants, submissions), and renders astro/landing.html with JSON-safe context. - tests cover grouping, exhaustive coverage, catch-all, link resolution and JSON serializability. Frontend (custom_admin Astro app): - pages/landing.astro + components/landing/* (root, dashboard, group cards, quick actions, placeholder stat cards, collapsible all-models fallback). Stats values are placeholders; wiring real data via /admin/graphql is a follow-up. Spec in specs/django-admin-landing-page.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Replaces Django's stock admin index with a custom Astro/React dashboard landing page. The overall approach is consistent with the existing custom-admin pattern. Error Handling
Architecture
TestingAll tests run as superuser — the
Performance
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #4665 +/- ##
==========================================
- Coverage 92.52% 92.50% -0.03%
==========================================
Files 359 360 +1
Lines 10800 10856 +56
Branches 821 829 +8
==========================================
+ Hits 9993 10042 +49
- Misses 696 699 +3
- Partials 111 115 +4 🚀 New features to boost your workflow:
|
|
/deploy |


What
Replaces the stock Django admin index (
/admin/— alphabetical app/model table) with a modern dashboard landing page, rendered as an Astro/React overlay using the existing custom-admin pattern.Built spec-driven — see
specs/django-admin-landing-page.md.How
Backend (
backend/custom_admin/)index.pyoverridesadmin.site.index(no AdminSite subclass / re-registration needed).astro/landing.htmlwith JSON-safegroups/all_apps/quick_linkscontext.admin.pywiresinstall_custom_index().Frontend (
backend/custom_admin/src/)pages/landing.astropasses props viato_json_for_prop.components/landing/:root(Base/Apollo + DjangoAdminLayout),dashboard,group-card,quick-actions,stat-card(placeholder),all-models(collapsible fallback),types.Tests / checks
Not done yet
—; wiring real numbers via/admin/graphqlis a deliberate follow-up.docker-compose up+ codegen). Reviewer should confirm/admin/renders and other proxied Astro pages (schedule-builder etc.) still work, and thatpnpm buildsucceeds.Open questions
index.pyGROUPS).🤖 Generated with Claude Code