summaryrefslogtreecommitdiffstats
path: root/forum
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2010-03-11 22:24:49 -0500
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2010-03-11 22:24:49 -0500
commit18318c5fe8dbae1ee50924aa5b8cf7b683d409ee (patch)
treeb17abbf2f2a864dc3e7079ec9abb0333ea245c2e /forum
parent2ac7ee2433ca2de37aae2a4701bb10dda290d5d3 (diff)
downloadaskbot-18318c5fe8dbae1ee50924aa5b8cf7b683d409ee.tar.gz
askbot-18318c5fe8dbae1ee50924aa5b8cf7b683d409ee.tar.bz2
askbot-18318c5fe8dbae1ee50924aa5b8cf7b683d409ee.zip
fixed circular dependency on models.signals and the question count on import
Diffstat (limited to 'forum')
-rwxr-xr-xforum/auth.py4
-rwxr-xr-xforum/models/__init__.py22
-rwxr-xr-xforum/models/question.py3
3 files changed, 16 insertions, 13 deletions
diff --git a/forum/auth.py b/forum/auth.py
index b034cc8d..5d6e71c4 100755
--- a/forum/auth.py
+++ b/forum/auth.py
@@ -10,8 +10,7 @@ from django.db import transaction
from models import Repute
from models import Question
from models import Answer
-#todo: why can't I import these?
-#from models import mark_offensive, delete_post_or_answer
+from models import mark_offensive, delete_post_or_answer
from const import TYPE_REPUTATION
import logging
@@ -257,7 +256,6 @@ def onFlaggedItem(item, post, user, timestamp=None):
mark_by=user
)
-
@transaction.commit_on_success
def onAnswerAccept(answer, user, timestamp=None):
if timestamp is None:
diff --git a/forum/models/__init__.py b/forum/models/__init__.py
index ef591702..ddb21319 100755
--- a/forum/models/__init__.py
+++ b/forum/models/__init__.py
@@ -8,9 +8,20 @@ import re
from base import *
import datetime
-from forum import auth
from django.contrib.contenttypes.models import ContentType
+#todo: move to a separate file?
+# custom signals
+tags_updated = django.dispatch.Signal(providing_args=["question"])
+edit_question_or_answer = django.dispatch.Signal(providing_args=["instance", "modified_by"])
+delete_post_or_answer = django.dispatch.Signal(providing_args=["instance", "deleted_by"])
+mark_offensive = django.dispatch.Signal(providing_args=["instance", "mark_by"])
+user_updated = django.dispatch.Signal(providing_args=["instance", "updated_by"])
+user_logged_in = django.dispatch.Signal(providing_args=["session"])
+
+#todo: must go after signals
+from forum import auth
+
# User extend properties
QUESTIONS_PER_PAGE_CHOICES = (
(10, u'10'),
@@ -72,15 +83,6 @@ User.add_to_class('tag_filter_setting',
)
)
-# custom signal
-tags_updated = django.dispatch.Signal(providing_args=["question"])
-edit_question_or_answer = django.dispatch.Signal(providing_args=["instance", "modified_by"])
-delete_post_or_answer = django.dispatch.Signal(providing_args=["instance", "deleted_by"])
-mark_offensive = django.dispatch.Signal(providing_args=["instance", "mark_by"])
-user_updated = django.dispatch.Signal(providing_args=["instance", "updated_by"])
-user_logged_in = django.dispatch.Signal(providing_args=["session"])
-
-
def get_messages(self):
messages = []
for m in self.message_set.all():
diff --git a/forum/models/question.py b/forum/models/question.py
index f4d4ac2e..68cd5293 100755
--- a/forum/models/question.py
+++ b/forum/models/question.py
@@ -70,6 +70,9 @@ class QuestionManager(models.Manager):
return False
+ #todo: why not make this into a method of class Question?
+ # also it is actually strange - why do we need the answer_count
+ # field if the count depends on who is requesting this?
def update_answer_count(self, question):
"""
Executes an UPDATE query to update denormalised data with the