Modificación del userController para el cambnio de rol si es alumno o docente

This commit is contained in:
2026-05-05 18:33:36 -06:00
parent 59b7ff87f3
commit 91d0813a9c
21 changed files with 1267 additions and 165 deletions
+27 -5
View File
@@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use App\Models\Alumno;
use App\Models\Campan;
use App\Models\Entrega;
use App\Models\Tarea;
use Illuminate\Http\Request;
@@ -16,22 +17,43 @@ class EntregaController extends Controller
$alumno = Alumno::whereHas('alumnos', fn($q) => $q->where('id', Auth::id()))->first();
if (!$alumno) {
return view('tarea.mis_tareas', ['tareas' => collect(), 'entregasMap' => collect()]);
return view('tarea.mis_tareas', [
'tareasPendientes' => collect(),
'tareasEntregadas' => collect(),
'entregasMap' => collect(),
'cicloActual' => null,
]);
}
$gruposIds = $alumno->grupos()->pluck('grupos.id');
$cicloActual = Campan::where('status', 1)->first();
$tareas = Tarea::whereIn('grupo_id', $gruposIds)
// Solo grupos del ciclo activo
$gruposActuales = $alumno->grupos()
->when($cicloActual, fn($q) => $q->where('ciclo', $cicloActual->id))
->pluck('grupos.id');
$todasTareas = Tarea::whereIn('grupo_id', $gruposActuales)
->with(['material', 'grupo'])
->orderByDesc('created_at')
->get();
$entregasMap = Entrega::where('alumno_id', $alumno->id)
->whereIn('tarea_id', $tareas->pluck('id'))
->whereIn('tarea_id', $todasTareas->pluck('id'))
->get()
->keyBy('tarea_id');
return view('tarea.mis_tareas', compact('tareas', 'entregasMap', 'alumno'));
// Separar: sin_subir = pendientes de entregar | pendiente/calificada = ya entregadas
$tareasPendientes = $todasTareas->filter(
fn($t) => ($entregasMap[$t->id]->status ?? 'sin_subir') === 'sin_subir'
);
$tareasEntregadas = $todasTareas->filter(
fn($t) => in_array($entregasMap[$t->id]->status ?? 'sin_subir', ['pendiente', 'calificada'])
);
return view('tarea.mis_tareas', compact(
'tareasPendientes', 'tareasEntregadas', 'entregasMap', 'alumno', 'cicloActual'
));
}
public function store(Request $request, Tarea $tarea)