Summary
The portal ticket list was refactored to use shared components (list_page_header, list_page_filters, list_page_skeleton from shared/ui/templates/components/), resulting in a clean 27-line template. The platform ticket list was never migrated — it's 275 lines of inline HTML with divergent UX patterns. This issue standardizes both pages.
Current State
| Aspect |
Portal (27 lines) |
Platform (275 lines) |
| Header |
Shared list_page_header.html |
90 lines inline HTML |
| Filters |
Tab bar via shared list_page_filters.html |
Raw select dropdown |
| Skeleton |
Shared list_page_skeleton.html |
Duplicated 2x inline (~100 lines each) |
| Status badges |
badge tag with status_label/status_variant/status_icon filters |
Inline if/elif chains (30+ lines) |
| Date format |
d.m.Y (24.03.2026) |
j M Y (24 Mar 2026) |
| Ticket column |
"TK" avatar circle (redundant — all tickets start with TK) |
Same redundant "TK" avatar |
| Tab labels |
"Waiting on You" (customer-facing) |
"Waiting on Customer" (staff dropdown) |
Tasks
Platform list.html migration
Platform tickets_table.html standardization
Remove redundant TK avatar from both tables
Verify
Key Files
Shared components (already exist):
- shared/ui/templates/components/list_page_header.html
- shared/ui/templates/components/list_page_filters.html
- shared/ui/templates/components/list_page_skeleton.html
Portal (reference implementation):
- services/portal/templates/tickets/ticket_list.html — 27-line template using shared components
- services/portal/apps/tickets/views.py:23-38 — TICKET_STATUS_TABS definition
Platform (to migrate):
- services/platform/templates/tickets/list.html — 275 lines to ~30 lines
- services/platform/templates/tickets/partials/tickets_table.html — badge standardization
- services/platform/apps/tickets/views.py:55-108 — ticket_list view context
- services/platform/apps/tickets/views.py:110-148 — ticket_search_htmx view context
- services/platform/apps/tickets/urls.py:13 — search endpoint already exists as search_htmx
Both tables (TK avatar removal):
- services/portal/templates/tickets/partials/tickets_table.html
- services/platform/templates/tickets/partials/tickets_table.html
Summary
The portal ticket list was refactored to use shared components (list_page_header, list_page_filters, list_page_skeleton from shared/ui/templates/components/), resulting in a clean 27-line template. The platform ticket list was never migrated — it's 275 lines of inline HTML with divergent UX patterns. This issue standardizes both pages.
Current State
Tasks
Platform list.html migration
Platform tickets_table.html standardization
Remove redundant TK avatar from both tables
Verify
Key Files
Shared components (already exist):
Portal (reference implementation):
Platform (to migrate):
Both tables (TK avatar removal):