~widelands-dev/widelands-website/trunk

« back to all changes in this revision

Viewing changes to wlpoll/models.py

  • Committer: franku
  • Author(s): GunChleoc
  • Date: 2016-12-13 18:30:38 UTC
  • mfrom: (438.1.6 pyformat_util)
  • Revision ID: somal@arcor.de-20161213183038-5cgmvfh2fkgmoc1s
adding a script to run pyformat over the code base

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
# lambda couldn't be used in field default and for python2 it must be declared
6
6
# in module body
7
7
# NOCOMM franku: The lambda won't work; why not return the result?
 
8
 
 
9
 
8
10
def closed_date_default():
9
 
    #return lambda: datetime.datetime.now() + datetime.timedelta(days=90)
 
11
    # return lambda: datetime.datetime.now() + datetime.timedelta(days=90)
10
12
    return datetime.datetime.now() + datetime.timedelta(days=90)
11
13
 
 
14
 
12
15
class PollManager(models.Manager):
 
16
 
13
17
    def open(self):
14
18
        return self.all().exclude(closed_date__lte=datetime.datetime.now())
15
19
 
 
20
 
16
21
class Poll(models.Model):
17
22
    name = models.CharField(max_length=256)
18
 
    pub_date = models.DateTimeField("date published", default = datetime.datetime.now)
19
 
    closed_date = models.DateTimeField("date closed", default = closed_date_default,
 
23
    pub_date = models.DateTimeField(
 
24
        'date published', default=datetime.datetime.now)
 
25
    closed_date = models.DateTimeField('date closed', default=closed_date_default,
20
26
                                       blank=True, null=True)
21
27
 
22
28
    objects = PollManager()
23
 
        
 
29
 
24
30
    def total_votes(self):
25
 
        return self.choices.all().aggregate(models.Sum("votes"))["votes__sum"]
 
31
        return self.choices.all().aggregate(models.Sum('votes'))['votes__sum']
26
32
 
27
33
    def has_user_voted(self, u):
28
34
        return u.poll_votes.filter(poll=self).count() > 0
39
45
    def __unicode__(self):
40
46
        return self.name
41
47
 
 
48
 
42
49
class Choice(models.Model):
43
 
    poll = models.ForeignKey(Poll, related_name="choices")
 
50
    poll = models.ForeignKey(Poll, related_name='choices')
44
51
    choice = models.CharField(max_length=256)
45
52
    votes = models.PositiveIntegerField(default=0)
46
53
 
47
54
    def __unicode__(self):
48
 
        return u"%i:%s" % (self.votes,self.choice)
 
55
        return u"%i:%s" % (self.votes, self.choice)
 
56
 
49
57
 
50
58
class Vote(models.Model):
51
 
    user = models.ForeignKey(User, related_name="poll_votes")
 
59
    user = models.ForeignKey(User, related_name='poll_votes')
52
60
    poll = models.ForeignKey(Poll)
53
61
    choice = models.ForeignKey(Choice)
54
 
    date_voted = models.DateTimeField("voted at", default = datetime.datetime.now)
55
 
 
56
 
 
 
62
    date_voted = models.DateTimeField(
 
63
        'voted at', default=datetime.datetime.now)