@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
{{-- 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
@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
@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
@empty
No hay temas creados todavía.
@endforelse
@if($highlightKey ?? false)
@push('scripts')
@endpush
@endif