Connect with us

POLITICA

Uno por uno, cómo votaron los senadores el veto de Milei a la ley Garrahan

Published

on



Conteo de Votos y Hemiciclo

Uno por uno, así votaron los senadores el rechazo al veto de la Ley Garrahan

Advertisement

Advertisement


`
: `

Advertisement
foto-senador

`
}

${bloque}

`;
targetContainer.appendChild(card);
}

function createHemicicleSmall(nAfirmativo, nNegativo, nAbstencion, nAusente) {
const hemicycle = document.querySelector(‘.votos-senadores__hemiciclo.small’);
hemicycle.innerHTML = »; // Clear previous content.

Advertisement

const centerX = 300;
const baseY = 450;
const numberOfRows = 5;
// Array of seats per row (from outer to inner)
const seatsPerRow = [21, 18, 16, 12, 7];
const verticalOffset = 0;
const totalSeats = seatsPerRow.reduce((a, b) => a + b, 0);
const totalVotes = nAfirmativo + nNegativo + nAbstencion + nAusente;

// Instead of percentage-based rounding, we’ll compute a per-row distribution
// using floor() and then distribute any remaining seats based on the remainders.
let rowSeatCounts = seatsPerRow.map((seatsInRow) => {
// Compute the exact (floating point) allocation for each category.
const exactAfirmativo = (nAfirmativo * seatsInRow) / totalSeats;
const exactNegativo = (nNegativo * seatsInRow) / totalSeats;
const exactAbstencion = (nAbstencion * seatsInRow) / totalSeats;
const exactAusente = (nAusente * seatsInRow) / totalSeats;
// Take floor values.
let rowAfirmativo = Math.floor(exactAfirmativo);
let rowNegativo = Math.floor(exactNegativo);
let rowAbstencion = Math.floor(exactAbstencion);
let rowAusente = Math.floor(exactAusente);
let assigned = rowAfirmativo + rowNegativo + rowAbstencion + rowAusente;
let diff = seatsInRow – assigned;
// Create an array of remainders along with category identifiers.
let remainders = [{
cat: «afirmativo»,
remainder: exactAfirmativo – rowAfirmativo
},
{
cat: «negativo»,
remainder: exactNegativo – rowNegativo
},
{
cat: «abstencion»,
remainder: exactAbstencion – rowAbstencion
},
{
cat: «ausente»,
remainder: exactAusente – rowAusente
}
];
// Sort descending by remainder.
remainders.sort((a, b) => b.remainder – a.remainder);
// Distribute the remaining seats one by one to the categories with the highest remainders.
while (diff > 0) {
for (let r of remainders) {
if (diff <= 0) break;
switch (r.cat) {
case «afirmativo»:
rowAfirmativo++;
break;
case «negativo»:
rowNegativo++;
break;
case «abstencion»:
rowAbstencion++;
break;
case «ausente»:
rowAusente++;
break;
}
diff–;
}
}
return {
afirmativo: rowAfirmativo,
negativo: rowNegativo,
abstencion: rowAbstencion,
ausente: rowAusente
};
});

// Now, using your inverted loop order (columns first, then rows)
const maxSeatsInRow = seatsPerRow[0]; // maximum seats in the outer row

Advertisement

// For each seat position (by column, then row), assign the color based on that row’s distribution.
for (let col = 0; col < maxSeatsInRow; col++) {
for (let row = 0; row < numberOfRows; row++) {
if (col < seatsPerRow[row]) { // only if this row has a seat at this column
const seatsInThisRow = seatsPerRow[row];
const radius = 170 – row * (30 – verticalOffset);
const angleRange = Math.PI; // semicircle
const angleStep = (seatsInThisRow > 1) ? angleRange / (seatsInThisRow – 1) : 0;
const angle = (Math.PI – angleRange) / 2 + col * angleStep;
const x = centerX + radius * Math.cos(angle);
const y = baseY – radius * Math.sin(angle);

// For this row, assign colors in order:
// First use available «afirmativo», then «negativo», then «abstencion», then «ausente»
let colorClass=»color-empty»;
if (rowSeatCounts[row].afirmativo > 0) {
colorClass=»color-afirmativo»;
rowSeatCounts[row].afirmativo–;
} else if (rowSeatCounts[row].negativo > 0) {
colorClass=»color-negativo»;
rowSeatCounts[row].negativo–;
} else if (rowSeatCounts[row].abstencion > 0) {
colorClass=»color-abstencion»;
rowSeatCounts[row].abstencion–;
} else if (rowSeatCounts[row].ausente > 0) {
colorClass=»color-ausente»;
rowSeatCounts[row].ausente–;
}
const seat = document.createElement(‘div’);
seat.classList.add(‘seat’, colorClass);
seat.style.left = `${x}px`;
seat.style.top = `${y}px`;
hemicycle.appendChild(seat);
}
}
}

/* // Set the legend text (sin mostrar Ley Aprobada o no aprobada)
document.querySelector(‘#voto-summary’).innerHTML = `

Advertisement

Afirmativo: ${nAfirmativo} |
Negativo: ${nNegativo}

Abstención: ${nAbstencion} |
Ausente: ${nAusente}

`; */

/* // — Update Legend —
const leyText = nAfirmativo > nNegativo ? «Ley Aprobada» : «Ley no aprobada»;
const resultsText=»shshs»;
document.querySelector(«#voto-summary»).innerHTML = leyText + resultsText; */

Advertisement

/*
// Set the legend text. Mayoría simple
const leyText = nAfirmativo > nNegativo ? ‘Ley Aprobada’ : ‘Ley no aprobada’;
document.querySelector(‘#voto-summary’).innerHTML = `

Afirmativo: ${nAfirmativo} |
Negativo: ${nNegativo}

Abstención: ${nAbstencion} |
Ausente: ${nAusente}

` + ‘

Advertisement

‘ + leyText + ‘

‘; */

// Set the legend text. Dos tercios de los presentes (******EDITAR LEYENDA*****)
function votosNecesarios(presentes) {
return Math.ceil((2 / 3) * presentes);
}

Advertisement

const leyText = nAfirmativo >= (votosNecesarios(72 – nAusente)) ? ‘Aprobada’ : ‘Rechazada’;
document.querySelector(‘#voto-summary’).innerHTML = `

Afirmativo: ${nAfirmativo} |
Negativo: ${nNegativo}

Abstención: ${nAbstencion} |
Ausente: ${nAusente}

` + ‘

Advertisement

‘ + leyText + ‘

‘;

}

Advertisement

// Creates the big hemiciclo visualization.
function createHemicicleBig(nAfirmativo, nNegativo, nAbstencion, nAusente) {
const hemicycle = document.querySelector(‘.votos-senadores__hemiciclo.big’);
hemicycle.innerHTML = »; // Clear previous content.

const centerX = 300;
const baseY = 450;
const numberOfRows = 5;
// Array of seats per row (outer to inner; total should be 257)
const seatsPerRow = [21, 18, 16, 11, 6];
const verticalOffset = 2;
const totalSeats = seatsPerRow.reduce((a, b) => a + b, 0);

// Raw vote counts must sum to totalSeats (257)
const totalVotes = nAfirmativo + nNegativo + nAbstencion + nAusente;
if (totalVotes !== totalSeats) {
console.warn(«Total votes (» + totalVotes + «) do not equal total seats (» + totalSeats + «).»);
}

Advertisement

console.log(nAfirmativo, nNegativo, nAbstencion, nAusente, totalSeats, totalVotes);

// — Per-Row Distribution Using Absolute Counts —
// For each row, compute the exact allocation for each vote category based on its fraction of the total seats.
let rowSeatCounts = seatsPerRow.map(seatsInRow => {
const exactA = (nAfirmativo / totalSeats) * seatsInRow;
const exactN = (nNegativo / totalSeats) * seatsInRow;
const exactAb = (nAbstencion / totalSeats) * seatsInRow;
const exactAu = (nAusente / totalSeats) * seatsInRow;

let rowA = Math.floor(exactA);
let rowN = Math.floor(exactN);
let rowAb = Math.floor(exactAb);
let rowAu = Math.floor(exactAu);

Advertisement

let assigned = rowA + rowN + rowAb + rowAu;
let diff = seatsInRow – assigned;

// Create an array of remainders for each category.
let remainders = [{
cat: «afirmativo»,
rem: exactA – rowA
},
{
cat: «negativo»,
rem: exactN – rowN
},
{
cat: «abstencion»,
rem: exactAb – rowAb
},
{
cat: «ausente»,
rem: exactAu – rowAu
}
];
// Sort the remainders in descending order.
remainders.sort((a, b) => b.rem – a.rem);

// Distribute any leftover seats one by one.
while (diff > 0) {
for (let r of remainders) {
if (diff <= 0) break;
switch (r.cat) {
case «afirmativo»:
rowA++;
break;
case «negativo»:
rowN++;
break;
case «abstencion»:
rowAb++;
break;
case «ausente»:
rowAu++;
break;
}
diff–;
}
}
return {
afirmativo: rowA,
negativo: rowN,
abstencion: rowAb,
ausente: rowAu
};
});

Advertisement

// — Global Correction —
// Sum the allocated seats for each category across all rows.
let globalA = rowSeatCounts.reduce((sum, row) => sum + row.afirmativo, 0);
let globalN = rowSeatCounts.reduce((sum, row) => sum + row.negativo, 0);
let globalAb = rowSeatCounts.reduce((sum, row) => sum + row.abstencion, 0);
let globalAu = rowSeatCounts.reduce((sum, row) => sum + row.ausente, 0);

// For each category, if the global total is less than the raw count, add the missing seats to the outer row (row 0).
if (globalA < nAfirmativo) {
rowSeatCounts[0].afirmativo += (nAfirmativo – globalA);
}
if (globalN < nNegativo) {
rowSeatCounts[0].negativo += (nNegativo – globalN);
}
if (globalAb < nAbstencion) {
rowSeatCounts[0].abstencion += (nAbstencion – globalAb);
}
if (globalAu < nAusente) {
rowSeatCounts[0].ausente += (nAusente – globalAu);
}

// — Seat Placement Using Inverted Loop Order —
const maxSeatsInRow = seatsPerRow[0];
for (let col = 0; col < maxSeatsInRow; col++) {
for (let row = 0; row < numberOfRows; row++) {
if (col < seatsPerRow[row]) { // Only process if this row has a seat at the current column.
const seatsInThisRow = seatsPerRow[row];
const radius = 300 – row * (55 – verticalOffset);
const angleRange = Math.PI; // semicircle
const angleStep = (seatsInThisRow > 1) ? angleRange / (seatsInThisRow – 1) : 0;
const angle = (Math.PI – angleRange) / 2 + col * angleStep;
const x = centerX + radius * Math.cos(angle);
const y = baseY – radius * Math.sin(angle);

Advertisement

// For the current row, assign the color in order: afirmativo, then negativo, then abstencion, then ausente.
let colorClass=»color-empty»;
if (rowSeatCounts[row].afirmativo > 0) {
colorClass=»color-afirmativo»;
rowSeatCounts[row].afirmativo–;
} else if (rowSeatCounts[row].negativo > 0) {
colorClass=»color-negativo»;
rowSeatCounts[row].negativo–;
} else if (rowSeatCounts[row].abstencion > 0) {
colorClass=»color-abstencion»;
rowSeatCounts[row].abstencion–;
} else if (rowSeatCounts[row].ausente > 0) {
colorClass=»color-ausente»;
rowSeatCounts[row].ausente–;
}

const seat = document.createElement(‘div’);
seat.classList.add(‘seat’, colorClass);
seat.style.left = `${x}px`;
seat.style.top = `${y}px`;
hemicycle.appendChild(seat);
}
}
}

}

Advertisement

// Go-to-top button functionality.
document.addEventListener(‘DOMContentLoaded’, function() {
const goToTopButton = document.querySelector(‘.votos-senadores__go-to-top’);
const targetElement = document.querySelector(‘.votos-senadores’);

goToTopButton.addEventListener(‘click’, function() {
targetElement.scrollIntoView({
behavior: ‘smooth’
});
});
const observer = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
goToTopButton.style.display = entry.isIntersecting ? ‘block’ : ‘none’;
});
}, {
root: null,
rootMargin: ‘0px’,
threshold: 0.1
});
observer.observe(targetElement);

// Attach the toggle listener to each vote button.
const toggleBtns = document.getElementsByClassName(‘votos-senadores__voto-btn’);
for (let i = 0; i < toggleBtns.length; i++) {
toggleBtns[i].addEventListener(‘click’, function() {
this.classList.toggle(‘active’);
const panel = this.nextElementSibling;
panel.style.maxHeight = panel.style.maxHeight ? null : ‘14000px’;
});
}

Advertisement

// Now simulate a click on each button from within DOMContentLoaded.
// This will trigger the listener and expand each panel on load.
for (let i = 0; i < toggleBtns.length; i++) {
toggleBtns[i].click();
}

});

Advertisement
Advertisement

POLITICA

Mahiques arranca la gestión con cambios y pedidos de renuncia en áreas clave del Ministerio de Justicia

Published

on



Apenas horas después de asumir al frente del Ministerio de Justicia, Juan Bautista Mahiques definió hacer modificaciones en el elenco de funcionarios que antes acompañaba a Mariano Cúneo Libarona en la gestión.

En medio de trascendidos, fuentes al tanto de las decisiones del nuevo ministro confirmaron a : “Hay cambios”.

Advertisement

Lo afirmó Mahiques minutos después, en una entrevista televisiva: “Hice cambios, llegué y pedí la renuncia de los funcionarios políticos, porque llego con un equipo. Para la IGJ (por la Inspección General de Justicia) tenemos dos o tres nombres en carpeta”, afirmó. Y agregó, en alusión a los desplazados: «Todavía no dejaron los cargos. Se les pidió la renuncia formal, son funcionarios que pone la política o el ministro y cuando el ministro se va, se tienen que ir».

Además de la IGJ, del Ministerio de Justicia dependen o están vinculados organismos sensibles como la Unidad de Información Financiera (UIF), que es el organismo de lucha contra el lavado de activos, y la Oficina Anticorrupción, que debe velar por la transparencia en de los funcionarios; además de la Oficina de Bienes Recuperados y el Centro Internacional para la Promoción de los Derechos Humanos (CIPDH-Unesco).

De esta manera, la primera medida de Mahiques será remover a funcionarios que trabajaban en el área y colocar nombres propios.

Advertisement

Esta tarde, en los pasillos de Balcarce 50 fuentes oficiales dejaban trascender que Mahiques estaba en proceso de revisión de todos los “ravioles” de su cartera y que se podían venir noticias de este tipo.

Pero, mientras esto sucedía, titulares de organismos que serían tocados por la remoción que impulsa el ministro decían todavía no haber recibido ninguna notificación de su nuevo jefe para que abandonaran sus cargos.

Noticia en desarrollo

Advertisement

Juan Bautista Mahiques,Conforme a,,Definiciones. Viola pasó por la oficina de Santiago Caputo: reunión clave para contener la interna libertaria,,No fue invitado a la jura. Mahiques se reunió con Amerio: buscan un destino para el alfil de Santiago Caputo,,Casa Rosada. El frío saludo entre Karina Milei y Santiago Caputo: ella lo agarró y él no sacó las manos de los bolsillos,Juan Bautista Mahiques,,No fue invitado a la jura. Mahiques se reunió con Amerio: buscan un destino para el alfil de Santiago Caputo,,Jura. El reemplazante de Mahiques en la fiscalía de la Ciudad será López Zavaleta, otro judicial con el apoyo de Angelici,,AFAGate. El extraño robo que puso en jaque el sistema de bolsos con dinero y un chat sugestivo sobre Mahiques

Continue Reading

POLITICA

La gestión de Juan Bautista Mahiques en Justicia comenzó con un pedido masivo de renuncias

Published

on


La gestión de Juan Bautista Mahiques al frente del Ministerio de Justicia comenzó con un pedido masivo de renuncias a los titulares de casi todos los organismos dependientes de la cartera.

La medida afecta a la Oficina Anticorrupción, la Unidad de Información Financiera (UIF), la Oficina de Bienes Recuperados y el Centro Internacional para la Promoción de los Derechos Humanos. Según confirmaron fuentes oficiales, la Procuración del Tesoro es la única entidad que salió indemne por ser un área sensible que lleva causas importantes para el Estado.

Advertisement

En el marco de la disputa con la Asociación del Fútbol Argentino (AFA), Mahiques también solicitó la renuncia de Daniel Vítolo, titular de la Inspección General de Justicia (IGJ). Esta área resulta estratégica, ya que recientemente la IGJ pidió la designación de veedores para informar sobre estados contables y operaciones de la AFA con firmas nacionales y del exterior.

La transición, que se mantuvo en secreto durante semanas, incluyó reuniones clave entre el nuevo secretario de Justicia, Santiago Viola, y el asesor presidencial Santiago Caputo. En estos encuentros se consensuó mantener las ternas del Consejo de la Magistratura y el Ministerio Público Fiscal para acelerar la cobertura de vacantes judiciales.

Advertisement

“La prioridad es sacar la mayor cantidad de pliegos a la brevedad”, explicaron fuentes gubernamentales, aclarando que se priorizarán las designaciones que requieren mayoría simple en lugar de los cargos que exigen dos tercios del Senado, como los jueces de la Corte Suprema.

Por otro lado, la llegada de Viola a la Secretaría de Justicia implica que también asumirá la representación del Poder Ejecutivo en el Consejo de la Magistratura, desplazando a Sebastián Amerio. A pesar de su salida, Amerio podría ser reubicado en otra área de relevancia por decisión de Javier Milei, quien “lo tiene en alta estima”.

La entrada La gestión de Juan Bautista Mahiques en Justicia comenzó con un pedido masivo de renuncias se publicó primero en Nexofin.

Advertisement

Juan Bautista Mahiques,Mariano Cúneo Libarona,MINISTERIO DE JUSTICIA,Renuncia

Continue Reading

POLITICA

Patricia Bullrich recibió a Nahuel Gallo en el Senado y dijo que “intentaron apropiarse” de su liberación

Published

on



“Apenas nos pudimos contar el 10 por ciento de lo que vivimos en este tiempo, así que nos vamos a volver a ver para seguir hablando”. La senadora Patricia Bullrich resumió, así, la reunión que sostuvo esta tarde en su despacho de la Cámara alta al gendarme Nahuel Gallo, liberado el domingo pasado tras permanecer casi 450 días detenido por la dictadura de Venezuela.

Bullrich recibirá este viernes, a las 11.30, a la familia de Germán Giuliani, el último argentino que permanece detenido en las cárceles del régimen bolivariano.

Advertisement

Gallo llegó al Senado temprano, cerca de las 14, escoltado por personal de Gendarmería y evitó sostener contacto con la prensa. Sólo se lo pudo ver en el final de la entrevista, cuando Bullrich lo acompañó desde su despacho del primer piso hasta el automóvil que el gendarme abordó sobre la calle Hipólito Yrigoyen.

Gallo y Bullrich se saludan en la puerta del Senado

Cuando Gallo abandonó el Senado atrás habían quedado casi dos horas de reunión, la primera parte a solas con la exministra de Seguridad. En la segunda hora se sumaron algunos senadores, como el presidente provisional del Senado, el libertario Bartolomé Abdala (San Luis); Maximiliano Abad (UCR-Buenos Aires) y Martín Goerling (Pro-Misiones), entre otros.

Tras despedir a Gallo en la vereda del palacio legislativo, Bullrich habló con la prensa y volvió a defender el papel de la administración de Javier Milei y a cuestionar, de manera velada, la supuesta participación de terceros, en particular de la Asociación de Fútbol Argentina (AFA), en las negociaciones que terminaron con la liberación del gendarme.

Advertisement
La liberacin de Nahuel Gallo con el avin de la AFA, el ltimo domingo, junto a los dirigentes Luciano Nakis y Fernando Isla Casares

Sin entrar en mayores detalles, Bullrich dijo que “acá hubo un intento de apropiación” y justificó el éxito de las gestiones de la AFA al afirmar que “ellos podían llegar a (la presidenta de Venezuela) Delcy Rodríguez, son amigos, comparten ese mismo modelo, ese mismo régimen”.

Al respecto, Bullrich justificó la falta de protagonismo del Gobierno en la liberación de Gallo en las diferencias ideológicas con la administración venezolana. “Nosotros siempre tuvimos dificultades, nuestra embajada fue destruida”, aseguró, antes de rematar: “Bueno, Gallo está acá, eso es lo importante”.

En la misma línea, la jefa de los senadores oficialistas dijo que Gallo le comentó que “cuando lo fueron a buscar se enteró, en ese momento, que había un avión con dos representantes de la AFA”.

Advertisement
Gallo con varios senadores, entre ellos Bullrich, Abdala y Abad

“Después le pidieron que diga que había sido la AFA y él (por Gallo) decidió no decirlo porque sabe que su país estuvo siempre. Agradece que lo hayan traído, pero lo hace de manera privada”, agregó Bullrich.

Al respecto, la senadora contó que en su encuentro con Gallo hablaron “muchísimo de todo lo que fue ese año, de todo lo que hizo Gendarmería, lo que hizo Argentina” mientras estuvo detenido por el régimen venezolano, durante 448 días. Bullrich le regaló a Gallo un libro de su autoría titulado “Guerra sin cuartel”.

“También hablamos de los problemas que Argentina tuvo por la realidad de un país que está en las antípodas del régimen venezolano”, confió Bullrich en alusión al gobierno libertario de Javier Milei.

Advertisement
Uno de los varios abrazos que se dieron Bullrich y Gallo en el Senado

Según confiaron algunos de los participantes del encuentro, el gendarme contó algunos detalles de su detención. Por ejemplo, que estuvo tres meses incomunicado y que sus condiciones de contención eran más duras por la postura crítica del gobierno de Milei con el de Nicolás Maduro, expresidente ahora detenido en los Estados Unidos.

En otro momento, siempre de acuerdo al testimonio del gendarme, le colgaban carteles con las leyendas “mercenario” y “subversivo”. También habría contado que se enteró de la detención de Maduro una semana después de ocurrida.

Una mujer se acerc a saludar a Gallo en la puerta del Senado

Consultada sobre cuál será el futuro de Gallo, la senadora libertaria dijo que seguirá como efectivo de Gendarmería, tal como lo pidió el propio Gallo.

Advertisement

“Gallo es gendarme. Lo primero que pidió y quiso es seguir en la Gendarmería, nadie lo iba a sacar de la Gendarmería”, explicó Bullrich, quien dijo que tras un previsible “tiempo de adaptación”, Gallo “retomará las tareas de Gendarmería”.

Por su parte, el presidente provisional del Senado, Bartolomé Abdala, dijo que “la AFA hizo de taxi” al poner el avión a disposición de Gallo. “Ellos tendrán que explicar cuáles son los vínculos que tienen con un régimen irregular”, sostuvo el libertario puntano.


Gustavo Ybarra,Conforme a

Advertisement
Continue Reading

Tendencias