Skip to content

Commit

Permalink
Docs: D'Hondt comentado; #2
Browse files Browse the repository at this point in the history
  • Loading branch information
isamunval committed Jan 6, 2022
1 parent 4240f15 commit 6f748ab
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion decide/postproc/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,14 +169,25 @@ def checkPorcentajeParidad(self, hombres, mujeres):
return not (porcentajeMujeres < 0.4 or porcentajeHombres < 0.4)

def dhondt(self, options, seats):


"""
* Definicion: Asigna escaños en las listas electorales
* Entrada: Json de la votación asignando los escaños según corresponda
* Salida: Lista de la opciones ordenadas según el número de escaños que posean,
de mayor a menor
"""

#Para cada opcion se le añaden escaños
for opt in options:
opt['postproc'] = 0

#Para asignar escaños, se realiza la división entre los vosotros que tiene cada opción y los escaños (inicialmente se divide entre 1)
#El mayor cociente se lleva el escaño
for i in range(seats):
max(options,
key = lambda x : x['votes'] / (x['postproc'] + 1.0))['postproc'] += 1

#Se ordenan las opciones según los escaños
options.sort(key=lambda x: -x['postproc'])
out = options

Expand Down Expand Up @@ -224,5 +235,7 @@ def post(self, request):
return self.borda(opts)
elif t == 'PARIDAD':
return Response(self.paridad(opts))
elif typeOfData == 'DHONDT':
return Response(self.dhondt(options, s))

return Response({})

0 comments on commit 6f748ab

Please sign in to comment.