Javier Braña
ba614bddbc
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
2026-08-03 13:44:10 +02:00
Javier Braña
a65d4b12f2
feat(inspections): add photos support with edit + lightbox
...
- Validación robusta fotos (10MB, jpeg/png/webp, max 10)
- Editar inspección existente: botón en historial, modal y tabla
- Eliminación individual de fotos en edición (marcar + guardar)
- Lightbox/carousel en modal ver + editar (Alpine.js)
- Columna 'Fotos' en InspectionTable con thumbnails + contador
- Permiso 'edit inspections' en seeders + checks en componente
- Test actualizado: seed roles/permisos + attach template pivot
- Fix: removed unsupported filterable() on secondaryHeaderFilter
2026-07-29 01:44:38 +02:00
javier and Claude Opus 4.7
fd9c12a074
fix(seeder): admin sin factory (funciona con composer install --no-dev)
...
RolesAndPermissionsSeeder creaba el usuario admin con User::factory()->create(),
que depende de fakerphp/faker (require-dev). En producción, tras
"composer install --no-dev", db:seed reventaba con:
"Call to undefined function Database\Factories\fake()"
Sustituido por User::firstOrCreate(email, [...]) — idempotente y sin dependencia
de fakerphp/faker. Suite 91 verde.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-07-06 16:59:04 +02:00