~widelands-dev/widelands-website/trunk

« back to all changes in this revision

Viewing changes to pybb/models.py

  • Committer: franku
  • Date: 2016-11-15 07:40:58 UTC
  • mfrom: (429.1.5 anti_spam_4)
  • Revision ID: somal@arcor.de-20161115074058-9021bj43zl01z6kz
Give the forum views only non hidden posts; added a management command for sending e-mails in case of spam

Show diffs side-by-side

added added

removed removed

Lines of Context:
83
83
 
84
84
    @property
85
85
    def posts(self):
86
 
        return Post.objects.filter(topic__forum=self).select_related()
 
86
        return Post.objects.filter(topic__forum=self).exclude(hidden=True).select_related()
87
87
 
88
88
    @property
89
89
    def post_count(self):
90
 
        return Post.objects.filter(topic__forum=self).count()
 
90
        return Post.objects.filter(topic__forum=self).exclude(hidden=True).count()
91
91
 
92
92
    @property
93
93
    def last_post(self):
94
 
        posts = self.posts.order_by('-created').select_related()
95
 
        try:
96
 
            return posts[0]
97
 
        except IndexError:
98
 
            return None
99
 
 
100
 
    @property
101
 
    def last_nonhidden_post(self):
102
 
        posts = self.posts.order_by('-created').filter(hidden=False).select_related()
 
94
        posts = self.posts.exclude(hidden=True).order_by('-created').select_related()
103
95
        try:
104
96
            return posts[0]
105
97
        except IndexError:
138
130
 
139
131
    @property
140
132
    def last_post(self):
141
 
        return self.posts.all().order_by('-created').select_related()[0]
142
 
 
143
 
    @property
144
 
    def last_nonhidden_post(self):
145
 
        try:
146
 
            return self.posts.all().order_by('-created').filter(hidden=False).select_related()[0]
147
 
        except IndexError:
148
 
            return self.posts.all().order_by('-created').select_related()[0]
 
133
        return self.posts.exclude(hidden=True).order_by('-created').select_related()[0]
149
134
 
150
135
    # If the first post of this topic is hidden, the topic is hidden
151
136
    @property
152
137
    def is_hidden(self):
153
138
        try:
154
 
            p = self.posts.all().order_by('created').filter(hidden=False).select_related()[0]
 
139
            p = self.posts.order_by('created').filter(hidden=False).select_related()[0]
155
140
        except IndexError:
156
141
            return True
157
142
        return False
158
143
 
159
144
    @property
160
145
    def post_count(self):
161
 
        return Post.objects.filter(topic=self).count()
 
146
        return Post.objects.filter(topic=self).exclude(hidden=True).count()
162
147
 
163
148
    def get_absolute_url(self):
164
149
        return reverse('pybb_topic', args=[self.id])