You are here -> Home Logram et son site » Les sondages marchent enfin

Les sondages marchent enfin

Le 16/06/2010 à 12h02 by steckdenis, in Logram et son site, 2 commentaries

Bonjour,

Vous l'avez peut-être remarqué, le site web vous demande sans arrêt de voter aux sondages, même si vous y avez déjà répondu. Les gens honnêtes utilisent le «Vote blanc», tandis que les autres revotent pour ce qu'ils veulent (exemple : LPM gagne haut la main, bien que Enstale aie plus de votes. Simplement, j'ai compté qu'Enstale gagne à peu près un vote par jour, c'est à dire que c'est toujours le même qui vote :-° ).

Bref, les sondages perdent de leur intérêt. De plus, permettre le vote aux anonymes me paraissait une bonne idée avant qu'un bot vienne participer aux sondages.

J'ai donc implémenté les sondages en base de donnée. Vous ne pouvez donc maintenant voter que une seule et unique fois par sondage.

Les précédants résultats ne sont pas perdus, bien que le site web vous demandera une toute dernière fois de voter à vos sondages préférés.

A plus.

Commentaries

Author Message
danman
# le 18/06/2010 à 22h27
Heureux d'être là
Group : Member

Alors tu as utilisé quoi ?

manyToMany ? xml ?

steckdenis
# le 19/06/2010 à 8h43
Ça marche !
Avatar
Group : Administrateur

Une table UserChoice, qui contient un champs «user» et un champs «choice».

C'est en fait un peu comme un ManyToMany, mais fait moi-même pour le gérer plus finement. (parce que mine de rien, savoir s'il existe un UserChoice d'un certain utilisateur et dont le choix appartient à un certain sondage est un peu plus difficile à faire avec des ManyToMany).

1
2
3
4
5
6
7
8
# Savoir si on peut voter
if request.user.is_anonymous:
    poll_can_vote = False
else:
    user_choices = UserChoice.objects \\
                    .filter(user=request.user.get_profile(), choice__poll=poll)

    poll_can_vote = (user_choices.count() == 0)

KDE le fait depuis 10 ans.