From 1715af4506c07577cd0b922b44e9f95c26c0762a Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Thu, 16 Jul 2026 21:42:16 -0500 Subject: [PATCH] F-LAB-28: siempre mostrar panel de config, sin auto-aplicar config guardada MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PHP: elimina auto-aplicación de _tomas_config guardada; las tomas siempre parten limpias hasta que el profesional configure manualmente - JS: elimina auto-guardado cuando hay 1 sola toma por grupo - JS: restaura _mpGetGroupsForExam a mostrar todos los grupos disponibles (condicionados del examen + genéricos sin condición) Co-Authored-By: Claude Sonnet 4.6 --- ver_formulario_enviado.php | 47 +++----------------------------------- 1 file changed, 3 insertions(+), 44 deletions(-) diff --git a/ver_formulario_enviado.php b/ver_formulario_enviado.php index 9c6bacb..26c6a61 100644 --- a/ver_formulario_enviado.php +++ b/ver_formulario_enviado.php @@ -300,27 +300,8 @@ if ($modoTurnero && $embebido && $_soloFirmaPro) { foreach ($_mpSecs as $_s) { $_mpGroups[$_s['tipo']][] = $_s; } $_mpGroupsFull = $_mpGroups; - // Aplicar filtro de ciclos si el profesional ya configuró las tomas para este paciente - $__rawCfg = $datosCliente['_tomas_config'] ?? null; - if (is_array($__rawCfg)) { - $_tomasConfig = $__rawCfg; - foreach ($_mpGroups as $__gk => &$__gsecs) { - if (!isset($_tomasConfig[$__gk])) { - // Grupo no configurado: ocultar sus secciones y vaciarlo del mapa - foreach ($__gsecs as $__s) { $_mpSkippedSepIds[$__s['sep_id']] = true; } - $__gsecs = []; - continue; - } - $__allowed = array_flip($_tomasConfig[$__gk]); - foreach ($__gsecs as $__s) { - if (!isset($__allowed[$__s['firma']])) { - $_mpSkippedSepIds[$__s['sep_id']] = true; - } - } - $__gsecs = array_values(array_filter($__gsecs, fn($s) => isset($__allowed[$s['firma']]))); - } - unset($__gsecs); - } + // La configuración de tomas siempre se hace manualmente en el panel; + // no se auto-aplica config guardada para evitar defaults no deseados. // Construir $_mpMap desde grupos (posiblemente filtrados) foreach ($_mpGroups as $_tipo => $_secs) { @@ -1369,38 +1350,16 @@ function _mpShowCfgPanel(examName, groups) { document.getElementById('mp-cfg-title').innerHTML = '' + examName; - // Si solo hay 1 toma por grupo, auto-guardar sin mostrar panel - var hasMul = Object.keys(groups).some(function(k) { return groups[k].length >= 2; }); - if (!hasMul) { - var cfg = {}; - for (var gk in groups) cfg[gk] = groups[gk].map(function(s){return s.firma;}); - _mpGuardarConfig(cfg, examName, function() { location.reload(); }, function(e) { - console.warn('mp-cfg auto:', e); - }); - return; - } - document.getElementById('mp-cfg-overlay').classList.remove('d-none'); } function _mpGetGroupsForExam(examName) { - // Primero buscar grupos condicionados para este examen var result = {}; - var hasOwn = false; for (var gk in _mpAllGroups) { var parts = gk.split('|').filter(Boolean); var isCond = parts.some(function(p) { return _mpExamOptions.indexOf(p) !== -1; }); - if (isCond && parts.indexOf(examName) !== -1) { + if (!isCond || parts.indexOf(examName) !== -1) { result[gk] = _mpAllGroups[gk]; - hasOwn = true; - } - } - // Solo incluir grupos genéricos (sin condición) si el examen no tiene secciones propias - if (!hasOwn) { - for (var gk in _mpAllGroups) { - var parts = gk.split('|').filter(Boolean); - var isCond = parts.some(function(p) { return _mpExamOptions.indexOf(p) !== -1; }); - if (!isCond) result[gk] = _mpAllGroups[gk]; } } return result;