Modificación del userController para el cambnio de rol si es alumno o docente
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user