from tag import Tag
from django.utils.translation import ugettext as _
-question_view = django.dispatch.Signal(providing_args=['instance', 'user'])
-
class QuestionManager(NodeManager):
def search(self, keywords):
return False, self.filter(models.Q(title__icontains=keywords) | models.Q(body__icontains=keywords))
return [Question.objects.get(id=r['id']) for r in related_list]
def get_active_users(self):
- active_users = []
+ active_users = set()
- active_users.append(self.author)
+ active_users.add(self.author)
for answer in self.answers:
- active_users.append(answer.author)
-
- for child in self.children.all():
- active_users.append(child.author)
- for grandchild in child.children.all():
- active_users.append(grandchild.author)
-
- # Remove duplicates
- unique_active_users = []
- for user in active_users:
- if user not in unique_active_users:
- unique_active_users.append(user)
- active_users = unique_active_users
- del unique_active_users
+ active_users.add(answer.author)
+
+ for comment in answer.comments:
+ active_users.add(comment.author)
+
+ for comment in self.comments:
+ active_users.add(comment.author)
return active_users
-def question_viewed(instance, **kwargs):
- instance.extra_count += 1
- instance.save()
-
-question_view.connect(question_viewed)
-
-
class QuestionSubscription(models.Model):
user = models.ForeignKey(User)
question = models.ForeignKey(Node)