File "editEvaluacion.php"

Full Path: C:/wamp64/www/Formaciones/Vistas/instructor/editEvaluacion.php
File size: 4.6 KB
MIME-type: text/x-php
Charset: utf-8

<?php
// Vistas/instructor/editEvaluacion.php

// Validación de seguridad manual (ya que no usamos require_role)
if (!esta_autenticado() || !in_array(usuario_actual()['rol'], ['admin', 'instructor'])) {
    header("Location: index.php");
    exit;
}

// El objeto $quiz viene del controlador
if (!$quiz) {
    echo "<div class='card'>Error: Evaluación no encontrada.</div>";
    return;
}
?>

<div class="dashboard-container">
    <div style="display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px;">
        <h1 style="margin:0;">⚙️ Configurar: <?= h($quiz['title']) ?></h1>
        <a href="index.php?r=instructor/quizzes" class="btn-primary" style="background: #6c757d; text-decoration: none;">⬅️ Volver</a>
    </div>

    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 20px;">
        
        <section class="card">
            <h3 style="color: var(--accent-1);">➕ Nueva Pregunta</h3>
            <form method="post" action="index.php?r=instructor/quizzes/edit&id=<?= $quiz['id'] ?>">
                <?php campo_csrf(); ?>
                <input type="hidden" name="action" value="add_question">
                <input type="hidden" name="quiz_id" value="<?= $quiz['id'] ?>">

                <label>Enunciado</label>
                <textarea name="question_text" rows="3" required placeholder="¿Cuál es la capital de...?"></textarea>

                <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px;">
                    <div>
                        <label>Tipo</label>
                        <select name="question_type" id="tipo_pregunta" onchange="toggleOpciones(this.value)">
                            <option value="mcq">Opción Múltiple</option>
                            <option value="open">Abierta</option>
                        </select>
                    </div>
                    <div>
                        <label>Puntos</label>
                        <input type="number" name="points" value="1" min="1">
                    </div>
                </div>

                <div id="contenedor_opciones" style="margin-top: 15px; background: #f9f9f9; padding: 10px; border-radius: 8px;">
                    <p style="font-size: 0.8rem; font-weight: bold;">Opciones (Marca la correcta):</p>
                    <?php for($i=0; $i<4; $i++): ?>
                        <div style="display: flex; align-items: center; gap: 10px; margin-bottom: 8px;">
                            <input type="radio" name="correct_option" value="<?= $i ?>" <?= $i==0 ? 'checked' : '' ?>>
                            <input type="text" name="options[]" placeholder="Respuesta <?= $i+1 ?>" style="margin:0;">
                        </div>
                    <?php endfor; ?>
                </div>

                <button type="submit" class="btn-primary" style="width: 100%; margin-top: 15px;">Guardar Pregunta</button>
            </form>
        </section>

        <section class="card">
            <h3 style="color: var(--accent-1);">📋 Preguntas en esta Evaluación</h3>
            <div id="lista-preguntas">
                <?php 
                // Esta variable $preguntas debe ser enviada desde el controlador
                if (isset($preguntas) && $preguntas->num_rows > 0): 
                    while($p = $preguntas->fetch_assoc()): ?>
                        <div style="padding: 10px; border-bottom: 1px solid #eee; display: flex; justify-content: space-between; align-items: center;">
                            <div>
                                <strong><?= h($p['question_text']) ?></strong><br>
                                <small style="color: #666;"><?= $p['question_type'] == 'mcq' ? 'Múltiple' : 'Abierta' ?> | <?= $p['points'] ?> pts</small>
                            </div>
                            <button onclick="borrarPregunta(<?= $p['id'] ?>)" style="background:none; border:none; cursor:pointer;">❌</button>
                        </div>
                    <?php endwhile; 
                else: ?>
                    <p style="color: #999; text-align: center;">Aún no hay preguntas.</p>
                <?php endif; ?>
            </div>
        </section>
    </div>
</div>

<script>
function toggleOpciones(valor) {
    document.getElementById('contenedor_opciones').style.display = (valor === 'mcq') ? 'block' : 'none';
}

function borrarPregunta(id) {
    if(confirm('¿Eliminar esta pregunta?')) {
        window.location.href = 'index.php?r=instructor/quizzes/delete_question&id=' + id + '&quiz_id=<?= $quiz['id'] ?>';
    }
}
</script>