2af36ea272
- Modelos completos: Evaluacion, EvaluacionTipo, Pregunta, PreguntaTipo,
PreguntaOpcion, EvaluacionSubmission, Respuesta (con $table explícito
para nombres en español que Laravel pluraliza incorrectamente)
- Relaciones evaluaciones() añadidas a Plantel y Nivel
- EvaluacionBuilder (Livewire): constructor interactivo con preguntas
de tipo texto libre, opción múltiple, escala 1-5/1-10 y sí/no;
reorden con flechas, vista previa por tipo, selección de planteles
y niveles, configuración de estado, fechas y flag de anónima
- EvaluacionController: CRUD completo + toggleStatus
- Vistas: index, create/edit (con Livewire builder), show con detalle
de preguntas y cambio de estado
- Rutas resource /evaluacion + PATCH /evaluacion/{id}/status
- Migraciones: evaluaciones, preguntas, pregunta_opciones,
evaluacion_submissions, respuestas, evaluacion_plantel, evaluacion_nivel
- Menú: enlace Evaluaciones en panel de Administrador
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
51 lines
1.1 KiB
PHP
51 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use App\Models\Plantel;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
|
|
|
class Nivel extends Model
|
|
{
|
|
protected $guarded = [];
|
|
|
|
public $timestamps = false;
|
|
|
|
public function nivelPlantel() : BelongsToMany
|
|
{
|
|
return $this->belongsToMany(Plantel::class)->withPivot('plantel_id');
|
|
}
|
|
|
|
public function nivelPlane() : BelongsToMany
|
|
{
|
|
return $this->belongsToMany(Plane::class);
|
|
}
|
|
|
|
public function existe($plantelId = null)
|
|
{
|
|
if (!$plantelId) {
|
|
return false;
|
|
}
|
|
|
|
return $this->nivelPlantel()
|
|
->wherePivot('plantel_id', $plantelId)
|
|
->exists();
|
|
}
|
|
|
|
public function documentosRequeridos()
|
|
{
|
|
return $this->belongsToMany(
|
|
DocumentoTipo::class,
|
|
'nivel_documento',
|
|
'nivel_id',
|
|
'documento_tipo_id'
|
|
);
|
|
}
|
|
|
|
public function evaluaciones() : BelongsToMany
|
|
{
|
|
return $this->belongsToMany(Evaluacion::class, 'evaluacion_nivel');
|
|
}
|
|
}
|