/!\ la version php n'est pas terminée
This commit is contained in:
@@ -20,14 +20,17 @@ candidats=poll['candidats']
|
||||
nombre_candidats=len(candidats)
|
||||
|
||||
# l'ordre des mentions est de la meilleure à la pire (reject)
|
||||
mentions=poll['mentions']
|
||||
default_mention=len(mentions)-1
|
||||
nom_mentions=poll['mentions']
|
||||
mentions=len(nom_mentions)
|
||||
|
||||
default_mention=mentions-1
|
||||
|
||||
votes=poll["votation"]["votes"]
|
||||
if verbose:
|
||||
print('candidats:' + str(candidats))
|
||||
print(votes)
|
||||
|
||||
warnings=[]
|
||||
default_vote={}
|
||||
for candidat in candidats:
|
||||
default_vote[candidat]=default_mention
|
||||
@@ -41,6 +44,9 @@ for vote in votes:
|
||||
vote[candidat]=default_mention
|
||||
|
||||
for candidat,mention in vote.items():
|
||||
if mention > default_mention or mention < 0:
|
||||
mention = default_mention
|
||||
warnings.append("index de mention invalide, soit la liste des mentions est erronnée soit la mention dans le vote est erronée")
|
||||
if candidat in collect:
|
||||
if mention in collect[candidat]:
|
||||
collect[candidat][mention]=collect[candidat][mention]+1
|
||||
@@ -61,20 +67,23 @@ if votant_median_check != votant_median:
|
||||
|
||||
merite={}
|
||||
mention_mediane={}
|
||||
merite_pourcent={}
|
||||
|
||||
# cumul : du meilleur au pire
|
||||
# range_mentions = range(len(mentions))
|
||||
# cumul du pire au meilleur
|
||||
range_mentions = range(len(mentions)-1,-1,-1)
|
||||
range_mentions = range(mentions-1,-1,-1)
|
||||
|
||||
for candidat in candidats:
|
||||
vote=collect[candidat]
|
||||
cumul=0
|
||||
m=[0 for i in range(len(mentions))]
|
||||
m=[0 for i in range(mentions)]
|
||||
mention_m=None
|
||||
pourcent=[0 for i in range(mentions)]
|
||||
for mention in range_mentions:
|
||||
if mention in vote:
|
||||
cumul=cumul+vote[mention]
|
||||
pourcent[mention]= ( 100 * vote[mention] ) / votants
|
||||
if cumul >= votant_median and mention_m is None:
|
||||
mention_m=mention
|
||||
m[mention]=cumul
|
||||
@@ -82,14 +91,15 @@ for candidat in candidats:
|
||||
print('[ERROR] le cumul des votes doit correspondre au nombre de votants. contactez le developpeur de ce code.')
|
||||
mention_mediane[candidat]=mention_m
|
||||
merite[candidat]=m
|
||||
merite_pourcent[candidat]=pourcent
|
||||
|
||||
if verbose:
|
||||
print(merite)
|
||||
print(mention_mediane)
|
||||
|
||||
# les gagnants sont ceux qui ont la mention minimale ( la meilleure )
|
||||
# les gagnants sont ceux qui ont la mention mediane minimale ( la meilleure )
|
||||
found=[]
|
||||
for mention in range(0,len(mentions)):
|
||||
for mention in range(0,mentions):
|
||||
for candidat,merite_median in mention_mediane.items():
|
||||
if merite_median == mention:
|
||||
found.append({candidat:candidats[candidat]})
|
||||
@@ -98,8 +108,8 @@ for mention in range(0,len(mentions)):
|
||||
|
||||
if verbose:
|
||||
print(found)
|
||||
print(mentions[mention])
|
||||
print(nom_mentions[mention])
|
||||
|
||||
result = {'resultat':{'mention':mentions[mention],'candidats':found},'merite':merite}
|
||||
result = {'resultat':{'mention':nom_mentions[mention],'candidats':found},'merite':merite,'profil':merite_pourcent,"warnings":warnings}
|
||||
|
||||
print(json.dumps(result))
|
||||
|
||||
Reference in New Issue
Block a user