{"id":44,"date":"2026-07-29T22:39:25","date_gmt":"2026-07-29T22:39:25","guid":{"rendered":"https:\/\/sigi.ipul.us\/index.php\/contador-votacion\/"},"modified":"2026-07-29T22:39:25","modified_gmt":"2026-07-29T22:39:25","slug":"contador-votacion","status":"publish","type":"page","link":"https:\/\/sigi.ipul.us\/index.php\/contador-votacion\/","title":{"rendered":"Contador Votacion"},"content":{"rendered":"\t\t<div class=\"sigi-contador-wrap\">\n\t\t\t<h2 id=\"sigi-contador-titulo\" class=\"sigi-contador-titulo\"><\/h2>\n\t\t\t<p id=\"sigi-contador-aviso\" class=\"sigi-contador-aviso\"><\/p>\n\t\t\t<div id=\"sigi-contador-timer\" class=\"sigi-contador-timer\"><\/div>\n\t\t\t<div class=\"sigi-contador-cifras\">\n\t\t\t\t<div class=\"sigi-contador-cifra\"><span id=\"sigi-contador-votaron\">0<\/span><label>ya votaron<\/label><\/div>\n\t\t\t\t<div class=\"sigi-contador-cifra\"><span id=\"sigi-contador-faltan\">0<\/span><label>faltan (de los habilitados hoy)<\/label><\/div>\n\t\t\t<\/div>\n\t\t\t<!-- \"faltan\" se calcula contra el check-in digital real del d\u00eda (habilitados_hoy), NO contra el\n\t\t\t     padr\u00f3n completo de Breeze \u2014 por eso es seguro mostrarlo: ya no incluye a quien\n\t\t\t     simplemente no lleg\u00f3 a la asamblea, porque esos nunca quedaron marcados como habilitados. -->\n\t\t<\/div>\n\t\t<style>\n\t\t\t\/* Estilos base \u2014 sobrescribibles desde el CSS personalizado de Elementor apuntando a estas mismas clases. *\/\n\t\t\t.sigi-contador-wrap { font-family:sans-serif; text-align:center; }\n\t\t\t.sigi-contador-titulo { font-size:1.8em; }\n\t\t\t.sigi-contador-aviso { opacity:0.7; }\n\t\t\t.sigi-contador-timer { font-size:5em; font-weight:bold; font-variant-numeric:tabular-nums; margin:16px 0; }\n\t\t\t.sigi-contador-timer.sigi-timer-agotado { color:#b00020; }\n\t\t\t.sigi-contador-cifras { display:flex; justify-content:center; gap:60px; }\n\t\t\t.sigi-contador-cifra span { display:block; font-size:3em; font-weight:bold; }\n\t\t\t.sigi-contador-cifra label { opacity:0.7; }\n\t\t<\/style>\n\t\t<script>\n\t\t(function () {\n\t\t\tvar restBase = \"https:\\\/\\\/sigi.ipul.us\\\/index.php\\\/wp-json\\\/sigi\\\/v1\";\n\t\t\tvar tituloEl  = document.getElementById('sigi-contador-titulo');\n\t\t\tvar avisoEl   = document.getElementById('sigi-contador-aviso');\n\t\t\tvar timerEl   = document.getElementById('sigi-contador-timer');\n\t\t\tvar votaronEl = document.getElementById('sigi-contador-votaron');\n\t\t\tvar faltanEl  = document.getElementById('sigi-contador-faltan');\n\n\t\t\tvar timerFin = null; \/\/ timestamp (ms) en que llega a 00:00, o null si no hay timer corriendo.\n\n\t\t\tfunction formatoMMSS(segundos) {\n\t\t\t\tsegundos = Math.max(0, Math.round(segundos));\n\t\t\t\tvar m = Math.floor(segundos \/ 60);\n\t\t\t\tvar s = segundos % 60;\n\t\t\t\treturn (m < 10 ? '0' : '') + m + ':' + (s < 10 ? '0' : '') + s;\n\t\t\t}\n\n\t\t\tfunction tickTimer() {\n\t\t\t\tif (timerFin === null) {\n\t\t\t\t\ttimerEl.textContent = '';\n\t\t\t\t\ttimerEl.classList.remove('sigi-timer-agotado');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar restante = (timerFin - Date.now()) \/ 1000;\n\t\t\t\ttimerEl.textContent = formatoMMSS(restante);\n\t\t\t\ttimerEl.classList.toggle('sigi-timer-agotado', restante <= 0);\n\t\t\t}\n\n\t\t\tfunction actualizarDatos() {\n\t\t\t\tfetch(restBase + '\/votaciones\/abierta-actual')\n\t\t\t\t\t.then(function (r) { return r.json(); })\n\t\t\t\t\t.then(function (actual) {\n\t\t\t\t\t\tif (!actual.hay_votacion_abierta) {\n\t\t\t\t\t\t\ttituloEl.textContent = '';\n\t\t\t\t\t\t\tavisoEl.textContent = 'No hay ninguna votaci\u00f3n abierta en este momento.';\n\t\t\t\t\t\t\tvotaronEl.textContent = '0';\n\t\t\t\t\t\t\tfaltanEl.textContent = '0';\n\t\t\t\t\t\t\ttimerFin = null;\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tavisoEl.textContent = '';\n\t\t\t\t\t\ttituloEl.textContent = actual.titulo;\n\n\t\t\t\t\t\treturn fetch(restBase + '\/votaciones\/' + actual.votacion_id + '\/conteo-participacion')\n\t\t\t\t\t\t\t.then(function (r) { return r.json(); })\n\t\t\t\t\t\t\t.then(function (c) {\n\t\t\t\t\t\t\t\tvotaronEl.textContent = c.ya_votaron;\n\t\t\t\t\t\t\t\tfaltanEl.textContent = c.faltan_hoy;\n\t\t\t\t\t\t\t\ttimerFin = c.timer_inicio_ts ? (c.timer_inicio_ts + c.timer_duracion_segundos) * 1000 : null;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tactualizarDatos();\n\t\t\tsetInterval(actualizarDatos, 5000);\n\t\t\tsetInterval(tickTimer, 1000);\n\t\t})();\n\t\t<\/script>\n\t\t\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":0,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-44","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/sigi.ipul.us\/index.php\/wp-json\/wp\/v2\/pages\/44","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sigi.ipul.us\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sigi.ipul.us\/index.php\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/sigi.ipul.us\/index.php\/wp-json\/wp\/v2\/comments?post=44"}],"version-history":[{"count":0,"href":"https:\/\/sigi.ipul.us\/index.php\/wp-json\/wp\/v2\/pages\/44\/revisions"}],"wp:attachment":[{"href":"https:\/\/sigi.ipul.us\/index.php\/wp-json\/wp\/v2\/media?parent=44"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}