L'affichage des résultats par région/département/circonscription/commune/bureau de vote est fonctionnel
This commit is contained in:
		@@ -17,6 +17,10 @@ function App() {
 | 
			
		||||
      path: "/elections/europeennes/2024/region/:zoneId/",
 | 
			
		||||
      element: <Elections2024 typeResultats="regions" />,
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      path: "/elections/europeennes/2024/circonscription/:zoneId/",
 | 
			
		||||
      element: <Elections2024 typeResultats="circonscriptions" />,
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      path: "/elections/europeennes/2024/departement/:zoneId/",
 | 
			
		||||
      element: <Elections2024 typeResultats="departements" />,
 | 
			
		||||
@@ -25,6 +29,10 @@ function App() {
 | 
			
		||||
      path: "/elections/europeennes/2024/commune/:zoneId/",
 | 
			
		||||
      element: <Elections2024 typeResultats="communes" />,
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      path: "/elections/europeennes/2024/bureau_vote/:zoneId/",
 | 
			
		||||
      element: <Elections2024 typeResultats="bureaux_vote" />,
 | 
			
		||||
    },
 | 
			
		||||
  ])
 | 
			
		||||
 | 
			
		||||
  return <>
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@ import {useEffect, useState} from "react"
 | 
			
		||||
highchartsItem(Highcharts)
 | 
			
		||||
 | 
			
		||||
function ResultatsTable({blocs, nuances, listes, resultats, siegesParListe}) {
 | 
			
		||||
  const voix_listes = resultats.voix_listes
 | 
			
		||||
  const voix_listes = resultats?.voix_listes ?? {}
 | 
			
		||||
  const listes_triees = listes.toSorted((l1, l2) => {
 | 
			
		||||
    return (voix_listes[l2.numero] || 0) - (voix_listes[l1.numero] || 0)
 | 
			
		||||
  })
 | 
			
		||||
@@ -117,6 +117,7 @@ function ParticipationTable({resultats}) {
 | 
			
		||||
export default function Election2024({typeResultats = "france"}) {
 | 
			
		||||
  const {zoneId} = useParams()
 | 
			
		||||
 | 
			
		||||
  const [zoneName, setZoneName] = useState("France")
 | 
			
		||||
  const [grouperParBloc, setGrouperParBloc] = useState(false)
 | 
			
		||||
  const [retirerSeuil, setRetirerSeuil] = useState(false)
 | 
			
		||||
  const [blocs, setBlocs] = useState([])
 | 
			
		||||
@@ -150,6 +151,23 @@ export default function Election2024({typeResultats = "france"}) {
 | 
			
		||||
    }
 | 
			
		||||
  }, [typeResultats, zoneId])
 | 
			
		||||
 | 
			
		||||
  useEffect(() => {
 | 
			
		||||
    if (!resultats || resultats.length === 0)
 | 
			
		||||
      setZoneName("")
 | 
			
		||||
    else if (typeResultats === "france")
 | 
			
		||||
      setZoneName("France")
 | 
			
		||||
    else if (typeResultats === "regions")
 | 
			
		||||
      setZoneName(`Région ${resultats.region.nom}`)
 | 
			
		||||
    else if (typeResultats === "departements")
 | 
			
		||||
      setZoneName(`Département ${resultats.departement.nom}`)
 | 
			
		||||
    else if (typeResultats === "circonscriptions")
 | 
			
		||||
      setZoneName(`Circonscription ${resultats.circonscription.nom}`)
 | 
			
		||||
    else if (typeResultats === "communes")
 | 
			
		||||
      setZoneName(`Commune ${resultats.commune.nom}`)
 | 
			
		||||
    else if (typeResultats === "bureaux_vote")
 | 
			
		||||
      setZoneName(resultats.bureau_vote.libelle)
 | 
			
		||||
  }, [typeResultats, resultats])
 | 
			
		||||
 | 
			
		||||
  useEffect(() => {
 | 
			
		||||
    const parBloc = {}
 | 
			
		||||
    const parNuance = {}
 | 
			
		||||
@@ -301,7 +319,7 @@ export default function Election2024({typeResultats = "france"}) {
 | 
			
		||||
      type: 'column'
 | 
			
		||||
    },
 | 
			
		||||
    title: {
 | 
			
		||||
      text: 'Résultats des élections européennes 2024 en France',
 | 
			
		||||
      text: `Résultats des élections européennes 2024 : ${zoneName}`,
 | 
			
		||||
    },
 | 
			
		||||
    legend: {
 | 
			
		||||
      labelFormat: '{name} <span style="opacity: 0.4">{x}</span>'
 | 
			
		||||
 
 | 
			
		||||
@@ -317,7 +317,9 @@ def exporter_resultats_bureaux_vote(engine: Engine, verbose: bool = False) -> No
 | 
			
		||||
 | 
			
		||||
        iterator = tqdm(bureaux_vote, desc="Bureaux de vote") if verbose else bureaux_vote
 | 
			
		||||
        for bureau_vote in iterator:
 | 
			
		||||
            bureau_vote_json = {'id': bureau_vote.id, 'commune': bureau_vote.commune_code}
 | 
			
		||||
            bureau_vote_json = {'id': bureau_vote.id,
 | 
			
		||||
                                'commune': bureau_vote.commune_code,
 | 
			
		||||
                                'circonscription': bureau_vote.circo_code}
 | 
			
		||||
            bureaux_vote_json.append(bureau_vote_json)
 | 
			
		||||
 | 
			
		||||
            resultats_bureau_vote = session.execute(
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user