~widelands-dev/widelands-website/trunk

« back to all changes in this revision

Viewing changes to wlpoll/models.py

  • Committer: Holger Rapp
  • Date: 2010-11-01 19:02:28 UTC
  • Revision ID: sirver@gmx.de-20101101190228-t75jl4walit0bvie
Some bug fixes concerning paths. Fixed worker_details view which had a wrong name

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
from django.db import models
2
 
from django.contrib.auth.models import User
3
2
import datetime
4
3
 
5
4
class PollManager(models.Manager):
9
8
class Poll(models.Model):
10
9
    name = models.CharField(max_length=256)
11
10
    pub_date = models.DateTimeField("date published", default = datetime.datetime.now)
12
 
    closed_date = models.DateTimeField("date closed", default= lambda: datetime.datetime.now() + datetime.timedelta(days=90),
 
11
    closed_date = models.DateTimeField("date closed", default= lambda: datetime.datetime.now() + datetime.timedelta(days=90), 
13
12
                            blank=True, null=True)
14
 
 
 
13
    
15
14
    objects = PollManager()
16
15
 
17
16
    def total_votes(self):
18
17
        return self.choices.all().aggregate(models.Sum("votes"))["votes__sum"]
19
 
 
20
 
    def has_user_voted(self, u):
21
 
        return u.poll_votes.filter(poll=self).count() > 0
22
 
 
 
18
    
23
19
    def is_closed(self):
24
20
        if self.closed_date is None:
25
21
            return False
26
22
        return self.closed_date < datetime.datetime.now()
27
 
 
 
23
    
28
24
    @models.permalink
29
25
    def get_absolute_url(self):
30
26
        return ('wlpoll_detail', None, {'object_id': self.id})
39
35
 
40
36
    def __unicode__(self):
41
37
        return u"%i:%s" % (self.votes,self.choice)
42
 
 
43
 
class Vote(models.Model):
44
 
    user = models.ForeignKey(User, related_name="poll_votes")
45
 
    poll = models.ForeignKey(Poll)
46
 
    choice = models.ForeignKey(Choice)
47
 
    date_voted = models.DateTimeField("voted at", default = datetime.datetime.now)
48
 
 
49