Files
PROJECT-CONTORL/frontend/public/locales/en/workload.json
beabigegg 55f85d0d3c feat: implement soft delete, task editing fixes, and UI improvements
Backend:
- Add soft delete for spaces and projects (is_active flag)
- Add status_id and assignee_id to TaskUpdate schema
- Fix task PATCH endpoint to update status and assignee
- Add validation for assignee_id and status_id in task updates
- Fix health service to count tasks with "Blocked" status as blockers
- Filter out deleted spaces/projects from health dashboard
- Add workload cache invalidation on assignee changes

Frontend:
- Add delete confirmation dialogs for spaces and projects
- Fix UserSelect to display selected user name (valueName prop)
- Fix task detail modal to refresh data after save
- Enforce 2-level subtask depth limit in UI
- Fix timezone bug in date formatting (use local timezone)
- Convert NotificationBell from Tailwind to inline styles
- Add i18n translations for health, workload, settings pages
- Add parent_task_id to Task interface across components

OpenSpec:
- Archive add-delete-capability change

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 01:32:13 +08:00

73 lines
2.1 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"title": "Workload",
"subtitle": "View team member workload distribution",
"filters": {
"project": "Project",
"allProjects": "All Projects",
"dateRange": "Date Range",
"thisWeek": "This Week",
"thisMonth": "This Month",
"custom": "Custom"
},
"metrics": {
"totalHours": "Total Hours",
"assignedTasks": "Assigned Tasks",
"completedTasks": "Completed Tasks",
"overdueTasks": "Overdue Tasks",
"utilization": "Utilization"
},
"chart": {
"hoursPerDay": "Hours per Day",
"taskDistribution": "Task Distribution",
"byProject": "By Project",
"byPriority": "By Priority"
},
"team": {
"title": "Team Members",
"member": "Member",
"allocated": "Allocated",
"available": "Available",
"overloaded": "Overloaded",
"underutilized": "Underutilized"
},
"table": {
"member": "Team Member",
"department": "Department",
"allocated": "Allocated",
"capacity": "Capacity",
"load": "Load",
"status": "Status"
},
"status": {
"balanced": "Balanced",
"normal": "Normal",
"warning": "Warning",
"overloaded": "Overloaded",
"unavailable": "Unavailable",
"underutilized": "Underutilized"
},
"empty": {
"title": "No Workload Data",
"description": "Not enough data to display workload",
"noTasks": "No one has been assigned tasks this week",
"hint": "Team members will appear here when they are assigned tasks with due dates in this week."
},
"options": {
"showAllUsers": "Show all users",
"showAllUsersHint": "(including users without tasks)"
},
"calculation": {
"title": "Workload Calculation",
"formula": "Workload = Weekly task estimated hours ÷ Personal weekly capacity × 100%",
"requirements": "Tasks must meet all conditions to be counted:",
"req1": "Task is assigned to the member",
"req2": "Task due date falls within the selected week",
"req3": "Task has estimated hours (original_estimate)",
"req4": "Task is not completed",
"thresholds": "Load Level Thresholds:",
"normal": "Normal: < 80%",
"warning": "Warning: 80% - 99%",
"overloaded": "Overloaded: ≥ 100%"
}
}