Skip to content

META: SPA frontend implementation tracker — close the backend↔SPA gap for full Django-admin deprecation #160

@MartinCastroAlvarez

Description

@MartinCastroAlvarez

Goal

A consumer (production-Django pilot) wants to deprecate the legacy Django admin entirely and run only the React SPA at /admin2/. The backend has shipped most features; the SPA shell renders registry / list / detail / create / update / delete. But several backend surfaces have no SPA implementation yet — the SPA either ignores the metadata or renders a placeholder. This meta-issue tracks the remaining frontend work, each as a discrete pickup.

Each row: backend status (shipped) → SPA status (the gap) → acceptance criterion.

Frontend implementation gaps

# Surface Backend SPA gap Acceptance
1 list_filter sidebar drawer + chip row #99 (filters[] in list response) SPA doesn't render the filter sidebar / chips / URL state N-7
2 date_hierarchy drill-down strip #80 (date_hierarchy in list response) SPA doesn't render the year→month→day strip N-8
3 list_editable inline cell editing #103 (bulk PATCH endpoint + editable column flag) SPA renders the flag but no click-to-edit cell → bulk PATCH E-12
4 actions bulk-actions menu #101 (actions[] + runner endpoint) SPA doesn't render the actions menu / selection checkboxes E-?
5 M2M widget (filter_horizontal/vertical) #107 (many_to_many descriptor + widget hint) SPA renders read but no dual-list write widget E-11
6 Inlines render (Tabular/Stacked) #109 (inlines[] in detail response) SPA doesn't render inline tables / card stacks E-13 / #54
7 FileField / ImageField render #110 ({name,url,size} descriptor) SPA doesn't render thumbnail / Replace / Clear E-14
8 Session-expiry re-login modal #95 (session_expired envelope) + #79 (contract) SPA doesn't render the focus-trapped re-login modal N-5
9 Dark mode 🟡 #102 (UX contract) no SPA implementation #84 / V-6..V-8
10 Mobile patterns (FAB / bottom-sheet / swipe) 🟡 #102 (UX contract) no SPA implementation #85 / R-6..R-10
11 PWA (manifest + SW + cache-on-logout) 🟡 #102 (UX contract) no SPA implementation #86 / I-1..I-6

Plus the Django-admin-parity gaps already filed: #133 (filter-as-you-type sidebar), #136 (alphabetical sort), #138 (get_app_list groupings), #147 (parity audit).

How to pick up

  1. Claim a row on the Project board + comment here.
  2. The wire data is already in the API response — verify with GET /api/v1/<app>/<model>/ (list) or /<pk>/ (detail).
  3. UI contract lives in docs/ux/ (theming.md / responsive.md / pwa.md / states.md).
  4. Components: generic → @dar/ui; model-aware → @dar/list / @dar/details. Data flows only through @dar/data (CLAUDE.md §7).

Definition of "ready to deprecate the legacy admin"

A consumer can delete path("admin/", admin.site.urls) and lose zero workflows. That means rows 1–8 above must be ✅ (the v0.2 polish rows 9–11 are desirable but not deprecation-blocking).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestparityDjango admin parity gap (tracked in #147)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions