Connect with us

POLITICA

Senado: el oficialismo apuesta a aprobar Ficha Limpia, pero no descarta desactivar la sesión si no se asegura los 37 votos

Published

on



La sesión para debatir en el Senado la demorada ley de Ficha Limpia, convocada durante la noche del jueves último para las 11 de pasado mañana, podría dilatarse una vez más en la Cámara alta, tras un fin de semana de intercambios informales entre oficialismo y oposición que derivó en una instancia a definirse hoy: si el escaneo de votos no da 37 -esta ley requiere mayoría absoluta-, el encuentro será postergado.

El proyecto fue aprobado tras años de idas y vueltas por Diputados y ya cuenta con un dictamen exprés en la Cámara alta, tras el despacho de la comisión de Asuntos Constitucionales, ocurrido durante las sesiones extraordinarias que activó el Ejecutivo para el último período estival.

Advertisement

Previo al dictamen, las alarmas se depositaron en las potenciales adhesiones de los renovadores misioneros -no massistas- Carlos Arce y Sonia Rojas Decut, quienes no integran la comisión y se comprometieron, en principio -y luego de vaivenes de su jefe, el exgobernador Carlos Rovira-, a apoyar la iniciativa cuando ésta aterrice en el recinto. Sobre el primero de los tres, Infobae contó semanas atrás que contrató una modelo en la Cámara alta y la dio de baja en menos de 20 días, tras varias jornadas de consultas -sin respuesta durante más de una semana- desde este medio.

Asuntos Constitucionales está conformada por 19 legisladores: 11 están distribuidos entre oficialistas y “dialoguistas”, mientras que los restantes ocho son kirchneristas o peronistas, según la ocasión. Todo el primer lote suscribió al despacho de mayoría, donde se encuentran libertarios, macristas, radicales y silvestres provinciales.

Carlos Arce y Sonia Rojas Decut (foto Prensa Senado)

El jueves pasado, horas antes de la sesión donde el Senado rechazó dos pliegos enviados por el Gobierno para la Corte Suprema de Justicia, se realizó una reunión informal entre dialoguistas y oficialistas para analizar la posibilidad de empujar, en los siguientes días, la ley de Ficha Limpia. Lo que llamó la atención fue el anuncio nocturno de ese mismo día para las 11 de pasado mañana, en lo que será una jornada traumática por el paro anunciado por sindicalistas para miércoles -desde el mediodía- y jueves.

Advertisement

Desde un despacho oficialista reconocieron a este medio que, tras la sesión por la Corte, el sector más aliado al Ejecutivo reiteró la necesidad de llevar Ficha Limpia al recinto y, con una solicitud de semanas atrás por este tema que se encontraba en la nebulosa -sin fecha ni hora-, se concretó la convocatoria.

Al día siguiente, todos comenzaron a preguntarse el objetivo real de una sesión sin votos asegurados y, con el recuerdo a flor de piel de la jornada anterior, aparecieron los usuales “pajaritos llamadores”, con reclamos de legisladores a favor de sus distritos y sugerencias de modificaciones. Por caso, un experimentado senador dialoguista blanqueó: “No quiero que quede para la corrupción y nada más. O sea que estafadores privados ya condenados como -Leonardo- Cositorto u otros que habrá en el futuro podrán ser candidatos sin ningún problema. No tengo la culpa que haya salido tan floja de Diputados. Y no hay margen para que nos apuren con Cristina Kirchner”. Otras voces adhieren a esto. Una realidad: si se toca una coma, el proyecto regresará en segunda revisión a Diputados.

Más allá de esto, otra lupa está direccionada hacia José María Carambia y Natalia Gadano. Tras un guiño de YPF en relación con Santa Cruz, mañana se reactivará la comisión de Energía, donde los legisladores empujan con ahínco algunos proyectos. Fue tomado como algo positivo, aunque lejos de convertirse en definitorio. Sin ellos, sería imposible el quorum -como quedó demostrado para la frustrada renovación de autoridades de semanas atrás- y la realización de la sesión. Pero no son los únicos, tal como se percibe con algún radical. En cambio, del otro lado ya hay todo un interbloque kirchnerista -34- dispuesto a rechazar la ley. En caso de sanción, la principal “perjudicada” sería la ex presidenta.

Advertisement

Los santacruceños Natalia Gadano y José María Carambia. Los senadores condicionan el apoyo al Gobierno si no aparecen beneficios para su distrito (Gustavo Gavotti)

El oficialismo quedó cruzado por un supuesto enojo de la Casa Rosada por una sesión sin el consentimiento del Ejecutivo. En especial, después de la dura derrota en el recinto por los pliegos para la Corte Suprema. “Si no están los votos, la levantamos”, deslizó un libertario de peso a Infobae. El costo de un “piletazo” sería el de dos eventuales traspiés, en cuestiones sensibles desde lo institucional, en menos de una semana.

Qué establece la iniciativa

La norma modifica las reglas de elegibilidad para los candidatos a cargos públicos y bloquearía a quienes tengan una condena confirmada en segunda instancia relacionada con delitos contra la administración pública, como el caso de Cristina Kirchner. En concreto, abraza a los “delitos de fraude en perjuicio de la administración pública contemplado en el artículo 174, inciso 5 del Código Penal”. También, a los “delitos previstos en los capítulos VI-Cohecho y tráfico de influencias, VII-Malversación de caudales públicos, VIII-Negociaciones incompatibles con el ejercicio de funciones públicas, IX-Exacciones ilegales, IX bis-Enriquecimiento ilícito de funcionarios y empleados, y XIII-Encubrimiento, todos ellos contemplados en el título XI-Delitos contra la administración pública, del libro segundo del Código Penal”. Además, quedarán comprendidos en este mecanismo “todo otro delito doloso contra la administración que conlleve enriquecimiento que sea dispuesto de conformidad con lo establecido en el artículo 36 de la Constitución”.

En Diputados se eliminó la denominada “cláusula Petri” -en referencia al texto que produjo, entre otros, el ministro de Defensa, Luis Petri-, por lo que el artículo uno sostendrá la vigencia de la Ficha Limpia en “aquellos casos en que la sentencia condenatoria resulte confirmada por un órgano judicial de instancia superior, hasta su eventual revocación o cumplimiento de la pena correspondiente, y siempre y cuando la confirmación de la condena se produzca con anterioridad al plazo establecido en el artículo 25 del Código Electoral Nacional”. Es decir, a la confección de los padrones hasta 180 días antes de la elección general, algo así como finales del corriente mes.

Advertisement

Por otra parte, “si la confirmación de la condena en instancia superior se produjera con posterioridad a dicho plazo, la prohibición tendrá efecto a partir de la finalización del proceso electoral”. En tanto, “la ilegibilidad regirá desde la fecha de la sentencia, salvo lo dispuesto en el párrafo anterior, hasta su eventual revocación o hasta el cumplimiento de la pena correspondiente”.

En Diputados, el kirchnerismo no dio quorum para debatir Ficha Limpia y apuesta al bloqueo de la ley en el Senado

En el artículo 2, el inciso A se cambió en la Cámara baja por el siguiente: “La Cámara Nacional Electoral llevará un registro público de ficha limpia en donde constarán las sentencias dictadas en los términos del artículo 1, sus eventuales revocaciones y los datos identificatorios de las personas alcanzadas por dichas sentencias”.

Junto a los cargos electivos, los involucrados en la ley tampoco podrán ser designados como “jefe de Gabinete de Ministros, ministros, secretarios, subsecretarios, autoridades de entes y organismos descentralizados e instituciones de la Seguridad Social”, así como de cuerpos colegiados, personal diplomático, ni representantes en empresas con participación estatal de cualquier clase.

Advertisement
Advertisement

POLITICA

El Gobierno prepara la hoja de ruta de las reformas para el 2026 y podría anunciar algunas en la Apertura de Sesiones del Congreso

Published

on



La reforma laboral es el primero de varios peldaños legislativos que el Gobierno quiere subir en su aspiración de hacer del 2026 un año propositivo en el Congreso. En el entorno del presidente Javier Milei marcan que la coordinación de la mesa política ha proporcionado un mejor diálogo con los aliados circunstanciales, que a su vez están más definidos. “Se forjó un ida y vuelta de mayor confianza con ellos y eso ayuda a conseguir los votos cuando precisamos”,

En la Casa Rosada consideran que el proyecto de Modernización Laboral era de los más controvertidos que se podían tratar a lo largo de todo el año.

Advertisement

Su temprano tratamiento tuvo que ver con las prioridades estructurales del Gobierno -Milei cree que el mercado laboral debe reorganizarse para que luego posibilite otros proyectos transformadores-, pero buscó seguir aprovechando la colaboración que están dispuestos a dar ciertos aliados circunstanciales: es probable que a fin de año algunos de ellos no estén más, ya que La Libertad Avanza apuntará a quitarle la gobernación a algunos de ellos.

El Poder Ejecutivo envió diferentes iniciativas al Congreso a lo largo de las sesiones extraordinarias. Es muy probable que priorice terminar de tratarlas todas antes de impulsar otras agendas. Pero en el entorno de operadores políticos del Presidente ya están pensando en una hoja de ruta para establecer nuevos proyectos en los próximos meses.

Una altísima fuente oficial comentó a Infobae que están esperando a que Javier Milei vuelva de Washington este viernes para poder empezar a dialogar sobre esa cuestión.

Advertisement

Argentina's President Javier Milei smiles during the inauguration of the 143rd ordinary session of Congress at the National Congress in Buenos Aires on March 1, 2025. (Photo by Luis ROBAYO / AFP)

En el Gobierno están diseñando un esquema distintos para definir qué secuencilidad de reformas presentar este año. “En el pasado lo que sucedía es que cada uno de los ministerios definía su hoja de ruta y después se comunicaba automáticamente”, marca un funcionario a este medio. La idea que piensan ahora es centralizar aún más las tareas políticas: “Ahora son las carteras las que tienen que decir qué hitos quieren realizar este año y es a través de la Jefatura de Gabinete que se diseña el esquema de cómo se hará”.

Es muy posible que en la próxima semana pueda darse una reunión que sirva para determinar algunos ejes que contribuyan al discurso de Milei en la Apertura de Sesiones Ordinarias del Congreso, el cual se dará el 1 de marzo a la noche.

Allegados al Presidente lo han escuchado decir que cada uno de los ministerios nacionales tiene más de 10 paquete de proyectos de ley. “Es claramente menos, pero quiso decir que hay una intención fuerte de pegarle fuerte y al medio con los proyectos. Es ahora o nunca”, marcan en su entorno.

Advertisement

El oficialismo reconoce internamente que el margen de maniobra para aprobar iniciativas relevantes se irá reduciendo en los próximos meses, a medida que se aproxime el ciclo electoral y disminuyan las posibilidades de acuerdos con sectores dialoguistas de la oposición.

Para la sesión de ayer en la Cámara de Diputados, el bloque de La Libertad Avanza reconoció que consiguió apoyos de gobernadores como Raúl Jalil (Catamarca), Hugo Passalacqua (Misiones), Gustavo Sáenz (Salta), Osvaldo Jaldo (Tucumán), Rolando Figueroa (Neuquén) y Claudio Vidal (Santa Cruz). “Vamos a tener que competir con algunos de los que hoy nos acompañan. Por eso lo más relevante hay que hacerlo lo antes posible”, apuntan desde el oficialismo. Un motivo más para la urgencia de las reformas.

Se espera que a lo largo de 2026 lleguen al Congreso diversas iniciativas. Hay algunas de importante peso como la reforma del Código Penal, la impositiva y electoral que tienen altísima prioridad y que serán enviadas con la mayor proximidad posible.

Advertisement

En Balcarce 50 buscan ampliar las condiciones para la llegada de inversiones y proyectos en el país. También para liberalizar el esquema comercial. Es en ese plano que buscarán terminar de sancionar el Acuerdo Mercosur-Unión Europea, así como enviar los aspectos nodales del Tratado Comercial con Estados Unidos que precisan ratificación parlamentaria.

RS Fotos

La reducción de impuestos y el alivio sobre empresas y personas son objetivos centrales de la administración libertaria. Se discuten alternativas como la reducción en el impuesto a las Ganancias y estímulos para mercados, junto a la eventual implementación de un “IVA dividido”, una idea dada a conocer por el ministro Caputo. La discusión gira en torno a cómo equilibrar esos incentivos con la preservación de la estabilidad fiscal.

Uno de los temas pendientes es la extensión del régimen de promoción para energías renovables, que propone prorrogar por veinte años la estabilidad tributaria del sector. Este proyecto, inicialmente previsto en el Capítulo XI del presupuesto, quedó en suspenso tras quedar fuera de la reforma laboral, y ahora su incorporación podría darse de manera individual o como parte de una reforma energética más abarcativa. También está en debate una reforma sobre el régimen de zona fría, aunque por ahora permaneció fuera del temario principal.

Advertisement

Aún sin precisiones técnicas, los funcionarios avanzan en el diseño de un proyecto legislativo que reúna casi todos los asuntos originalmente incorporados en el capítulo XI, con excepción de la Ley de Financiamiento Universitario, para cuyo tratamiento el Gobierno ya propuso un enfoque alternativo, aunque sin la adhesión del Consejo Interuniversitario Nacional (CIN), que el lunes publicó un comunicado rechazando tajantemente la alternativa oficial y pidiendo la apertura urgente de paritarias.

Dado que un sector de los equipos técnicos de la Presidencia consideran que es asimilable a un tratado internacional, la adhesión de Argentina al Consejo de Paz que lidera Donald Trump también tendrá será presentado en el Congreso este año. Queda como cuenta pendiente que el Senado tramite el placet de Fernando Iglesias como embajador en la Unión Europea y Bélgica.

Este último podría tratarse el 26 de febrero en el Senado junto con la Ley de Glaciares, el convenio Mercosur-UE y la baja de la edad de imputabilidad en menores hacia los 14 años.

Advertisement

horizontal,politics

Continue Reading

POLITICA

Cristina Kirchner saludó a militantes con motivo de su cumpleaños

Published

on


La expresidenta Cristina Fernández de Kirchner saludó desde el balcón de su domicilio en el barrio porteño de Constitución a militantes que se reunieron en el lugar con motivo de su cumpleaños.

Se trató de una aparición breve y la primera luego de su internación.

Advertisement

En la misma jornada, la organización La Cámpora puso en marcha un operativo de pintadas callejeras para saludar a la expresidenta por su cumpleaños número 73 y pedir por su libertad.

En el día de su cumpleaños, Cristina Kirchner salió al balcón a saludarMartín Quintana

En paralelo, utilizó la misma metodología para dejar mensajes contra el proyecto de reforma laboral, que se vota este jueves en la Cámara de Diputados.

“Queremos a Cristina” y “No a la reforma laboral” fueron los mensajes que la agrupación que lidera Máximo Kirchner dejó asentados en paredones de distintos puntos del país. En sus cuentas en redes sociales, La Cámpora mostró las pintadas.

Advertisement
La Cámpora se hizo notar con sus pintadas políticas a favor de Cristina Kirchner
La Cámpora se hizo notar con sus pintadas políticas a favor de Cristina KirchnerX

La expresidenta cumple prisión domiciliaria en un departamento de la calle San José 111, en el barrio porteño de Constitución. La Justicia limitó los tiempos para que reciba visitas y sus abogados intentan flexibilizar ese régimen, objetivo en el que no tuvieron éxito hasta el momento.

En el día de su cumpleaños, Cristina Kirchner salió al balcón a saludar
En el día de su cumpleaños, Cristina Kirchner salió al balcón a saludarMartín Quintana

El de este 19 de febrero es el primer cumpleaños que Cristina Kirchner pasa en prisión domiciliaria. Su condena en la causa Vialidad, a seis años de prisión por corrupción, quedó confirmada en junio de 2025.

La Cámpora de San Martín aportó sus pintadas
La Cámpora de San Martín aportó sus pintadasX

reforma laboral,pic.twitter.com/RbuOm7v3ES,February 19, 2026,Cristina Kirchner,La Cámpora,Mayra Mendoza,Conforme a,,Reforma laboral. El artículo clave que el ministro Luis Caputo pide que no se toque y la oposición buscará voltear,,»Extorsión a la gente». El Gobierno buscó minimizar el impacto del paro y criticó a la CGT y a la izquierda,,Apuro oficialista. Avanzó en el Senado la ratificación del acuerdo entre el Mercosur y la Unión Europea,Cristina Kirchner,,Las mentiras de Cristina Kirchner y de su abogado,,Ejecución demorada. Convocan a una audiencia para definir el decomiso de los bienes de Cristina Kirchner,,Pintadas y mensajes. La Cámpora activó un operativo para saludar a Cristina por su cumpleaños y rechazar la reforma laboral

Continue Reading

POLITICA

Uno por uno, qué diputados votaron a favor de la reforma laboral y cuáles en contra

Published

on



Uno por uno, cómo votaron los diputados la Reforma laboral

Advertisement

Advertisement


${status}

`;
}

Advertisement

function createCard(item, borderColor) {
const card = document.createElement(«div»);
card.className = «vd2__card»;

const fotoWrap = document.createElement(«div»);
fotoWrap.className = «vd2__foto»;
if (borderColor) {
fotoWrap.style.borderColor = borderColor;
} else {
fotoWrap.style.opacity = «0.3»;
fotoWrap.style.border = «none»;
}

const img = document.createElement(«img»);
img.loading = «lazy»;
img.decoding = «async»;
img.alt = «foto-diputado»;
img.src = photoBase + (item.url_foto || «»);
img.addEventListener(«error», () => {
img.style.opacity = «0.35»;
}, {
once: true
});

Advertisement

fotoWrap.appendChild(img);

const nombre = document.createElement(«p»);
nombre.className = «vd2__nombre»;
nombre.textContent = String(item.nombres || «»).toLowerCase();

const apellido = document.createElement(«p»);
apellido.className = «vd2__apellido»;
apellido.textContent = String(item.apellido || «»).toLowerCase();

Advertisement

const bloque = document.createElement(«span»);
bloque.className = «vd2__bloque»;
bloque.textContent = String(item.bloque || «»);

card.appendChild(fotoWrap);
card.appendChild(nombre);
card.appendChild(apellido);
card.appendChild(bloque);

return card;
}

Advertisement

function seatClass(kind) {
if (kind === «AFIRMATIVO») return «vd2__seat–afirmativo»;
if (kind === «NEGATIVO») return «vd2__seat–negativo»;
if (kind === «ABSTENCIÓN») return «vd2__seat–abstencion»;
if (kind === «AUSENTE») return «vd2__seat–ausente»;
return «vd2__seat–empty»;
}

function hemicicloParams(which) {
// Basado en la distribución original para Diputados (257)
const seatsPerRow = [38, 36, 33, 30, 27, 24, 21, 19, 16, 13]; // suma 257
if (which === «big») {
return {
centerX: 300,
baseY: 450,
rows: 10,
seatsPerRow,
verticalOffset: 2,
radiusStart: 300,
radiusStep: 30
};
}
return {
centerX: 300,
baseY: 450,
rows: 10,
seatsPerRow,
verticalOffset: 2,
radiusStart: 170,
radiusStep: 16
};
}

function computeRowSeatCounts(seatsPerRow, totals) {
const totalSeats = seatsPerRow.reduce((a, b) => a + b, 0);
return seatsPerRow.map(seatsInRow => {
const exact = {
AFIRMATIVO: (totals.AFIRMATIVO / totalSeats) * seatsInRow,
NEGATIVO: (totals.NEGATIVO / totalSeats) * seatsInRow,
«ABSTENCIÓN»: (totals[«ABSTENCIÓN»] / totalSeats) * seatsInRow,
AUSENTE: (totals.AUSENTE / totalSeats) * seatsInRow
};

Advertisement

const floor = {
AFIRMATIVO: Math.floor(exact.AFIRMATIVO),
NEGATIVO: Math.floor(exact.NEGATIVO),
«ABSTENCIÓN»: Math.floor(exact[«ABSTENCIÓN»]),
AUSENTE: Math.floor(exact.AUSENTE)
};

let assigned = floor.AFIRMATIVO + floor.NEGATIVO + floor[«ABSTENCIÓN»] + floor.AUSENTE;
let diff = seatsInRow – assigned;

const rems = [{
k: «AFIRMATIVO»,
r: exact.AFIRMATIVO – floor.AFIRMATIVO
},
{
k: «NEGATIVO»,
r: exact.NEGATIVO – floor.NEGATIVO
},
{
k: «ABSTENCIÓN»,
r: exact[«ABSTENCIÓN»] – floor[«ABSTENCIÓN»]
},
{
k: «AUSENTE»,
r: exact.AUSENTE – floor.AUSENTE
},
].sort((a, b) => b.r – a.r);

Advertisement

while (diff > 0) {
for (const it of rems) {
if (diff <= 0) break;
floor[it.k] += 1;
diff–;
}
}
return floor;
});
}

function renderHemiciclo(which, totals) {
const el = byRole(which === «big» ? «hemiciclo-big» : «hemiciclo-small»);
if (!el) return;
el.innerHTML = «»;

const p = hemicicloParams(which);
let rowSeatCounts = computeRowSeatCounts(p.seatsPerRow, totals);
const maxSeatsInRow = p.seatsPerRow[0];

Advertisement

for (let col = 0; col < maxSeatsInRow; col++) {
for (let row = 0; row < p.rows; row++) {
if (col >= p.seatsPerRow[row]) continue;

const seatsInThisRow = p.seatsPerRow[row];
const radius = p.radiusStart – row * (p.radiusStep – p.verticalOffset);
const angleRange = Math.PI;
const angleStep = (seatsInThisRow > 1) ? angleRange / (seatsInThisRow – 1) : 0;
const angle = (Math.PI – angleRange) / 2 + col * angleStep;

const x = p.centerX + radius * Math.cos(angle);
const y = p.baseY – radius * Math.sin(angle);

Advertisement

let kind = «EMPTY»;
if (rowSeatCounts[row].AFIRMATIVO > 0) {
kind = «AFIRMATIVO»;
rowSeatCounts[row].AFIRMATIVO–;
} else if (rowSeatCounts[row].NEGATIVO > 0) {
kind = «NEGATIVO»;
rowSeatCounts[row].NEGATIVO–;
} else if (rowSeatCounts[row][«ABSTENCIÓN»] > 0) {
kind = «ABSTENCIÓN»;
rowSeatCounts[row][«ABSTENCIÓN»]–;
} else if (rowSeatCounts[row].AUSENTE > 0) {
kind = «AUSENTE»;
rowSeatCounts[row].AUSENTE–;
}

const seat = document.createElement(«div»);
seat.className = «vd2__seat » + seatClass(kind);
seat.style.left = x + «px»;
seat.style.top = y + «px»;
el.appendChild(seat);
}
}
}

function populateFilters(data) {
const selProv = byRole(«select-provincia»);
const selBloq = byRole(«select-bloque»);
if (!selProv || !selBloq) return;

Advertisement

const provSet = new Set();
const bloqSet = new Map(); // bloque -> full

data.forEach(r => {
if (r.provincia) provSet.add(r.provincia);
if (r.bloque) bloqSet.set(r.bloque, r.bloque_full || r.bloque);
});

Array.from(provSet).sort().forEach(p => {
const opt = document.createElement(«option»);
opt.value = p;
opt.textContent = p;
selProv.appendChild(opt);
});

Advertisement

Array.from(bloqSet.entries())
.sort((a, b) => String(a[0]).localeCompare(String(b[0])))
.forEach(([code, full]) => {
const opt = document.createElement(«option»);
opt.value = code;
opt.textContent = `${full} (${code})`;
selBloq.appendChild(opt);
});
}

function renderFiltered(data, field, value, targetEl) {
targetEl.innerHTML = «»;
const rows = data.filter(r => value === «all» || r[field] === value);

const order = [«AFIRMATIVO», «NEGATIVO», «ABSTENCIÓN», «AUSENTE»];
const colorBy = {
AFIRMATIVO: «#00A377»,
NEGATIVO: «#c90808»,
«ABSTENCIÓN»: «#444″,
AUSENTE: null
};

Advertisement

order.forEach(voto => {
rows.filter(r => normalizeVoto(r.voto) === voto).forEach(r => {
targetEl.appendChild(createCard(r, colorBy[voto]));
});
});
}

function wireUI(data) {
// toggles
$$(‘[data-role=»section»], [data-role=»filter-provincia»], [data-role=»filter-bloque»]’).forEach(sec => {
const btn = sec.querySelector(‘[data-role=»toggle»]’);
if (!btn) return;
btn.addEventListener(«click», () => {
const open = sec.getAttribute(«data-open») !== «true»;
openPanel(sec, open);
});
});

// abrir por defecto secciones principales, y dejar filtros cerrados
$$(‘[data-role=»section»]’).forEach(sec => openPanel(sec, true));
$$(‘[data-role=»filter-provincia»], [data-role=»filter-bloque»]’).forEach(sec => openPanel(sec, false));

Advertisement

// go top
const goTop = byRole(«go-top»);
if (goTop) {
goTop.addEventListener(«click», () => root.scrollIntoView({
behavior: «smooth»
}));
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => {
goTop.style.display = e.isIntersecting ? «block» : «none»;
});
}, {
threshold: 0.1
});
obs.observe(root);
}

// filtros
const selProv = byRole(«select-provincia»);
const selBloq = byRole(«select-bloque»);
const provOut = byRole(«provincia-results»);
const bloqOut = byRole(«bloque-results»);

if (selProv && provOut) {
selProv.addEventListener(«change», (e) => {
renderFiltered(data, «provincia», e.target.value, provOut);
const sec = byRole(«filter-provincia»);
if (sec) openPanel(sec, true);
});
}

Advertisement

if (selBloq && bloqOut) {
selBloq.addEventListener(«change», (e) => {
renderFiltered(data, «bloque», e.target.value, bloqOut);
const sec = byRole(«filter-bloque»);
if (sec) openPanel(sec, true);
});
}
}

async function init() {
setLoaded(false);

const csvUrl = root.dataset.csvUrl;
if (!csvUrl) {
const summary = byRole(«summary»);
if (summary) summary.innerHTML = `

