@php use App\Models\Evidencia; $baseParams = array_filter([ 'grado_id' => $grado->id, 'curso_id' => $curso->id, ]); $openNodes = collect(['grado', 'curso', 'temas']) ->when($expandEnunciadoId, fn ($c) => $c->push('en-'.$expandEnunciadoId)) ->when($expandEvidenciaId, function ($c) use ($expandEvidenciaId, $enunciados) { $c->push('ev-'.$expandEvidenciaId); $enId = $enunciados->flatMap->evidencias->firstWhere('id', $expandEvidenciaId)?->enunciado_id ?? Evidencia::query()->whereKey($expandEvidenciaId)->value('enunciado_id'); if ($enId) { $c->push('en-'.$enId); } }) ->when($expandTemas || $newTema || $editTema, fn ($c) => $c->push('temas')) ->when($editEnunciado, fn ($c) => $c->push('en-'.$editEnunciado->id)) ->when($editEvidencia, fn ($c) => $c->push('en-'.$editEvidencia->enunciado_id, 'ev-'.$editEvidencia->id)) ->when($newEvidenciaEnunciadoId, fn ($c) => $c->push('en-'.$newEvidenciaEnunciadoId)) ->when($newEnunciado || $editEnunciado, fn ($c) => $c->push('grado', 'curso')) ->when($linkTemasEvidenciaId, function ($c) use ($linkTemasEvidenciaId, $enunciados) { $c->push('ev-'.$linkTemasEvidenciaId); $enId = $enunciados->flatMap->evidencias->firstWhere('id', $linkTemasEvidenciaId)?->enunciado_id ?? Evidencia::query()->whereKey($linkTemasEvidenciaId)->value('enunciado_id'); if ($enId) { $c->push('en-'.$enId); } }) ->unique() ->values() ->all(); $showEnunciadoForm = $newEnunciado || $editEnunciado; @endphp
{{ $enunciados->count() }} enunciados {{ $evidencias->count() }} evidencias {{ $temas->count() }} temas
{{-- Grado --}}
Grado {{ $grado->nombre }}
{{-- Curso --}}
Curso {{ $curso->nombre }}
@if($showEnunciadoForm) @include('configuracion.partials.enunciado-form-inline') @else

+ Nuevo enunciado

@endif @forelse($enunciados as $enunciado) @php $enKey = 'en-'.$enunciado->id; $enSearch = strtolower($enunciado->etiquetaCorta(200)); $enSearchBundle = $enSearch.' '.strtolower($enunciado->evidencias->map(fn ($ev) => $ev->etiquetaCorta(200).' '.$ev->temas->pluck('nombre')->join(' '))->join(' ')); $showEvidenciaForm = ($newEvidenciaEnunciadoId === $enunciado->id) || ($editEvidencia && (int) $editEvidencia->enunciado_id === (int) $enunciado->id); $enHighlighted = ($highlightKey ?? '') === $enKey; @endphp
Enunciado {{ $enunciado->evidencias->count() }} ev. Editar + Evidencia
@csrf @method('DELETE')
@foreach($enunciado->evidencias as $evidencia) @php $evKey = 'ev-'.$evidencia->id; $evSearch = strtolower($evidencia->etiquetaCorta(200)); $evSearchBundle = $evSearch.' '.strtolower($evidencia->temas->pluck('nombre')->join(' ')); $evHighlighted = ($highlightKey ?? '') === $evKey; $showLinkForm = ($linkTemasEvidenciaId === $evidencia->id); @endphp
Evidencia {{ $evidencia->temas->count() }} tem. Editar Vincular temas
@csrf @method('DELETE')
@if($evidencia->temas->isEmpty() && ! $showLinkForm)

Sin temas vinculados.

@endif @foreach($evidencia->temas as $tema)
Tema {{ $tema->nombre }} @if($tema->descripcion) {{ $tema->descripcion }} @endif
@endforeach @if($showLinkForm) @include('configuracion.partials.evidencia-temas-form', [ 'evidencia' => $evidencia, 'enunciado' => $enunciado, ]) @endif
@endforeach @if($showEvidenciaForm) @include('configuracion.partials.evidencia-form-inline', ['enunciado' => $enunciado]) @elseif($enunciado->evidencias->isEmpty())

Sin evidencias.

@endif @unless($showEvidenciaForm)

+ Nueva evidencia

@endunless
@empty @unless($showEnunciadoForm)

Aún no hay enunciados en este curso.

@endunless @endforelse {{-- Temas generales --}}
Temas generales Catálogo de temas del curso {{ $temas->count() }}

Crea los temas aquí. Luego vincúlalos a cada evidencia desde «Vincular temas».

@if($newTema || $editTema) @include('configuracion.partials.tema-form-inline', ['formSuffix' => 'general']) @else

+ Nuevo tema

@endif @forelse($temas as $tema)
Tema {{ $tema->nombre }} @if($tema->descripcion) {{ $tema->descripcion }} @endif Editar
@csrf @method('DELETE')
@empty

No hay temas creados todavía.

@endforelse
@if($highlightKey ?? false) @push('scripts') @endpush @endif