7.2 KiB
7.2 KiB
Complaint List Page - Layout Update
Date: February 17, 2026
Status: ✅ Complete
Overview
The complaint list page has been completely redesigned based on the template layout (templates/temp/complaint_list_temp.html). The new design features:
- Clean header with search and New Case button
- 4 Stats Cards in a row (Total, Resolved, Pending, TAT Alert)
- Filter tabs for quick filtering (All, Pending, Escalated, Resolved)
- Advanced Filters (collapsible)
- Clean table with status badges and priority dots
- Hover actions on table rows
- Pagination at the bottom
Layout Structure
┌─────────────────────────────────────────────────────────────┐
│ Complaints Registry [Search] [+ New Case] │
├─────────────────────────────────────────────────────────────┤
│ [Total 689] [Resolved 678] [Pending 11] [TAT Alert 3] │
├─────────────────────────────────────────────────────────────┤
│ [All Cases] [Pending] [Escalated] [Resolved] | [Filters] │
│ Showing: 1-10 of 689 │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────────────┐ │
│ │ ID Patient Source Dept Status Pri Act│ │
│ ├─────────────────────────────────────────────────────┤ │
│ │ #8842 John Doe MOH ER Invest. ● 👁 👤│ │
│ │ #8841 Sarah J CHI Billing Resolv. ● 👁 👤│ │
│ │ #8839 Abdullah Hospital Internal New ● 👁 👤│ │
│ └─────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Showing 10 of 689 [<] [1] [2] [3] [>] │
└─────────────────────────────────────────────────────────────┘
Key Features
1. Statistics Cards
Four cards showing key metrics:
- Total Received - Total complaints count
- Resolved - Resolved count with percentage
- Pending - Open/in progress count
- TAT Alert - Overdue complaints (>72h)
2. Filter Tabs
Quick filter buttons:
- All Cases (default)
- Pending
- Escalated
- Resolved
Active tab has navy background, inactive tabs have border.
3. Advanced Filters
Collapsible section with:
- Priority dropdown
- Department dropdown
- Apply/Clear buttons
4. Complaints Table
Columns:
| Column | Description |
|---|---|
| Complaint ID | Reference number (e.g., #8842) |
| Patient Name | Patient name + MRN |
| Source | MOH, CHI, Hospital App, etc. |
| Department | Involved department |
| Status | Badge with custom colors |
| Priority | Color dot (red/orange/green) |
| Actions | View, Assign buttons (hover) |
5. Status Badges
Custom CSS classes for status colors:
.status-resolved { background: #dcfce7; color: #166534; }
.status-pending { background: #fef9c3; color: #854d0e; }
.status-investigation { background: #e0f2fe; color: #075985; }
.status-escalated { background: #fee2e2; color: #991b1b; }
6. Priority Dots
- Critical: Red + pulse animation
- High: Red
- Medium: Orange
- Low: Green
7. Row Hover Actions
Action buttons (View, Assign) appear on row hover with smooth opacity transition.
8. Pagination
- Page numbers with navy active state
- Previous/Next arrows
- Shows range (e.g., "Showing 1-10 of 689")
Color Palette
All using Al Hammadi brand colors:
| Color | Hex | Usage |
|---|---|---|
| Navy | #005696 |
Primary buttons, active tabs, headings |
| Blue | #007bbd |
Accents, links, hover states |
| Light | #eef6fb |
Row hover background |
| Slate | #64748b |
Secondary text |
JavaScript Functions
// Toggle advanced filters
function toggleFilters() {
document.getElementById('advancedFilters').classList.toggle('hidden');
}
// Search on Enter key
// Redirects to ?search={value}
i18n Support
All text wrapped in {% trans %} tags:
- "Complaints Registry"
- "Manage and monitor patient feedback in real-time"
- "Search ID, Name or Dept..."
- "New Case"
- "Total Received", "Resolved", "Pending", "TAT Alert"
- "All Cases", "Pending", "Escalated", "Resolved"
- "Advanced Filters"
- "Showing: X of Y"
- Table headers: "Complaint ID", "Patient Name", etc.
Files Modified
templates/complaints/
└── complaint_list.html # Complete redesign (372 → ~370 lines)
Added i18n to:
templates/complaints/
└── complaint_pdf.html # Added {% load i18n %}
Comparison: Before vs After
Before
- 6 stat cards (Total, Open, In Progress, Overdue, Complaints, Appreciations)
- Filter dropdowns in a panel
- Status badges with different colors
- Full buttons always visible
After
- 4 stat cards (Total, Resolved, Pending, TAT Alert)
- Tab-based quick filters + Advanced Filters
- Custom status badge colors
- Hover-reveal action buttons
- Cleaner typography
- Better spacing
Testing Checklist
- Stats cards display correct numbers
- Filter tabs work correctly
- Advanced Filters toggle works
- Department filter dropdown populates
- Priority filter works
- Table rows are clickable
- Hover actions appear
- Status badges show correct colors
- Priority dots show correct colors
- Pagination works
- Search input works on Enter
- "New Case" button links correctly
- All text is translatable
- Responsive layout on mobile
API/Backend Requirements
The template expects these context variables:
{
'complaints': Page object,
'stats': {
'total': int,
'resolved': int,
'resolved_percentage': float,
'pending': int,
'overdue': int,
},
'status_filter': str, # optional
'priority_filter': str, # optional
'department_filter': str, # optional
'departments': QuerySet, # for filter dropdown
'can_edit': bool,
}
Notes
- Table row is clickable (links to detail page)
- Hover effects use
group-hover:opacity-100 - Priority dots use
animate-pulsefor critical - All colors match Al Hammadi brand palette
- Clean, modern design with proper spacing
Implementation Complete ✅