Dans les 34 876 communes où se sont déroulées les élections municipales les dimanches 15 et 22 mars, de nouveaux conseils municipaux vont s’installer dès cette semaine. Les équipes élues au second tour, dimanche 22 mars, sont tenues d’élire le maire et ses adjoints entre le 27 et le 29 mars, dès leur première réunion. Quant à celles désignées dès le premier tour, dimanche 15 mars, elles ont normalement déjà procédé au vote.
Qui sont vos nouveaux conseillers municipaux ? Quelle est leur étiquette politique ? Sont-ils dans la majorité ou dans l’opposition ?
Retrouvez le résultat des élections municipales et la liste de vos nouveaux conseillers dans notre moteur de recherche.
Abstention : ${(processedMentions.abstention_percent / 100).toLocaleString(locale, { minimumFractionDigits: 1, maximumFractionDigits: 1, style: « percent » })}
Blancs et nuls : ${(processedMentions.blancs_nuls_percent / 100).toLocaleString(locale, { minimumFractionDigits: 1, maximumFractionDigits: 1, style: « percent » })}
Sièges à pourvoir : ${processedMentions.sieges_a_pourvoir.toLocaleString(locale)}
`;
} else {
parentElement.querySelector(« .municipalesResults__mentions »).innerHTML = `
Registered : ${processedMentions.mentions.inscrits.toLocaleString(locale)}
Abstention : ${(processedMentions.abstention_percent / 100).toLocaleString(locale, { minimumFractionDigits: 1, maximumFractionDigits: 1, style: « percent » })}
Blank and invalid : ${(processedMentions.blancs_nuls_percent / 100).toLocaleString(locale, { minimumFractionDigits: 1, maximumFractionDigits: 1, style: « percent » })}
Seats to be filled : ${processedMentions.sieges_a_pourvoir.toLocaleString(locale)}
`;
}
if (document.querySelector(« .municipalesResults__countingProgress »)) {
document.querySelector(« .municipalesResults__countingProgress »).style.display = processedMentions.pourcentage_completion < 100 ? null : « none »;
document.querySelector(« .municipalesResults__countingProgress__circle »).textContent = `${processedMentions.pourcentage_completion.toLocaleString(locale, {
minimumFractionDigits: 0,
maximumFractionDigits: 0,
})}%`;
document.querySelector(« .municipalesResults__countingProgress__circleCompletion »).style.setProperty(« –completion », `${processedMentions.pourcentage_completion}%`);
updatedAt = new Date(updatedAt);
const timeFormat = locale == « fr-FR » ? `${updatedAt.getHours()} h ${updatedAt.getMinutes()<10 ? « 0 » : « »}${updatedAt.getMinutes()}` : `${updatedAt.getHours()}:${updatedAt.getMinutes()<10 ? « 0 » : « »}${updatedAt.getMinutes()}`;
document.querySelector(« .municipalesResults__countingProgress__lastUpdate »).textContent = (locale == « en-EN ») ? `Last update at ${timeFormat}` : `Mis à jour à ${timeFormat}`;
}
let hasMajoriteAbsolue = sortedListes.some((liste) => liste.voix / processedMentions.mentions.exprimes > 0.5);
const listItemsHtml = sortedListes
.map((liste, index_liste) => {
const percent = (liste.voix / processedMentions.mentions.exprimes) * 100;
const nuanceData = nuances ? nuances[liste.nuance] : null;
const color = nuanceData ? nuanceData.couleur : « #7f7f7f »;
const darkColor = nuanceData ? nuanceData.couleur_dark : « #7f7f7f »;
const daltColor = nuanceData ? nuanceData.couleur_dalt : « #7f7f7f »;
const nuanceShortLabel = nuanceData // Prefer nuance short label from nuances data if available, otherwise fallback to liste.nuance
? locale == « fr-FR »
? nuanceData.nom_court
: nuanceData.nom_court_en || nuanceData.nom_court // if language is French, use nom_court, otherwise try nom_court_en and fallback to nom_court
: liste.nuance;
const nuanceCandidat = nuancesCandidats ? nuancesCandidats[liste.nuance_lemonde] : null;
let nuanceCandidatLabel = null;
if (nuanceCandidat && liste.nuance_lemonde != liste.nuance) {
if (isMobile) {
if (locale == « fr-FR ») {
nuanceCandidatLabel = nuanceCandidat.nom_court;
} else {
nuanceCandidatLabel = nuanceCandidat.nom_court_en || nuanceCandidat.nom_court;
}
} else {
if (locale == « fr-FR ») {
nuanceCandidatLabel = nuanceCandidat.nom_long;
} else {
nuanceCandidatLabel = nuanceCandidat.nom_long_en || nuanceCandidat.nom_long;
}
}
}
let badgesHtml = « »;
const badges = [];
if (liste.elus && liste.elus > 0) {
badges.push({
label: `${liste.elus} ${locale == « fr-FR » ? (liste.elus > 1 ? « sièges » : « siège ») : liste.elus > 1 ? « seats » : « seat »}`,
type: « bold »,
});
}
if (liste.qualifie) {
badges.push({
label: locale == « fr-FR » ? « Liste qualifiée » : « Qualified »,
type: « terciary »,
});
}
if (percent > 50 && parseInt(tour) === 1) {
badges.push({
label: locale == « fr-FR » ? « Majorité absolue » : « Absolute majority »,
type: « terciary »,
});
} else if (parseInt(tour) === 2 && index_liste === 0 && !hasMajoriteAbsolue) {
badges.push({
label: locale == « fr-FR » ? « Prime majoritaire » : « Majority bonus »,
type: « terciary »,
});
}
// Render badges
if (badges.length > 0) {
badgesHtml = ``;
badgesHtml += badges
.map(
(badge) => `
${badge.label}
`
)
.join(« »);
badgesHtml += ``;
}
return `
${liste.tete.prenom} ${liste.tete.nom} ${nuanceCandidatLabel ? `(${nuanceCandidatLabel})` : « »}
${badgesHtml}
${nuanceShortLabel ? `${nuanceShortLabel} – ` : « »}${
liste.lib
}
${liste.voix.toLocaleString(locale)} votes
`;
})
.join(« »);
parentElement.querySelector(« .municipalesResults__bars »).innerHTML = listItemsHtml;
};
const renderNoResults = function (parentElement) {
parentElement.querySelector(« .municipalesResults__mentions »).innerHTML = locale == « fr-FR » ? `
Les résultats ne sont pas encore disponibles.
` : `
The results are not yet available.
`;
parentElement.querySelector(« .municipalesResults__bars »).innerHTML = « »;
parentElement.querySelector(« .municipalesResults__countingProgress »).style.display = « none »;
parentElement.querySelector(« .tour_election »).innerHTML = « »;
};
async function addListeElus(parentElement, code_commune, tour_election) {
const code_dep = code_commune.startsWith(« 97 ») || code_commune.startsWith(« 98 ») ? code_commune.substring(0, 3) : « 0 » + code_commune.substring(0, 2);
const data_dept = await fetchData(code_dep, tour_election);
const data_commune = data_dept[code_commune];
for (const liste of data_commune.listes) {
if (liste.elus == 0) {
continue;
}
const container_liste = parentElement.querySelector(`.municipalesResults__resultItem[id= »liste-${liste.n} »]`);
const container_liste_elus = container_liste.querySelector(« .municipalesResults__resultItem__listeElus »);
const text_title_active = locale == « fr-FR » ? « Cacher les élus » : « Hide elected members »;
const text_title_inactive = locale == « fr-FR » ? « Voir les élus » : « See elected members »;
container_liste_elus.innerHTML = `
${text_title_active}
`;
const liste_elus_content = document.createElement(« div »);
liste_elus_content.classList.add(« municipalesResults__resultItem__listeElus__content »);
container_liste_elus.appendChild(liste_elus_content);
let index_liste_elu = 0;
for (const liste_elu of liste.liste_elus) {
liste_elus_content.innerHTML += `
${index_liste_elu + 1}. ${liste_elu.prenom} ${liste_elu.nom}
`;
index_liste_elu++;
}
// On click
container_liste_elus.querySelector(« .municipalesResults__resultItem__listeElus__title »).addEventListener(« click », () => {
container_liste_elus.querySelector(« .municipalesResults__resultItem__listeElus__title »).classList.toggle(« active »);
if (container_liste_elus.querySelector(« .municipalesResults__resultItem__listeElus__title »).classList.contains(« active »)) {
container_liste_elus.querySelector(« .municipalesResults__resultItem__listeElus__title »).innerHTML = text_title_active;
} else {
container_liste_elus.querySelector(« .municipalesResults__resultItem__listeElus__title »).innerHTML = text_title_inactive;
}
liste_elus_content.style.display = liste_elus_content.style.display == « none » ? null : « none »;
});
}
// const listeElus = parentElement.querySelector(« .municipalesResults__listeElus »);
// listeElus.innerHTML = `
//
//
// `;
}













