feat(tasks): complete task management system with Kanban, Calendar, notifications

- Add Task model with subtasks, priorities, status transitions, dates, hours
- Add Comment polymorphic model for tasks/issues/projects
- Livewire components: TaskManager (list+filters), TaskForm (modal), TaskDetail, TaskKanban (drag&drop), TaskCalendar (FullCalendar)
- TaskPolicy with permissions (view/create/edit/delete/assign/manage all)
- Notifications: assigned, status change, overdue, comment added
- Daily overdue notification job scheduled
- Dashboard widget unifies IssueTask + Task
- i18n: en/es/fr/ru (393 keys each)
- Routes, navigation, offline sync support
- 101 tests passing, Pint compliant on new files
This commit is contained in:
Javier Braña
2026-08-03 13:44:10 +02:00
parent a65d4b12f2
commit ba614bddbc
62 changed files with 5878 additions and 382 deletions
+32 -1
View File
@@ -106,6 +106,8 @@
"Language": "Language",
"English": "English",
"Spanish": "Spanish",
"French": "French",
"Russian": "Russian",
"Select language": "Select language",
"Notifications": "Notifications",
"Permissions": "Permissions",
@@ -395,5 +397,34 @@
"My Projects": "My Projects",
"Editable": "Editable",
"Name of responsible": "Name of responsible",
"Select template...": "Select template..."
"Select template...": "Select template...",
"Tasks": "Tasks",
"Task": "Task",
"New Task": "New Task",
"Create Task": "Create Task",
"Edit Task": "Edit Task",
"Delete Task": "Delete Task",
"Task title": "Task title",
"Task description": "Task description",
"Due date": "Due date",
"Start date": "Start date",
"Estimated hours": "Estimated hours",
"Actual hours": "Actual hours",
"Assigned to": "Assigned to",
"Parent task": "Parent task",
"Subtasks": "Subtasks",
"No subtasks": "No subtasks",
"Add subtask": "Add subtask",
"Comments": "Comments",
"Add comment": "Add comment",
"Write a comment...": "Write a comment...",
"No comments yet": "No comments yet",
"Task created": "Task created",
"Task updated": "Task updated",
"Task deleted": "Task deleted",
"Status changed": "Status changed",
"Overdue": "Overdue",
"Due today": "Due today",
"Progress": "Progress",
"Order": "Order"
}