]> git.openstreetmap.org Git - osqa.git/blob - forum/models/meta.py
deleting the test file
[osqa.git] / forum / models / meta.py
1 from base import *\r
2 \r
3 class VoteManager(models.Manager):\r
4     def get_up_vote_count_from_user(self, user):\r
5         if user is not None:\r
6             return self.filter(user=user, vote=1).count()\r
7         else:\r
8             return 0\r
9 \r
10     def get_down_vote_count_from_user(self, user):\r
11         if user is not None:\r
12             return self.filter(user=user, vote=-1).count()\r
13         else:\r
14             return 0\r
15 \r
16     def get_votes_count_today_from_user(self, user):\r
17         if user is not None:\r
18             today = datetime.date.today()\r
19             return self.filter(user=user, voted_at__range=(today, today + datetime.timedelta(1))).count()\r
20 \r
21         else:\r
22             return 0\r
23 \r
24 \r
25 class Vote(MetaContent):\r
26     VOTE_UP = +1\r
27     VOTE_DOWN = -1\r
28     VOTE_CHOICES = (\r
29         (VOTE_UP,   u'Up'),\r
30         (VOTE_DOWN, u'Down'),\r
31     )\r
32 \r
33     vote           = models.SmallIntegerField(choices=VOTE_CHOICES)\r
34     voted_at       = models.DateTimeField(default=datetime.datetime.now)\r
35 \r
36     objects = VoteManager()\r
37 \r
38     class Meta(MetaContent.Meta):\r
39         unique_together = ('content_type', 'object_id', 'user')\r
40         db_table = u'vote'\r
41 \r
42     def __unicode__(self):\r
43         return '[%s] voted at %s: %s' %(self.user, self.voted_at, self.vote)\r
44 \r
45     def is_upvote(self):\r
46         return self.vote == self.VOTE_UP\r
47 \r
48     def is_downvote(self):\r
49         return self.vote == self.VOTE_DOWN\r
50 \r
51 \r
52 class FlaggedItemManager(models.Manager):\r
53     def get_flagged_items_count_today(self, user):\r
54         if user is not None:\r
55             today = datetime.date.today()\r
56             return self.filter(user=user, flagged_at__range=(today, today + datetime.timedelta(1))).count()\r
57         else:\r
58             return 0\r
59 \r
60 class FlaggedItem(MetaContent):\r
61     """A flag on a Question or Answer indicating offensive content."""\r
62     flagged_at     = models.DateTimeField(default=datetime.datetime.now)\r
63 \r
64     objects = FlaggedItemManager()\r
65 \r
66     class Meta(MetaContent.Meta):\r
67         unique_together = ('content_type', 'object_id', 'user')\r
68         db_table = u'flagged_item'\r
69 \r
70     def __unicode__(self):\r
71         return '[%s] flagged at %s' %(self.user, self.flagged_at)\r
72 \r
73 class Comment(MetaContent):\r
74     comment        = models.CharField(max_length=300)\r
75     added_at       = models.DateTimeField(default=datetime.datetime.now)\r
76 \r
77     class Meta(MetaContent.Meta):\r
78         ordering = ('-added_at',)\r
79         db_table = u'comment'\r
80 \r
81     def save(self,**kwargs):\r
82         super(Comment,self).save(**kwargs)\r
83         try:\r
84             ping_google()\r
85         except Exception:\r
86             logging.debug('problem pinging google did you register you sitemap with google?')\r
87 \r
88     def __unicode__(self):\r
89         return self.comment