Advertisement

Error: falta data-csv-url

`;
return;
}

try {
const Papa = await ensurePapa();

Advertisement

Papa.parse(csvUrl, {
download: true,
header: true,
skipEmptyLines: true,
complete: function(res) {
const data = (res && res.data) ? res.data : [];

// panels por voto
const panelByVote = {};
$$(‘[data-role=»section»]’).forEach(sec => {
const voto = sec.getAttribute(«data-voto»);
const panel = sec.querySelector(‘[data-role=»panel»]’);
if (voto && panel) panelByVote[voto] = panel;
});

const counts = {
AFIRMATIVO: 0,
NEGATIVO: 0,
«ABSTENCIÓN»: 0,
AUSENTE: 0
};
const colorBy = {
AFIRMATIVO: «#00A377»,
NEGATIVO: «#c90808»,
«ABSTENCIÓN»: «#444″,
AUSENTE: null
};

Advertisement

data.forEach(row => {
const voto = normalizeVoto(row.voto);
if (!counts.hasOwnProperty(voto)) return;
counts[voto]++;

const panel = panelByVote[voto];
if (panel) {
panel.appendChild(createCard(row, colorBy[voto]));
}
});

// counts en UI
$$(‘[data-role=»count»]’).forEach(el => {
const k = el.getAttribute(«data-kind»);
if (k && counts.hasOwnProperty(k)) el.textContent = String(counts[k]);
});

Advertisement

// hemiciclo + summary
renderHemiciclo(«big», counts);
renderHemiciclo(«small», counts);
renderSummary(counts);

// filtros + ui
populateFilters(data);
wireUI(data);

setLoaded(true);

Advertisement

// recalcular heights en secciones abiertas
$$(‘[data-role=»section»]’).forEach(sec => openPanel(sec, true));
}
});

} catch (err) {
console.error(err);
const summary = byRole(«summary»);
if (summary) {
summary.innerHTML = `

Error: ${escapeHtml(err.message || err)}

Advertisement

`;
}
}
}

init();
})();

Advertisement
Continue Reading

Tendencias