List & Activity Widgets
List & Activity Widgets
List and activity widgets display structured data in tabular or feed formats, making them ideal for monitoring recent events, tracking outstanding items, and keeping an eye on key operational details. All list widgets share a common foundation — the ListWidget component — while specialised variants add context-specific behaviour such as navigation links, severity badges, and summary chips.
List Widget (Generic)
The ListWidget component is the base for all list-type widgets. It renders a compact data table with configurable columns, optional summary chips at the top, and a “View All” link at the bottom. Key features include:
- Configurable data source — set via data_source in the widget configuration to pull from any supported data provider
- Column definitions — each column specifies a key, label, and optional width percentage
- Smart column rendering — status columns display as colour-coded chips, severity columns use urgency colours, and link columns (names, numbers) are clickable
- Summary section — toggle via show_summary in the configuration to display aggregate values as tonal chips above the table
- CSV export — click the export button in the widget header to download the list data as a comma-separated file
- Mobile responsive — on small screens, columns are reduced to the first three for readability, and row density is increased
Recent Projects Widget
The RecentProjectsWidget (backed by RecentProjectsCalculator) displays the most recently created projects. Each row shows the project_number, name, client_name, status_label, start_date, and total_value. Status is rendered as a colour-coded chip — blue for quote, green for confirmed, primary for in progress, red for cancelled. Click any project row to navigate directly to its detail page at /projects/{id}. The “View All” link opens the full projects list.
Overdue Invoices Widget
The OverdueInvoicesWidget (backed by OverdueInvoicesCalculator) lists invoices past their due_date with status set to overdue. Columns include invoice_number, client_name, total (formatted with £ symbol), due_date, and days_overdue_label. Severity is colour-coded automatically:
- Low (info) — fewer than 14 days overdue
- Medium (orange) — 14 to 29 days overdue
- High (warning) — 30 to 59 days overdue
- Critical (error) — 60 or more days overdue
A summary row at the top shows the total count and total overdue amount. Items are sorted by most overdue first. This is a financial widget — it requires financial access permissions. Click any invoice row to navigate to /financial/invoices/{id}.
Upcoming Deliveries Widget
The UpcomingDeliveriesWidget (backed by UpcomingDeliveriesCalculator) shows deliveries scheduled for the next 7 days. It queries ProjectTransport records by departure_time and displays columns for departure time, project name, client name, vehicle, destination (to_location), and delivery status. Status badges use colour coding: blue for scheduled, primary for in transit, green for delivered, amber for delayed. The widget defaults to 10 items sorted by soonest departure first.
Maintenance Due Widget
The MaintenanceDueWidget (backed by MaintenanceDueCalculator) lists equipment with preventive maintenance due within the next 7 days. It queries the PreventiveMaintenanceSchedule model using next_due_at. Columns include equipment_name, task_description, next_due_at, a human-readable days_label (e.g., “Due tomorrow”, “In 3 days”, or “2 days overdue”), priority, assigned_to, and estimated duration. Priority levels are colour-coded: green for low, blue for medium, amber for high, red for critical or emergency. Overdue tasks are highlighted in red regardless of priority.
Top Equipment Widget
The TopEquipmentWidget (backed by TopEquipmentCalculator) ranks equipment items by total revenue generated from project rentals. Columns display rank, equipment_name, category, total_revenue_formatted, rental_count, avg_daily_rate_formatted, and revenue per rental. Revenue is calculated by multiplying quantity by rate (using rate_override if set, otherwise the default daily_rate) and the rental duration. You can optionally filter by category using the category_filter configuration. This widget is invaluable for identifying your best-performing inventory and making informed purchasing decisions.
Activity Feed Widget
The ActivityFeedWidget shows a real-time feed of recent system events. Each entry displays an avatar icon coloured by event type, a title, the user who performed the action, and a relative timestamp (e.g., “3m ago”, “2h ago”). Supported activity types include:
- project_created, project_updated, project_completed
- invoice_sent, invoice_paid, quote_sent, quote_accepted
- equipment_checked_out, equipment_checked_in
- crew_assigned, crew_clocked_in, crew_clocked_out
- client_created, note_added, comment
When connected via WebSocket, new activities slide in with an entrance animation and a brief highlight effect. A green “Live” indicator appears in the widget header when real-time updates are active. The feed displays the last 10 items by default.
Discussions Widget
The DiscussionsWidget (also labelled “Threads” in the interface) shows recent project discussions and communication threads. Each entry displays a type-specific avatar (blue for quotes, green for invoices, purple for documents, orange for freelancers, indigo for projects), the thread subject, time since last activity, and an unread badge count. A chip at the top shows the total number of unread threads. Click any thread to navigate to /threads?id={id}. The widget fetches the 5 most recent discussions by default.
My Tasks Widget
The my_tasks widget type (backed by MyTasksCalculator) displays the current user’s assigned tasks filtered to pending and in-progress statuses. Each task shows its title, due date, priority level, and the project it belongs to. The default limit is 10 items. This widget is included in the Crew Dashboard template and is useful for any role that needs a personal to-do overview.
Recent Activity Widget
The recent_activity widget type provides a broader activity log covering all recent system events, similar to the Activity Feed but presented in a list format rather than a feed layout. It is included in the basic widget set available to all roles.
Tips for list and activity widgets
- Place the Overdue Invoices widget prominently on finance-focused dashboards — it surfaces cash collection issues immediately
- Use the Activity Feed to monitor team productivity and stay informed about system-wide changes in real time
- Combine the Top Equipment widget with the Revenue by Category chart for a complete picture of inventory performance
- The Maintenance Due widget is essential for warehouse dashboards — missed maintenance can lead to equipment failures on site
- Export any list widget to CSV for offline analysis or sharing with stakeholders who do not have system access
Was this article helpful?