Simplificar tomas prolongadas: campo texto libre + sin condiciones
- _c8j2g16 pasa a texto libre ("Tipo de examen"), sin opciones predefinidas
- Separadores de tomas sin condición → siempre visibles
- Eliminar lab_tomas_config.php (ya no necesario)
- $_gruposConfig incluye todos los grupos directamente
- Script _migrate_tomas_simplify.php para actualizar esquema en BD
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
645c9b2c46
commit
4e6da5d7eb
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
/**
|
||||
* Migración: simplificar formulario de Tomas Prolongadas (id=15)
|
||||
* - Campo _c8j2g16 pasa de radio/checkbox a texto libre ("Tipo de examen")
|
||||
* - Se eliminan las condiciones de todos los separadores (siempre visibles)
|
||||
* Auto-elimina al ejecutar. Acceder como admin.
|
||||
*/
|
||||
require_once __DIR__ . '/config/config.php';
|
||||
if (!isUserLoggedIn() || !in_array($_SESSION['admin_user']['role'] ?? '', ['admin','superadmin'], true)) {
|
||||
http_response_code(403); die('Acceso denegado.');
|
||||
}
|
||||
|
||||
$pdo = Database::getInstance()->getConnection();
|
||||
$row = $pdo->query("SELECT esquema FROM lab_formularios WHERE id = 15 LIMIT 1")->fetch(PDO::FETCH_ASSOC);
|
||||
if (!$row) { die('Formulario id=15 no encontrado.'); }
|
||||
|
||||
$esquema = json_decode($row['esquema'], true);
|
||||
if (!is_array($esquema)) { die('Esquema inválido.'); }
|
||||
|
||||
$cambios = 0;
|
||||
foreach ($esquema as &$campo) {
|
||||
$id = $campo['id'] ?? '';
|
||||
$tipo = $campo['tipo'] ?? '';
|
||||
|
||||
// Campo selector → texto libre
|
||||
if ($id === '_c8j2g16') {
|
||||
$campo['tipo'] = 'texto';
|
||||
$campo['label'] = 'Tipo de examen';
|
||||
unset($campo['options'], $campo['multiple'], $campo['required']);
|
||||
$cambios++;
|
||||
}
|
||||
|
||||
// Separadores con condición sobre _c8j2g16 → quitar condición
|
||||
if ($tipo === 'separador' && isset($campo['condicion'])) {
|
||||
$condCampo = $campo['condicion']['campo_id'] ?? '';
|
||||
if ($condCampo === '_c8j2g16') {
|
||||
unset($campo['condicion']);
|
||||
$cambios++;
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($campo);
|
||||
|
||||
$pdo->prepare("UPDATE lab_formularios SET esquema = ? WHERE id = 15")
|
||||
->execute([json_encode($esquema, JSON_UNESCAPED_UNICODE)]);
|
||||
|
||||
@unlink(__FILE__);
|
||||
|
||||
echo '<p style="font-family:sans-serif;padding:2rem">
|
||||
<span style="color:green;font-size:1.2rem">✅ Migración completada</span><br><br>
|
||||
<strong>' . $cambios . ' campos modificados</strong>:<br>
|
||||
• Campo _c8j2g16 → texto libre "Tipo de examen"<br>
|
||||
• Condiciones eliminadas de separadores de tomas<br><br>
|
||||
<small style="color:#666">Este archivo fue eliminado automáticamente.</small><br><br>
|
||||
<a href="lab_formularios.php" style="color:#0d6efd">← Volver a Formularios</a>
|
||||
</p>';
|
||||
Reference in New Issue
Block a user