]> git.openstreetmap.org Git - osqa.git/commitdiff
OSQA-382, convert the python files line endings to OS native mode, propedit svn:eol...
authorjordan <jordan@0cfe37f9-358a-4d5e-be75-b63607b5c754>
Sat, 25 Jun 2011 03:50:15 +0000 (03:50 +0000)
committerjordan <jordan@0cfe37f9-358a-4d5e-be75-b63607b5c754>
Sat, 25 Jun 2011 03:50:15 +0000 (03:50 +0000)
git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@1077 0cfe37f9-358a-4d5e-be75-b63607b5c754

54 files changed:
forum/actions/__init__.py
forum/actions/meta.py
forum/actions/node.py
forum/management/commands/create_extended_user.py
forum/management/commands/create_subscriptions.py
forum/markdownext/mdx_limitedsyntax.py
forum/middleware/extended_user.py
forum/middleware/request_utils.py
forum/migrations/0001_initial.py
forum/migrations/0002_auto__add_likedcomment__del_field_repute_positive__del_field_repute_ne.py
forum/migrations/0003_repute_changes.py
forum/migrations/0004_auto__del_field_repute_negative__del_field_repute_positive__del_field_.py
forum/migrations/0005_fill_accepted_by_field.py
forum/migrations/0006_auto__add_node__add_field_vote_node__add_field_comment_node__add_field.py
forum/migrations/0007_q_and_a_to_node.py
forum/migrations/0008_auto__add_noderevision__del_field_vote_object_id__del_field_vote_conte.py
forum/migrations/0009_convert_revisions.py
forum/migrations/0010_auto__del_questionrevision__del_answerrevision__del_field_answer_vote_.py
forum/migrations/0011_auto__add_field_node_active_revision.py
forum/migrations/0012_set_active_revision.py
forum/migrations/0013_auto__del_anonymousquestion__del_anonymousanswer__add_anonymousnode.py
forum/migrations/0014_auto__add_field_question_accepted_answer.py
forum/migrations/0015_accepted_answer_changes.py
forum/migrations/0016_auto__del_field_question_answer_accepted__chg_field_question_node_ptr.py
forum/migrations/0017_auto__add_field_repute_node__add_field_repute_canceled.py
forum/migrations/0018_comments_to_node.py
forum/migrations/0019_auto__del_likedcomment__del_comment__add_field_node_abs_parent__chg_fi.py
forum/migrations/0020_create_absolute_parents.py
forum/migrations/0021_create_new_pg_fts_triggers.py
forum/migrations/0022_auto__add_actionrepute__add_action__add_favoritenode__del_field_node_v.py
forum/migrations/0023_flaten_node_inheritance_create_actions.py
forum/migrations/0024_auto__del_repute__del_vote__del_answer__del_flaggeditem__del_anonymous.py
forum/migrations/0025_auto__add_field_node_extra_action__add_field_node_deleted__add_field_n.py
forum/migrations/0026_reset_deleted_and_lastedited_flags.py
forum/migrations/0027_auto__del_activity.py
forum/migrations/0028_auto__add_field_action_canceled_ip__add_field_actionrepute_date.py
forum/migrations/0029_repute_dates.py
forum/migrations/0030_auto__chg_field_action_extra__chg_field_keyvalue_value.py
forum/migrations/0031_alter_pickle_storage.py
forum/migrations/0032_auto__del_field_user_hide_ignored_questions__del_field_user_questions_.py
forum/migrations/0033_auto__add_flag__add_vote__add_field_badge_cls__del_unique_badge_type_n.py
forum/migrations/0034_new_badge_and_award.py
forum/migrations/0035_auto__del_field_award_object_id__del_field_award_content_type__add_uni.py
forum/migrations/0036_auto__add_nodestate__chg_field_award_action__add_field_node_state_stri.py
forum/migrations/0037_fill_node_state.py
forum/migrations/0038_auto__del_field_node_wiki__del_field_node_deleted__del_field_node_extr.py
forum/migrations/0039_auto__del_field_tag_deleted__del_field_tag_deleted_by__del_field_tag_d.py
forum/migrations/__init__.py
forum/modules/decorators.py
forum/subscriptions.py
forum_modules/akismet/settings.py
forum_modules/exporter/orm.py
forum_modules/pgfulltext/settings.py
forum_modules/pgfulltext/startup.py

index 4c6c6784b30ef42f2923805e2260430ad6041309..a23e4dfae59c9f768a58b8d9409efd19f35ebca2 100644 (file)
@@ -1,4 +1,4 @@
-from meta import *\r
-from node import *\r
-from user import *\r
+from meta import *
+from node import *
+from user import *
 from page import *
\ No newline at end of file
index a964ef1db289ca0ec9171441046434c2d8f75c98..62360ce7f65bae6423896bab99da04d0601767ce 100644 (file)
-from django.utils.translation import ugettext as _\r
-from django.db.models import F\r
-from forum.models.action import ActionProxy, DummyActionProxy\r
-from forum.models import Vote, Flag\r
-from forum import settings\r
-\r
-class VoteAction(ActionProxy):\r
-    def update_node_score(self, inc):\r
-        self.node.score = F('score') + inc\r
-        self.node.save()\r
-\r
-    def process_vote_action(self, value):\r
-        self.update_node_score(value)\r
-        vote = Vote(node=self.node, user=self.user, action=self, value=value)\r
-        vote.save()\r
-\r
-    def cancel_action(self):\r
-        vote = self.vote\r
-        self.update_node_score(-vote.value)\r
-        vote.delete()\r
-\r
-    @classmethod\r
-    def get_for(cls, user, node):\r
-        try:\r
-            vote = Vote.objects.get(user=user, node=node)\r
-            return vote.value\r
-        except:\r
-            return None\r
-\r
-    @classmethod\r
-    def get_action_for(cls, user, node):\r
-        try:\r
-            vote = Vote.objects.get(user=user, node=node)\r
-            return vote.action\r
-        except:\r
-            return None\r
-\r
-    def describe_vote(self, vote_desc, viewer=None):\r
-        return _("%(user)s %(vote_desc)s %(post_desc)s") % {\r
-            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),\r
-            'vote_desc': vote_desc, 'post_desc': self.describe_node(viewer, self.node)\r
-        }\r
-\r
-\r
-class VoteUpAction(VoteAction):\r
-    def repute_users(self):\r
-        self.repute(self.node.author, int(settings.REP_GAIN_BY_UPVOTED))\r
-\r
-    def process_action(self):\r
-        self.process_vote_action(1)\r
-        self.user.reset_vote_up_count_cache()\r
-\r
-    def cancel_action(self):\r
-        super(VoteUpAction, self).cancel_action()\r
-        self.user.reset_vote_up_count_cache()\r
-\r
-    def describe(self, viewer=None):\r
-        return self.describe_vote(_("voted up"), viewer)\r
-\r
-class VoteDownAction(VoteAction):\r
-    def repute_users(self):\r
-        self.repute(self.node.author, -int(settings.REP_LOST_BY_DOWNVOTED))\r
-        self.repute(self.user, -int(settings.REP_LOST_BY_DOWNVOTING))\r
-\r
-    def process_action(self):\r
-        self.process_vote_action(-1)\r
-        self.user.reset_vote_down_count_cache()\r
-\r
-    def cancel_action(self):\r
-        super(VoteDownAction, self).cancel_action()\r
-        self.user.reset_vote_down_count_cache()\r
-\r
-    def describe(self, viewer=None):\r
-        return self.describe_vote(_("voted down"), viewer)\r
-\r
-\r
-class VoteUpCommentAction(VoteUpAction):\r
-    def repute_users(self):\r
-        pass\r
-\r
-    def process_action(self):\r
-        self.process_vote_action(1)\r
-\r
-    def cancel_action(self):\r
-        super(VoteUpAction, self).cancel_action()\r
-\r
-    def describe(self, viewer=None):\r
-        return self.describe_vote(_("liked"), viewer)\r
-\r
-\r
-class FlagAction(ActionProxy):\r
-    def repute_users(self):\r
-        self.repute(self.node.author, -int(settings.REP_LOST_BY_FLAGGED))\r
-\r
-    def process_action(self):\r
-        flag = Flag(user=self.user, node=self.node, action=self, reason=self.extra)\r
-        flag.save()\r
-        self.node.reset_flag_count_cache()\r
-\r
-        if self.node.flag_count >= int(settings.FLAG_COUNT_TO_HIDE_POST):\r
-            self.repute(self.node.author, -int(settings.REP_LOST_BY_FLAGGED_3_TIMES))\r
-\r
-        if self.node.flag_count >= int(settings.FLAG_COUNT_TO_DELETE_POST):\r
-            self.repute(self.node.author, -int(settings.REP_LOST_BY_FLAGGED_5_TIMES))\r
-            if not self.node.nis.deleted:\r
-                DeleteAction(node=self.node, user=self.user, extra="BYFLAGGED").save()\r
-\r
-    def cancel_action(self):\r
-        self.flag.delete()\r
-        self.node.reset_flag_count_cache()\r
-\r
-    @classmethod\r
-    def get_for(cls, user, node):\r
-        try:\r
-            flag = Flag.objects.get(user=user, node=node)\r
-            return flag.reason or _("No reason given")\r
-        except:\r
-            return None\r
-\r
-    def describe(self, viewer=None):\r
-        return _("%(user)s flagged %(post_desc)s: %(reason)s") % {\r
-            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),\r
-            'post_desc': self.describe_node(viewer, self.node), 'reason': self.extra\r
-        }\r
-\r
-\r
-class AcceptAnswerAction(ActionProxy):\r
-    def repute_users(self):\r
-        if (self.user == self.node.parent.author) and (not self.user == self.node.author):\r
-            self.repute(self.user, int(settings.REP_GAIN_BY_ACCEPTING))\r
-\r
-        if self.user != self.node.author:\r
-            self.repute(self.node.author, int(settings.REP_GAIN_BY_ACCEPTED))\r
-\r
-    def process_action(self):\r
-        self.node.marked = True\r
-        self.node.nstate.accepted = self\r
-        self.node.save()\r
-        self.node.question.reset_accepted_count_cache()\r
-\r
-    def cancel_action(self):\r
-        self.node.marked = False\r
-        self.node.nstate.accepted = None\r
-        self.node.save()\r
-        self.node.question.reset_accepted_count_cache()\r
-\r
-    def describe(self, viewer=None):\r
-        answer = self.node\r
-        question = answer.parent\r
-\r
-        if self.user == question.author:\r
-            asker = (self.user == viewer) and _("your") or _("his")\r
-        else:\r
-            asker = self.hyperlink(question.author.get_profile_url(), question.author.username)\r
-\r
-        return _("%(user)s accepted %(answerer)s answer on %(asker)s question %(question)s") % {\r
-            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),\r
-            'answerer': self.hyperlink(answer.author.get_profile_url(), self.friendly_ownername(viewer, answer.author)),\r
-            'asker': asker,\r
-            'question': self.hyperlink(question.get_absolute_url(), question.title)\r
-        }\r
-\r
-\r
-class FavoriteAction(ActionProxy):\r
-    def process_action(self):\r
-        self.node.reset_favorite_count_cache()\r
-\r
-    def cancel_action(self):\r
-        self.process_action()\r
-\r
-    def describe(self, viewer=None):\r
-        return _("%(user)s marked %(post_desc)s as favorite") % {\r
-            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),\r
-            'post_desc': self.describe_node(viewer, self.node),\r
-        }\r
-\r
-\r
-class DeleteAction(ActionProxy):\r
-    def process_action(self):\r
-        self.node.mark_deleted(self)\r
-        \r
-        if self.node.node_type == "answer":\r
-            self.node.question.reset_answer_count_cache()\r
-\r
-    def cancel_action(self):\r
-        self.node.mark_deleted(None)\r
-\r
-        if self.node.node_type == "answer":\r
-            self.node.question.reset_answer_count_cache()\r
-\r
-    def describe(self, viewer=None):\r
-        return _("%(user)s deleted %(post_desc)s") % {\r
-            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),\r
-            'post_desc': self.describe_node(viewer, self.node)\r
-        }\r
-\r
-    def reason(self):\r
-        if self.extra != "BYFLAGGED":\r
-            return self.extra\r
-        else:\r
-            return _("flagged by multiple users: ") + "; ".join([f.extra for f in FlagAction.objects.filter(node=self.node)])\r
-\r
-class UnknownAction(ActionProxy):\r
-    pass\r
-\r
-\r
-class QuestionViewAction(DummyActionProxy):\r
-    def __init__(self, node, user, ip=None):\r
-        self.viewuser = user\r
-        self.node = node\r
-        super(QuestionViewAction, self).__init__(ip)\r
-\r
-    def process_action(self):\r
-        self.node.extra_count = F('extra_count') + 1\r
-        self.node.save()\r
+from django.utils.translation import ugettext as _
+from django.db.models import F
+from forum.models.action import ActionProxy, DummyActionProxy
+from forum.models import Vote, Flag
+from forum import settings
+
+class VoteAction(ActionProxy):
+    def update_node_score(self, inc):
+        self.node.score = F('score') + inc
+        self.node.save()
+
+    def process_vote_action(self, value):
+        self.update_node_score(value)
+        vote = Vote(node=self.node, user=self.user, action=self, value=value)
+        vote.save()
+
+    def cancel_action(self):
+        vote = self.vote
+        self.update_node_score(-vote.value)
+        vote.delete()
+
+    @classmethod
+    def get_for(cls, user, node):
+        try:
+            vote = Vote.objects.get(user=user, node=node)
+            return vote.value
+        except:
+            return None
+
+    @classmethod
+    def get_action_for(cls, user, node):
+        try:
+            vote = Vote.objects.get(user=user, node=node)
+            return vote.action
+        except:
+            return None
+
+    def describe_vote(self, vote_desc, viewer=None):
+        return _("%(user)s %(vote_desc)s %(post_desc)s") % {
+            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
+            'vote_desc': vote_desc, 'post_desc': self.describe_node(viewer, self.node)
+        }
+
+
+class VoteUpAction(VoteAction):
+    def repute_users(self):
+        self.repute(self.node.author, int(settings.REP_GAIN_BY_UPVOTED))
+
+    def process_action(self):
+        self.process_vote_action(1)
+        self.user.reset_vote_up_count_cache()
+
+    def cancel_action(self):
+        super(VoteUpAction, self).cancel_action()
+        self.user.reset_vote_up_count_cache()
+
+    def describe(self, viewer=None):
+        return self.describe_vote(_("voted up"), viewer)
+
+class VoteDownAction(VoteAction):
+    def repute_users(self):
+        self.repute(self.node.author, -int(settings.REP_LOST_BY_DOWNVOTED))
+        self.repute(self.user, -int(settings.REP_LOST_BY_DOWNVOTING))
+
+    def process_action(self):
+        self.process_vote_action(-1)
+        self.user.reset_vote_down_count_cache()
+
+    def cancel_action(self):
+        super(VoteDownAction, self).cancel_action()
+        self.user.reset_vote_down_count_cache()
+
+    def describe(self, viewer=None):
+        return self.describe_vote(_("voted down"), viewer)
+
+
+class VoteUpCommentAction(VoteUpAction):
+    def repute_users(self):
+        pass
+
+    def process_action(self):
+        self.process_vote_action(1)
+
+    def cancel_action(self):
+        super(VoteUpAction, self).cancel_action()
+
+    def describe(self, viewer=None):
+        return self.describe_vote(_("liked"), viewer)
+
+
+class FlagAction(ActionProxy):
+    def repute_users(self):
+        self.repute(self.node.author, -int(settings.REP_LOST_BY_FLAGGED))
+
+    def process_action(self):
+        flag = Flag(user=self.user, node=self.node, action=self, reason=self.extra)
+        flag.save()
+        self.node.reset_flag_count_cache()
+
+        if self.node.flag_count >= int(settings.FLAG_COUNT_TO_HIDE_POST):
+            self.repute(self.node.author, -int(settings.REP_LOST_BY_FLAGGED_3_TIMES))
+
+        if self.node.flag_count >= int(settings.FLAG_COUNT_TO_DELETE_POST):
+            self.repute(self.node.author, -int(settings.REP_LOST_BY_FLAGGED_5_TIMES))
+            if not self.node.nis.deleted:
+                DeleteAction(node=self.node, user=self.user, extra="BYFLAGGED").save()
+
+    def cancel_action(self):
+        self.flag.delete()
+        self.node.reset_flag_count_cache()
+
+    @classmethod
+    def get_for(cls, user, node):
+        try:
+            flag = Flag.objects.get(user=user, node=node)
+            return flag.reason or _("No reason given")
+        except:
+            return None
+
+    def describe(self, viewer=None):
+        return _("%(user)s flagged %(post_desc)s: %(reason)s") % {
+            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
+            'post_desc': self.describe_node(viewer, self.node), 'reason': self.extra
+        }
+
+
+class AcceptAnswerAction(ActionProxy):
+    def repute_users(self):
+        if (self.user == self.node.parent.author) and (not self.user == self.node.author):
+            self.repute(self.user, int(settings.REP_GAIN_BY_ACCEPTING))
+
+        if self.user != self.node.author:
+            self.repute(self.node.author, int(settings.REP_GAIN_BY_ACCEPTED))
+
+    def process_action(self):
+        self.node.marked = True
+        self.node.nstate.accepted = self
+        self.node.save()
+        self.node.question.reset_accepted_count_cache()
+
+    def cancel_action(self):
+        self.node.marked = False
+        self.node.nstate.accepted = None
+        self.node.save()
+        self.node.question.reset_accepted_count_cache()
+
+    def describe(self, viewer=None):
+        answer = self.node
+        question = answer.parent
+
+        if self.user == question.author:
+            asker = (self.user == viewer) and _("your") or _("his")
+        else:
+            asker = self.hyperlink(question.author.get_profile_url(), question.author.username)
+
+        return _("%(user)s accepted %(answerer)s answer on %(asker)s question %(question)s") % {
+            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
+            'answerer': self.hyperlink(answer.author.get_profile_url(), self.friendly_ownername(viewer, answer.author)),
+            'asker': asker,
+            'question': self.hyperlink(question.get_absolute_url(), question.title)
+        }
+
+
+class FavoriteAction(ActionProxy):
+    def process_action(self):
+        self.node.reset_favorite_count_cache()
+
+    def cancel_action(self):
+        self.process_action()
+
+    def describe(self, viewer=None):
+        return _("%(user)s marked %(post_desc)s as favorite") % {
+            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
+            'post_desc': self.describe_node(viewer, self.node),
+        }
+
+
+class DeleteAction(ActionProxy):
+    def process_action(self):
+        self.node.mark_deleted(self)
+        
+        if self.node.node_type == "answer":
+            self.node.question.reset_answer_count_cache()
+
+    def cancel_action(self):
+        self.node.mark_deleted(None)
+
+        if self.node.node_type == "answer":
+            self.node.question.reset_answer_count_cache()
+
+    def describe(self, viewer=None):
+        return _("%(user)s deleted %(post_desc)s") % {
+            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
+            'post_desc': self.describe_node(viewer, self.node)
+        }
+
+    def reason(self):
+        if self.extra != "BYFLAGGED":
+            return self.extra
+        else:
+            return _("flagged by multiple users: ") + "; ".join([f.extra for f in FlagAction.objects.filter(node=self.node)])
+
+class UnknownAction(ActionProxy):
+    pass
+
+
+class QuestionViewAction(DummyActionProxy):
+    def __init__(self, node, user, ip=None):
+        self.viewuser = user
+        self.node = node
+        super(QuestionViewAction, self).__init__(ip)
+
+    def process_action(self):
+        self.node.extra_count = F('extra_count') + 1
+        self.node.save()
index 53699e967d1e91f83673274d9e28502667bdb5d7..79b7531657c1d096abe20e99d326eb9f379651b4 100644 (file)
-from django.utils.html import strip_tags\r
-from django.utils.translation import ugettext as _\r
-from forum.models.action import ActionProxy\r
-from forum.models import Comment, Question, Answer, NodeRevision\r
-import logging\r
-\r
-class NodeEditAction(ActionProxy):\r
-    def create_revision_data(self, initial=False, **data):\r
-        revision_data = dict(summary=data.get('summary', (initial and _('Initial revision') or '')), body=data['text'])\r
-\r
-        if data.get('title', None):\r
-            revision_data['title'] = strip_tags(data['title'].strip())\r
-\r
-        if data.get('tags', None):\r
-            revision_data['tagnames'] = data['tags'].strip()\r
-\r
-        return revision_data\r
-\r
-class AskAction(NodeEditAction):\r
-    verb = _("asked")\r
-\r
-    def process_data(self, **data):\r
-        processed_data = self.create_revision_data(True, **data)\r
-        if 'added_at' in data:\r
-            processed_data['added_at'] = data['added_at']\r
-\r
-        question = Question(author=self.user, **processed_data)\r
-        question.save()\r
-        self.node = question\r
-\r
-    def describe(self, viewer=None):\r
-        return _("%(user)s asked %(question)s") % {\r
-            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),\r
-            'question': self.hyperlink(self.node.get_absolute_url(), self.node.title)\r
-        }\r
-\r
-class AnswerAction(NodeEditAction):\r
-    verb = _("answered")\r
-\r
-    def process_data(self, **data):\r
-        answer = Answer(author=self.user, parent=data['question'], **self.create_revision_data(True, **data))\r
-        answer.save()\r
-        self.node = answer\r
-\r
-    def process_action(self):\r
-        self.node.question.reset_answer_count_cache()\r
-\r
-    def describe(self, viewer=None):\r
-        question = self.node.parent\r
-        return _("%(user)s answered %(asker)s on %(question)s") % {\r
-            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),\r
-            'asker': self.hyperlink(question.author.get_profile_url(), self.friendly_username(viewer, question.author)),\r
-            'question': self.hyperlink(self.node.get_absolute_url(), question.title)\r
-        }\r
-\r
-class CommentAction(ActionProxy):\r
-    verb = _("commented")\r
-\r
-    def process_data(self, text='', parent=None):\r
-        comment = Comment(author=self.user, parent=parent, body=text)\r
-        comment.save()\r
-        self.node = comment\r
-\r
-    def describe(self, viewer=None):\r
-        return _("%(user)s commented on %(post_desc)s") % {\r
-            'user': self.hyperlink(self.node.author.get_profile_url(), self.friendly_username(viewer, self.node.author)),\r
-            'post_desc': self.describe_node(viewer, self.node.parent)\r
-        }\r
-\r
-class ReviseAction(NodeEditAction):\r
-    verb = _("edited")\r
-\r
-    def process_data(self, **data):\r
-        revision_data = self.create_revision_data(**data)\r
-        revision = self.node.create_revision(self.user, **revision_data)\r
-        self.extra = revision.revision\r
-\r
-    def process_action(self):\r
-        self.node.last_edited = self\r
-        self.node.save()\r
-\r
-    def describe(self, viewer=None):\r
-        return _("%(user)s edited %(post_desc)s") % {\r
-            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),\r
-            'post_desc': self.describe_node(viewer, self.node)\r
-        }\r
-\r
-    def get_absolute_url(self):\r
-        return self.node.get_revisions_url()\r
-\r
-class RetagAction(ActionProxy):\r
-    verb = _("retagged")\r
-\r
-    def process_data(self, tagnames=''):\r
-        active = self.node.active_revision\r
-        revision_data = dict(summary=_('Retag'), title=active.title, tagnames=strip_tags(tagnames.strip()), body=active.body)\r
-        revision = self.node.create_revision(self.user, **revision_data)\r
-        self.extra = revision.revision\r
-\r
-    def process_action(self):\r
-        self.node.last_edited = self\r
-        self.node.save()\r
-\r
-    def describe(self, viewer=None):\r
-        return _("%(user)s retagged %(post_desc)s") % {\r
-            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),\r
-            'post_desc': self.describe_node(viewer, self.node)\r
-        }\r
-\r
-    def get_absolute_url(self):\r
-        return self.node.get_revisions_url()\r
-\r
-class RollbackAction(ActionProxy):\r
-    verb = _("reverted")\r
-\r
-    def process_data(self, activate=None):\r
-        previous = self.node.active_revision\r
-        self.node.activate_revision(self.user, activate)\r
-        self.extra = "%d:%d" % (previous.revision, activate.revision)\r
-\r
-    def process_action(self):\r
-        self.node.last_edited = self\r
-        self.node.save()\r
-\r
-    def describe(self, viewer=None):\r
-        revisions = [NodeRevision.objects.get(node=self.node, revision=int(n)) for n in self.extra.split(':')]\r
-\r
-        return _("%(user)s reverted %(post_desc)s from revision %(initial)d (%(initial_sum)s) to revision %(final)d (%(final_sum)s)") % {\r
-            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),\r
-            'post_desc': self.describe_node(viewer, self.node),\r
-            'initial': revisions[0].revision, 'initial_sum': revisions[0].summary,\r
-            'final': revisions[1].revision, 'final_sum': revisions[1].summary,\r
-        }\r
-\r
-    def get_absolute_url(self):\r
-        return self.node.get_revisions_url()\r
-\r
-class CloseAction(ActionProxy):\r
-    verb = _("closed")\r
-\r
-    def process_action(self):\r
-        self.node.marked = True\r
-        self.node.nstate.closed = self\r
-        self.node.last_edited = self\r
-        self.node.update_last_activity(self.user, save=True)\r
-\r
-    def cancel_action(self):\r
-        self.node.marked = False\r
-        self.node.nstate.closed = None\r
-        self.node.update_last_activity(self.user, save=True)\r
-\r
-    def describe(self, viewer=None):\r
-        return _("%(user)s closed %(post_desc)s: %(reason)s") % {\r
-            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),\r
-            'post_desc': self.describe_node(viewer, self.node),\r
-            'reason': self.extra\r
-        }\r
-\r
-class AnswerToCommentAction(ActionProxy):\r
-    verb = _("converted")\r
-\r
-    def process_data(self, new_parent=None):\r
-        self.node.parent = new_parent\r
-        self.node.node_type = "comment"\r
-\r
-        for comment in self.node.comments.all():\r
-            comment.parent = new_parent\r
-            comment.save()\r
-\r
-        self.node.last_edited = self\r
-        self.node.update_last_activity(self.user, save=True)\r
-        try:\r
-            self.node.abs_parent.reset_answer_count_cache()\r
-        except AttributeError:\r
-            pass\r
-\r
-    def describe(self, viewer=None):\r
-        return _("%(user)s converted an answer to %(question)s into a comment") % {\r
-            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),\r
-            'question': self.describe_node(viewer, self.node.abs_parent),\r
-        }\r
-\r
-class CommentToAnswerAction(ActionProxy):\r
-    verb = _("converted")\r
-\r
-    def process_data(self, question):\r
-        self.node.parent = question\r
-        self.node.node_type = "answer"\r
-        self.node.last_edited = self\r
-        self.node.update_last_activity(self.user, save=True)\r
-\r
-        # Now updated the cached data\r
-        question.reset_answer_count_cache()\r
-\r
-    def describe(self, viewer=None):\r
-        return _("%(user)s converted comment on %(question)s into an answer") % {\r
-            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),\r
-            'question': self.describe_node(viewer, self.node.abs_parent),\r
-        }\r
-\r
-class AnswerToQuestionAction(NodeEditAction):\r
-    verb = _("converted to question")\r
-\r
-    def process_data(self,  **data):\r
-        revision_data = self.create_revision_data(**data)\r
-        revision = self.node.create_revision(self.user, **revision_data)\r
-\r
-        original_question = self.node.question\r
-\r
-        self.extra = {\r
-            'covert_revision': revision.revision,\r
-            'original_question': original_question\r
-        }\r
-\r
-        self.node.node_type = "question"\r
-        self.node.parent = None\r
-        self.node.abs_parent = None\r
-\r
-        original_question.reset_answer_count_cache()\r
-\r
-    def process_action(self):\r
-        self.node.last_edited = self\r
-        self.node.save()\r
-\r
-\r
-    def describe(self, viewer=None):\r
-        return _("%(user)s converted an answer to %(question)s into a separate question") % {\r
-            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),\r
-            'question': self.describe_node(viewer, self.node.abs_parent),\r
-        }\r
-\r
-class WikifyAction(ActionProxy):\r
-    verb = _("wikified")\r
-\r
-    def process_action(self):\r
-        self.node.nstate.wiki = self\r
-        self.node.last_edited = self\r
-        self.node.update_last_activity(self.user, save=True)\r
-\r
-    def cancel_action(self):\r
-        self.node.nstate.wiki = None\r
-        self.node.update_last_activity(self.user, save=True)\r
-\r
-    def describe(self, viewer=None):\r
-        return _("%(user)s marked %(node)s as community wiki.") % {\r
-            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),\r
-            'node': self.describe_node(viewer, self.node),\r
-        }\r
-\r
+from django.utils.html import strip_tags
+from django.utils.translation import ugettext as _
+from forum.models.action import ActionProxy
+from forum.models import Comment, Question, Answer, NodeRevision
+import logging
+
+class NodeEditAction(ActionProxy):
+    def create_revision_data(self, initial=False, **data):
+        revision_data = dict(summary=data.get('summary', (initial and _('Initial revision') or '')), body=data['text'])
+
+        if data.get('title', None):
+            revision_data['title'] = strip_tags(data['title'].strip())
+
+        if data.get('tags', None):
+            revision_data['tagnames'] = data['tags'].strip()
+
+        return revision_data
+
+class AskAction(NodeEditAction):
+    verb = _("asked")
+
+    def process_data(self, **data):
+        processed_data = self.create_revision_data(True, **data)
+        if 'added_at' in data:
+            processed_data['added_at'] = data['added_at']
+
+        question = Question(author=self.user, **processed_data)
+        question.save()
+        self.node = question
+
+    def describe(self, viewer=None):
+        return _("%(user)s asked %(question)s") % {
+            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
+            'question': self.hyperlink(self.node.get_absolute_url(), self.node.title)
+        }
+
+class AnswerAction(NodeEditAction):
+    verb = _("answered")
+
+    def process_data(self, **data):
+        answer = Answer(author=self.user, parent=data['question'], **self.create_revision_data(True, **data))
+        answer.save()
+        self.node = answer
+
+    def process_action(self):
+        self.node.question.reset_answer_count_cache()
+
+    def describe(self, viewer=None):
+        question = self.node.parent
+        return _("%(user)s answered %(asker)s on %(question)s") % {
+            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
+            'asker': self.hyperlink(question.author.get_profile_url(), self.friendly_username(viewer, question.author)),
+            'question': self.hyperlink(self.node.get_absolute_url(), question.title)
+        }
+
+class CommentAction(ActionProxy):
+    verb = _("commented")
+
+    def process_data(self, text='', parent=None):
+        comment = Comment(author=self.user, parent=parent, body=text)
+        comment.save()
+        self.node = comment
+
+    def describe(self, viewer=None):
+        return _("%(user)s commented on %(post_desc)s") % {
+            'user': self.hyperlink(self.node.author.get_profile_url(), self.friendly_username(viewer, self.node.author)),
+            'post_desc': self.describe_node(viewer, self.node.parent)
+        }
+
+class ReviseAction(NodeEditAction):
+    verb = _("edited")
+
+    def process_data(self, **data):
+        revision_data = self.create_revision_data(**data)
+        revision = self.node.create_revision(self.user, **revision_data)
+        self.extra = revision.revision
+
+    def process_action(self):
+        self.node.last_edited = self
+        self.node.save()
+
+    def describe(self, viewer=None):
+        return _("%(user)s edited %(post_desc)s") % {
+            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
+            'post_desc': self.describe_node(viewer, self.node)
+        }
+
+    def get_absolute_url(self):
+        return self.node.get_revisions_url()
+
+class RetagAction(ActionProxy):
+    verb = _("retagged")
+
+    def process_data(self, tagnames=''):
+        active = self.node.active_revision
+        revision_data = dict(summary=_('Retag'), title=active.title, tagnames=strip_tags(tagnames.strip()), body=active.body)
+        revision = self.node.create_revision(self.user, **revision_data)
+        self.extra = revision.revision
+
+    def process_action(self):
+        self.node.last_edited = self
+        self.node.save()
+
+    def describe(self, viewer=None):
+        return _("%(user)s retagged %(post_desc)s") % {
+            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
+            'post_desc': self.describe_node(viewer, self.node)
+        }
+
+    def get_absolute_url(self):
+        return self.node.get_revisions_url()
+
+class RollbackAction(ActionProxy):
+    verb = _("reverted")
+
+    def process_data(self, activate=None):
+        previous = self.node.active_revision
+        self.node.activate_revision(self.user, activate)
+        self.extra = "%d:%d" % (previous.revision, activate.revision)
+
+    def process_action(self):
+        self.node.last_edited = self
+        self.node.save()
+
+    def describe(self, viewer=None):
+        revisions = [NodeRevision.objects.get(node=self.node, revision=int(n)) for n in self.extra.split(':')]
+
+        return _("%(user)s reverted %(post_desc)s from revision %(initial)d (%(initial_sum)s) to revision %(final)d (%(final_sum)s)") % {
+            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
+            'post_desc': self.describe_node(viewer, self.node),
+            'initial': revisions[0].revision, 'initial_sum': revisions[0].summary,
+            'final': revisions[1].revision, 'final_sum': revisions[1].summary,
+        }
+
+    def get_absolute_url(self):
+        return self.node.get_revisions_url()
+
+class CloseAction(ActionProxy):
+    verb = _("closed")
+
+    def process_action(self):
+        self.node.marked = True
+        self.node.nstate.closed = self
+        self.node.last_edited = self
+        self.node.update_last_activity(self.user, save=True)
+
+    def cancel_action(self):
+        self.node.marked = False
+        self.node.nstate.closed = None
+        self.node.update_last_activity(self.user, save=True)
+
+    def describe(self, viewer=None):
+        return _("%(user)s closed %(post_desc)s: %(reason)s") % {
+            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
+            'post_desc': self.describe_node(viewer, self.node),
+            'reason': self.extra
+        }
+
+class AnswerToCommentAction(ActionProxy):
+    verb = _("converted")
+
+    def process_data(self, new_parent=None):
+        self.node.parent = new_parent
+        self.node.node_type = "comment"
+
+        for comment in self.node.comments.all():
+            comment.parent = new_parent
+            comment.save()
+
+        self.node.last_edited = self
+        self.node.update_last_activity(self.user, save=True)
+        try:
+            self.node.abs_parent.reset_answer_count_cache()
+        except AttributeError:
+            pass
+
+    def describe(self, viewer=None):
+        return _("%(user)s converted an answer to %(question)s into a comment") % {
+            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
+            'question': self.describe_node(viewer, self.node.abs_parent),
+        }
+
+class CommentToAnswerAction(ActionProxy):
+    verb = _("converted")
+
+    def process_data(self, question):
+        self.node.parent = question
+        self.node.node_type = "answer"
+        self.node.last_edited = self
+        self.node.update_last_activity(self.user, save=True)
+
+        # Now updated the cached data
+        question.reset_answer_count_cache()
+
+    def describe(self, viewer=None):
+        return _("%(user)s converted comment on %(question)s into an answer") % {
+            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
+            'question': self.describe_node(viewer, self.node.abs_parent),
+        }
+
+class AnswerToQuestionAction(NodeEditAction):
+    verb = _("converted to question")
+
+    def process_data(self,  **data):
+        revision_data = self.create_revision_data(**data)
+        revision = self.node.create_revision(self.user, **revision_data)
+
+        original_question = self.node.question
+
+        self.extra = {
+            'covert_revision': revision.revision,
+            'original_question': original_question
+        }
+
+        self.node.node_type = "question"
+        self.node.parent = None
+        self.node.abs_parent = None
+
+        original_question.reset_answer_count_cache()
+
+    def process_action(self):
+        self.node.last_edited = self
+        self.node.save()
+
+
+    def describe(self, viewer=None):
+        return _("%(user)s converted an answer to %(question)s into a separate question") % {
+            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
+            'question': self.describe_node(viewer, self.node.abs_parent),
+        }
+
+class WikifyAction(ActionProxy):
+    verb = _("wikified")
+
+    def process_action(self):
+        self.node.nstate.wiki = self
+        self.node.last_edited = self
+        self.node.update_last_activity(self.user, save=True)
+
+    def cancel_action(self):
+        self.node.nstate.wiki = None
+        self.node.update_last_activity(self.user, save=True)
+
+    def describe(self, viewer=None):
+        return _("%(user)s marked %(node)s as community wiki.") % {
+            'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
+            'node': self.describe_node(viewer, self.node),
+        }
+
index 4969ad2a46cff32cd6396bb0eef004a484cd7e25..c8a5ff14d7f9286e62c3fa37cab74965a93f0398 100644 (file)
-\r
-PG_MIGRATION_QUERY = """\r
-SELECT id AS user_ptr_id, is_approved, email_isvalid, email_key, reputation, gravatar, gold, silver, bronze, questions_per_page, last_seen, real_name, website, location, date_of_birth, about, hide_ignored_questions, tag_filter_setting INTO forum_user FROM auth_user;\r
-\r
-ALTER TABLE forum_user\r
-  ADD CONSTRAINT forum_user_pkey PRIMARY KEY(user_ptr_id);\r
-\r
-ALTER TABLE forum_user\r
-  ADD CONSTRAINT forum_user_user_ptr_id_fkey FOREIGN KEY (user_ptr_id)\r
-      REFERENCES auth_user (id) MATCH SIMPLE\r
-      ON UPDATE NO ACTION ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE forum_user\r
-  ADD CONSTRAINT forum_user_reputation_check CHECK (reputation >= 0);\r
-\r
-ALTER TABLE auth_user DROP COLUMN is_approved;\r
-ALTER TABLE auth_user DROP COLUMN email_isvalid;\r
-ALTER TABLE auth_user DROP COLUMN email_key;\r
-ALTER TABLE auth_user DROP COLUMN reputation;\r
-ALTER TABLE auth_user DROP COLUMN gravatar;\r
-ALTER TABLE auth_user DROP COLUMN gold;\r
-ALTER TABLE auth_user DROP COLUMN silver;\r
-ALTER TABLE auth_user DROP COLUMN bronze;\r
-ALTER TABLE auth_user DROP COLUMN questions_per_page;\r
-ALTER TABLE auth_user DROP COLUMN last_seen;\r
-ALTER TABLE auth_user DROP COLUMN real_name;\r
-ALTER TABLE auth_user DROP COLUMN website;\r
-ALTER TABLE auth_user DROP COLUMN "location";\r
-ALTER TABLE auth_user DROP COLUMN date_of_birth;\r
-ALTER TABLE auth_user DROP COLUMN about;\r
-ALTER TABLE auth_user DROP COLUMN hide_ignored_questions;\r
-ALTER TABLE auth_user DROP COLUMN tag_filter_setting;\r
-\r
-"""\r
-\r
-PG_FKEYS_QUERY = """\r
-\r
-ALTER TABLE "public"."activity"\r
-DROP CONSTRAINT "activity_user_id_fkey",\r
-ADD CONSTRAINT "activity_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."answer"\r
-DROP CONSTRAINT "answer_author_id_fkey",\r
-ADD CONSTRAINT "answer_author_id_fkey" FOREIGN KEY ("author_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,\r
-DROP CONSTRAINT "answer_deleted_by_id_fkey",\r
-ADD CONSTRAINT "answer_deleted_by_id_fkey" FOREIGN KEY ("deleted_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,\r
-DROP CONSTRAINT "answer_last_edited_by_id_fkey",\r
-ADD CONSTRAINT "answer_last_edited_by_id_fkey" FOREIGN KEY ("last_edited_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,\r
-DROP CONSTRAINT "answer_locked_by_id_fkey",\r
-ADD CONSTRAINT "answer_locked_by_id_fkey" FOREIGN KEY ("locked_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."answer_revision"\r
-DROP CONSTRAINT "answer_revision_author_id_fkey",\r
-ADD CONSTRAINT "answer_revision_author_id_fkey" FOREIGN KEY ("author_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."award"\r
-DROP CONSTRAINT "award_user_id_fkey",\r
-ADD CONSTRAINT "award_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."comment"\r
-DROP CONSTRAINT "comment_user_id_fkey",\r
-ADD CONSTRAINT "comment_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."favorite_question"\r
-DROP CONSTRAINT "favorite_question_user_id_fkey",\r
-ADD CONSTRAINT "favorite_question_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."flagged_item"\r
-DROP CONSTRAINT "flagged_item_user_id_fkey",\r
-ADD CONSTRAINT "flagged_item_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."forum_anonymousanswer"\r
-DROP CONSTRAINT "forum_anonymousanswer_author_id_fkey",\r
-ADD CONSTRAINT "forum_anonymousanswer_author_id_fkey" FOREIGN KEY ("author_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."forum_anonymousquestion"\r
-DROP CONSTRAINT "forum_anonymousquestion_author_id_fkey",\r
-ADD CONSTRAINT "forum_anonymousquestion_author_id_fkey" FOREIGN KEY ("author_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."forum_authkeyuserassociation"\r
-DROP CONSTRAINT "forum_authkeyuserassociation_user_id_fkey",\r
-ADD CONSTRAINT "forum_authkeyuserassociation_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."forum_markedtag"\r
-DROP CONSTRAINT "forum_markedtag_user_id_fkey",\r
-ADD CONSTRAINT "forum_markedtag_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."forum_questionsubscription"\r
-DROP CONSTRAINT "forum_questionsubscription_user_id_fkey",\r
-ADD CONSTRAINT "forum_questionsubscription_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."forum_subscriptionsettings"\r
-DROP CONSTRAINT "forum_subscriptionsettings_user_id_fkey",\r
-ADD CONSTRAINT "forum_subscriptionsettings_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."forum_validationhash"\r
-DROP CONSTRAINT "forum_validationhash_user_id_fkey",\r
-ADD CONSTRAINT "forum_validationhash_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."question"\r
-DROP CONSTRAINT "question_author_id_fkey",\r
-ADD CONSTRAINT "question_author_id_fkey" FOREIGN KEY ("author_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,\r
-DROP CONSTRAINT "question_closed_by_id_fkey",\r
-ADD CONSTRAINT "question_closed_by_id_fkey" FOREIGN KEY ("closed_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,\r
-DROP CONSTRAINT "question_deleted_by_id_fkey",\r
-ADD CONSTRAINT "question_deleted_by_id_fkey" FOREIGN KEY ("deleted_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,\r
-DROP CONSTRAINT "question_last_activity_by_id_fkey",\r
-ADD CONSTRAINT "question_last_activity_by_id_fkey" FOREIGN KEY ("last_activity_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,\r
-DROP CONSTRAINT "question_last_edited_by_id_fkey",\r
-ADD CONSTRAINT "question_last_edited_by_id_fkey" FOREIGN KEY ("last_edited_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,\r
-DROP CONSTRAINT "question_locked_by_id_fkey",\r
-ADD CONSTRAINT "question_locked_by_id_fkey" FOREIGN KEY ("locked_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."question_followed_by"\r
-DROP CONSTRAINT "question_followed_by_user_id_fkey",\r
-ADD CONSTRAINT "question_followed_by_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."question_revision"\r
-DROP CONSTRAINT "question_revision_author_id_fkey",\r
-ADD CONSTRAINT "question_revision_author_id_fkey" FOREIGN KEY ("author_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."repute"\r
-DROP CONSTRAINT "repute_user_id_fkey",\r
-ADD CONSTRAINT "repute_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."tag"\r
-DROP CONSTRAINT "tag_created_by_id_fkey",\r
-ADD CONSTRAINT "tag_created_by_id_fkey" FOREIGN KEY ("created_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,\r
-DROP CONSTRAINT "tag_deleted_by_id_fkey",\r
-ADD CONSTRAINT "tag_deleted_by_id_fkey" FOREIGN KEY ("deleted_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-ALTER TABLE "public"."vote"\r
-DROP CONSTRAINT "vote_user_id_fkey",\r
-ADD CONSTRAINT "vote_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;\r
-\r
-"""\r
-\r
-MYSQL_MIGRATION_QUERY = """\r
-CREATE TABLE `forum_user` (\r
-  `user_ptr_id` int(11) NOT NULL,\r
-  `is_approved` tinyint(1) NOT NULL,\r
-  `email_isvalid` tinyint(1) NOT NULL,\r
-  `email_key` varchar(32) DEFAULT NULL,\r
-  `reputation` int(10) unsigned NOT NULL,\r
-  `gravatar` varchar(32) NOT NULL,\r
-  `gold` smallint(6) NOT NULL,\r
-  `silver` smallint(6) NOT NULL,\r
-  `bronze` smallint(6) NOT NULL,\r
-  `questions_per_page` smallint(6) NOT NULL,\r
-  `last_seen` datetime NOT NULL,\r
-  `real_name` varchar(100) NOT NULL,\r
-  `website` varchar(200) NOT NULL,\r
-  `location` varchar(100) NOT NULL,\r
-  `date_of_birth` date DEFAULT NULL,\r
-  `about` longtext NOT NULL,\r
-  `hide_ignored_questions` tinyint(1) NOT NULL,\r
-  `tag_filter_setting` varchar(16) NOT NULL,\r
-  PRIMARY KEY (`user_ptr_id`),\r
-  CONSTRAINT `user_ptr_id_refs_id_71071d7` FOREIGN KEY (`user_ptr_id`) REFERENCES `auth_user` (`id`)\r
-) ENGINE=InnoDB DEFAULT CHARSET=utf8\r
-SELECT id AS user_ptr_id, is_approved, email_isvalid, email_key, reputation, gravatar, gold, silver, bronze, questions_per_page,\r
-       last_seen, real_name, website, location, date_of_birth, about, hide_ignored_questions, tag_filter_setting FROM auth_user;\r
-\r
-ALTER TABLE `auth_user`\r
-DROP COLUMN `is_approved`,\r
-DROP COLUMN `email_isvalid`,\r
-DROP COLUMN `email_key`,\r
-DROP COLUMN `reputation`,\r
-DROP COLUMN `gravatar`,\r
-DROP COLUMN `gold`,\r
-DROP COLUMN `silver`,\r
-DROP COLUMN `bronze`,\r
-DROP COLUMN `questions_per_page`,\r
-DROP COLUMN `last_seen`,\r
-DROP COLUMN `real_name`,\r
-DROP COLUMN `website`,\r
-DROP COLUMN `location`,\r
-DROP COLUMN `date_of_birth`,\r
-DROP COLUMN `about`,\r
-DROP COLUMN `hide_ignored_questions`,\r
-DROP COLUMN `tag_filter_setting`;\r
-\r
-"""\r
-\r
-MYSQL_FKEYS_QUERY = """\r
-\r
-ALTER TABLE `activity` DROP FOREIGN KEY `user_id_refs_id_47c8583f`;\r
-ALTER TABLE `activity` ADD CONSTRAINT `user_id_refs_user_ptr_id_62ae9785` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `answer` DROP FOREIGN KEY `author_id_refs_id_192b0170`;\r
-ALTER TABLE `answer` ADD CONSTRAINT `author_id_refs_user_ptr_id_9681994` FOREIGN KEY (`author_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-ALTER TABLE `answer` DROP FOREIGN KEY `deleted_by_id_refs_id_192b0170`;\r
-ALTER TABLE `answer` ADD CONSTRAINT `deleted_by_id_refs_user_ptr_id_9681994` FOREIGN KEY (`deleted_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-ALTER TABLE `answer` DROP FOREIGN KEY `last_edited_by_id_refs_id_192b0170`;\r
-ALTER TABLE `answer` ADD CONSTRAINT `last_edited_by_id_refs_user_ptr_id_9681994` FOREIGN KEY (`last_edited_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-ALTER TABLE `answer` DROP FOREIGN KEY `locked_by_id_refs_id_192b0170`;\r
-ALTER TABLE `answer` ADD CONSTRAINT `locked_by_id_refs_user_ptr_id_9681994` FOREIGN KEY (`locked_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `answer_revision` DROP FOREIGN KEY `author_id_refs_id_3ccc055f`;\r
-ALTER TABLE `answer_revision` ADD CONSTRAINT `author_id_refs_user_ptr_id_331f0123` FOREIGN KEY (`author_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `award` DROP FOREIGN KEY `user_id_refs_id_2d83e9b6`;\r
-ALTER TABLE `award` ADD CONSTRAINT `user_id_refs_user_ptr_id_1b2d0192` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `comment` DROP FOREIGN KEY `user_id_refs_id_6be725e8`;\r
-ALTER TABLE `comment` ADD CONSTRAINT `user_id_refs_user_ptr_id_1ac2320c` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `favorite_question` DROP FOREIGN KEY `user_id_refs_id_52853822`;\r
-ALTER TABLE `favorite_question` ADD CONSTRAINT `user_id_refs_user_ptr_id_3f419c1a` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `flagged_item` DROP FOREIGN KEY `user_id_refs_id_35e3c608`;\r
-ALTER TABLE `flagged_item` ADD CONSTRAINT `user_id_refs_user_ptr_id_1ce834d4` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `forum_anonymousanswer` DROP FOREIGN KEY `author_id_refs_id_13fb542e`;\r
-ALTER TABLE `forum_anonymousanswer` ADD CONSTRAINT `author_id_refs_user_ptr_id_6b5b476a` FOREIGN KEY (`author_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `forum_anonymousquestion` DROP FOREIGN KEY `author_id_refs_id_7511a98a`;\r
-ALTER TABLE `forum_anonymousquestion` ADD CONSTRAINT `author_id_refs_user_ptr_id_104edd52` FOREIGN KEY (`author_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `forum_authkeyuserassociation` DROP FOREIGN KEY `user_id_refs_id_2c2a6b01`;\r
-ALTER TABLE `forum_authkeyuserassociation` ADD CONSTRAINT `user_id_refs_user_ptr_id_3f0ec0c3` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `forum_markedtag` DROP FOREIGN KEY `user_id_refs_id_23b833bd`;\r
-ALTER TABLE `forum_markedtag` ADD CONSTRAINT `user_id_refs_user_ptr_id_5a13f081` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `forum_questionsubscription` DROP FOREIGN KEY `user_id_refs_id_18e1489`;\r
-ALTER TABLE `forum_questionsubscription` ADD CONSTRAINT `user_id_refs_user_ptr_id_521b19ad` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `forum_subscriptionsettings` DROP FOREIGN KEY `user_id_refs_id_35edacb4`;\r
-ALTER TABLE `forum_subscriptionsettings` ADD CONSTRAINT `user_id_refs_user_ptr_id_1bc4fc70` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `forum_validationhash` DROP FOREIGN KEY `user_id_refs_id_2c2d214b`;\r
-ALTER TABLE `forum_validationhash` ADD CONSTRAINT `user_id_refs_user_ptr_id_4e5b2d6f` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `question` DROP FOREIGN KEY `author_id_refs_id_56e9d00c`;\r
-ALTER TABLE `question` ADD CONSTRAINT `author_id_refs_user_ptr_id_60d41818` FOREIGN KEY (`author_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-ALTER TABLE `question` DROP FOREIGN KEY `closed_by_id_refs_id_56e9d00c`;\r
-ALTER TABLE `question` ADD CONSTRAINT `closed_by_id_refs_user_ptr_id_60d41818` FOREIGN KEY (`closed_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-ALTER TABLE `question` DROP FOREIGN KEY `deleted_by_id_refs_id_56e9d00c`;\r
-ALTER TABLE `question` ADD CONSTRAINT `deleted_by_id_refs_user_ptr_id_60d41818` FOREIGN KEY (`deleted_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-ALTER TABLE `question` DROP FOREIGN KEY `last_activity_by_id_refs_id_56e9d00c`;\r
-ALTER TABLE `question` ADD CONSTRAINT `last_activity_by_id_refs_user_ptr_id_60d41818` FOREIGN KEY (`last_activity_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-ALTER TABLE `question` DROP FOREIGN KEY `last_edited_by_id_refs_id_56e9d00c`;\r
-ALTER TABLE `question` ADD CONSTRAINT `last_edited_by_id_refs_user_ptr_id_60d41818` FOREIGN KEY (`last_edited_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-ALTER TABLE `question` DROP FOREIGN KEY `locked_by_id_refs_id_56e9d00c`;\r
-ALTER TABLE `question` ADD CONSTRAINT `locked_by_id_refs_user_ptr_id_60d41818` FOREIGN KEY (`locked_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `question_followed_by` DROP FOREIGN KEY `user_id_refs_id_6d30712d`;\r
-ALTER TABLE `question_followed_by` ADD CONSTRAINT `user_id_refs_user_ptr_id_615e65af` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `question_revision` DROP FOREIGN KEY `author_id_refs_id_4f88024f`;\r
-ALTER TABLE `question_revision` ADD CONSTRAINT `author_id_refs_user_ptr_id_42e3d48d` FOREIGN KEY (`author_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `repute` DROP FOREIGN KEY `user_id_refs_id_5a426cd`;\r
-ALTER TABLE `repute` ADD CONSTRAINT `user_id_refs_user_ptr_id_5ea9540f` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `tag` DROP FOREIGN KEY `created_by_id_refs_id_47205d6d`;\r
-ALTER TABLE `tag` ADD CONSTRAINT `created_by_id_refs_user_ptr_id_417f3449` FOREIGN KEY (`created_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-ALTER TABLE `tag` DROP FOREIGN KEY `deleted_by_id_refs_id_47205d6d`;\r
-ALTER TABLE `tag` ADD CONSTRAINT `deleted_by_id_refs_user_ptr_id_417f3449` FOREIGN KEY (`deleted_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-ALTER TABLE `vote` DROP FOREIGN KEY `user_id_refs_id_760a4df0`;\r
-ALTER TABLE `vote` ADD CONSTRAINT `user_id_refs_user_ptr_id_18723e34` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;\r
-\r
-"""\r
-\r
-from django.core.management.base import NoArgsCommand\r
-from django.db import connection, transaction\r
-from django.conf import settings\r
-\r
-class Command(NoArgsCommand):\r
-    def handle_noargs(self, **options):\r
-        if settings.DATABASE_ENGINE in ('postgresql_psycopg2', 'postgresql', ):\r
-            migration_query = PG_MIGRATION_QUERY\r
-            fkeys_query = PG_FKEYS_QUERY\r
-        elif settings.DATABASE_ENGINE == 'mysql':\r
-            migration_query = MYSQL_MIGRATION_QUERY\r
-            fkeys_query = MYSQL_FKEYS_QUERY\r
-        else:\r
-            raise Exception("Database backend not suported by this migration command")\r
-\r
-        cursor = connection.cursor()\r
-        cursor.execute(migration_query)\r
-        cursor.execute(fkeys_query)\r
+
+PG_MIGRATION_QUERY = """
+SELECT id AS user_ptr_id, is_approved, email_isvalid, email_key, reputation, gravatar, gold, silver, bronze, questions_per_page, last_seen, real_name, website, location, date_of_birth, about, hide_ignored_questions, tag_filter_setting INTO forum_user FROM auth_user;
+
+ALTER TABLE forum_user
+  ADD CONSTRAINT forum_user_pkey PRIMARY KEY(user_ptr_id);
+
+ALTER TABLE forum_user
+  ADD CONSTRAINT forum_user_user_ptr_id_fkey FOREIGN KEY (user_ptr_id)
+      REFERENCES auth_user (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE forum_user
+  ADD CONSTRAINT forum_user_reputation_check CHECK (reputation >= 0);
+
+ALTER TABLE auth_user DROP COLUMN is_approved;
+ALTER TABLE auth_user DROP COLUMN email_isvalid;
+ALTER TABLE auth_user DROP COLUMN email_key;
+ALTER TABLE auth_user DROP COLUMN reputation;
+ALTER TABLE auth_user DROP COLUMN gravatar;
+ALTER TABLE auth_user DROP COLUMN gold;
+ALTER TABLE auth_user DROP COLUMN silver;
+ALTER TABLE auth_user DROP COLUMN bronze;
+ALTER TABLE auth_user DROP COLUMN questions_per_page;
+ALTER TABLE auth_user DROP COLUMN last_seen;
+ALTER TABLE auth_user DROP COLUMN real_name;
+ALTER TABLE auth_user DROP COLUMN website;
+ALTER TABLE auth_user DROP COLUMN "location";
+ALTER TABLE auth_user DROP COLUMN date_of_birth;
+ALTER TABLE auth_user DROP COLUMN about;
+ALTER TABLE auth_user DROP COLUMN hide_ignored_questions;
+ALTER TABLE auth_user DROP COLUMN tag_filter_setting;
+
+"""
+
+PG_FKEYS_QUERY = """
+
+ALTER TABLE "public"."activity"
+DROP CONSTRAINT "activity_user_id_fkey",
+ADD CONSTRAINT "activity_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."answer"
+DROP CONSTRAINT "answer_author_id_fkey",
+ADD CONSTRAINT "answer_author_id_fkey" FOREIGN KEY ("author_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,
+DROP CONSTRAINT "answer_deleted_by_id_fkey",
+ADD CONSTRAINT "answer_deleted_by_id_fkey" FOREIGN KEY ("deleted_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,
+DROP CONSTRAINT "answer_last_edited_by_id_fkey",
+ADD CONSTRAINT "answer_last_edited_by_id_fkey" FOREIGN KEY ("last_edited_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,
+DROP CONSTRAINT "answer_locked_by_id_fkey",
+ADD CONSTRAINT "answer_locked_by_id_fkey" FOREIGN KEY ("locked_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."answer_revision"
+DROP CONSTRAINT "answer_revision_author_id_fkey",
+ADD CONSTRAINT "answer_revision_author_id_fkey" FOREIGN KEY ("author_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."award"
+DROP CONSTRAINT "award_user_id_fkey",
+ADD CONSTRAINT "award_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."comment"
+DROP CONSTRAINT "comment_user_id_fkey",
+ADD CONSTRAINT "comment_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."favorite_question"
+DROP CONSTRAINT "favorite_question_user_id_fkey",
+ADD CONSTRAINT "favorite_question_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."flagged_item"
+DROP CONSTRAINT "flagged_item_user_id_fkey",
+ADD CONSTRAINT "flagged_item_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."forum_anonymousanswer"
+DROP CONSTRAINT "forum_anonymousanswer_author_id_fkey",
+ADD CONSTRAINT "forum_anonymousanswer_author_id_fkey" FOREIGN KEY ("author_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."forum_anonymousquestion"
+DROP CONSTRAINT "forum_anonymousquestion_author_id_fkey",
+ADD CONSTRAINT "forum_anonymousquestion_author_id_fkey" FOREIGN KEY ("author_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."forum_authkeyuserassociation"
+DROP CONSTRAINT "forum_authkeyuserassociation_user_id_fkey",
+ADD CONSTRAINT "forum_authkeyuserassociation_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."forum_markedtag"
+DROP CONSTRAINT "forum_markedtag_user_id_fkey",
+ADD CONSTRAINT "forum_markedtag_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."forum_questionsubscription"
+DROP CONSTRAINT "forum_questionsubscription_user_id_fkey",
+ADD CONSTRAINT "forum_questionsubscription_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."forum_subscriptionsettings"
+DROP CONSTRAINT "forum_subscriptionsettings_user_id_fkey",
+ADD CONSTRAINT "forum_subscriptionsettings_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."forum_validationhash"
+DROP CONSTRAINT "forum_validationhash_user_id_fkey",
+ADD CONSTRAINT "forum_validationhash_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."question"
+DROP CONSTRAINT "question_author_id_fkey",
+ADD CONSTRAINT "question_author_id_fkey" FOREIGN KEY ("author_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,
+DROP CONSTRAINT "question_closed_by_id_fkey",
+ADD CONSTRAINT "question_closed_by_id_fkey" FOREIGN KEY ("closed_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,
+DROP CONSTRAINT "question_deleted_by_id_fkey",
+ADD CONSTRAINT "question_deleted_by_id_fkey" FOREIGN KEY ("deleted_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,
+DROP CONSTRAINT "question_last_activity_by_id_fkey",
+ADD CONSTRAINT "question_last_activity_by_id_fkey" FOREIGN KEY ("last_activity_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,
+DROP CONSTRAINT "question_last_edited_by_id_fkey",
+ADD CONSTRAINT "question_last_edited_by_id_fkey" FOREIGN KEY ("last_edited_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,
+DROP CONSTRAINT "question_locked_by_id_fkey",
+ADD CONSTRAINT "question_locked_by_id_fkey" FOREIGN KEY ("locked_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."question_followed_by"
+DROP CONSTRAINT "question_followed_by_user_id_fkey",
+ADD CONSTRAINT "question_followed_by_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."question_revision"
+DROP CONSTRAINT "question_revision_author_id_fkey",
+ADD CONSTRAINT "question_revision_author_id_fkey" FOREIGN KEY ("author_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."repute"
+DROP CONSTRAINT "repute_user_id_fkey",
+ADD CONSTRAINT "repute_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."tag"
+DROP CONSTRAINT "tag_created_by_id_fkey",
+ADD CONSTRAINT "tag_created_by_id_fkey" FOREIGN KEY ("created_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED,
+DROP CONSTRAINT "tag_deleted_by_id_fkey",
+ADD CONSTRAINT "tag_deleted_by_id_fkey" FOREIGN KEY ("deleted_by_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE "public"."vote"
+DROP CONSTRAINT "vote_user_id_fkey",
+ADD CONSTRAINT "vote_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "public"."forum_user" (user_ptr_id) ON DELETE NO ACTION ON UPDATE NO ACTION DEFERRABLE INITIALLY DEFERRED;
+
+"""
+
+MYSQL_MIGRATION_QUERY = """
+CREATE TABLE `forum_user` (
+  `user_ptr_id` int(11) NOT NULL,
+  `is_approved` tinyint(1) NOT NULL,
+  `email_isvalid` tinyint(1) NOT NULL,
+  `email_key` varchar(32) DEFAULT NULL,
+  `reputation` int(10) unsigned NOT NULL,
+  `gravatar` varchar(32) NOT NULL,
+  `gold` smallint(6) NOT NULL,
+  `silver` smallint(6) NOT NULL,
+  `bronze` smallint(6) NOT NULL,
+  `questions_per_page` smallint(6) NOT NULL,
+  `last_seen` datetime NOT NULL,
+  `real_name` varchar(100) NOT NULL,
+  `website` varchar(200) NOT NULL,
+  `location` varchar(100) NOT NULL,
+  `date_of_birth` date DEFAULT NULL,
+  `about` longtext NOT NULL,
+  `hide_ignored_questions` tinyint(1) NOT NULL,
+  `tag_filter_setting` varchar(16) NOT NULL,
+  PRIMARY KEY (`user_ptr_id`),
+  CONSTRAINT `user_ptr_id_refs_id_71071d7` FOREIGN KEY (`user_ptr_id`) REFERENCES `auth_user` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8
+SELECT id AS user_ptr_id, is_approved, email_isvalid, email_key, reputation, gravatar, gold, silver, bronze, questions_per_page,
+       last_seen, real_name, website, location, date_of_birth, about, hide_ignored_questions, tag_filter_setting FROM auth_user;
+
+ALTER TABLE `auth_user`
+DROP COLUMN `is_approved`,
+DROP COLUMN `email_isvalid`,
+DROP COLUMN `email_key`,
+DROP COLUMN `reputation`,
+DROP COLUMN `gravatar`,
+DROP COLUMN `gold`,
+DROP COLUMN `silver`,
+DROP COLUMN `bronze`,
+DROP COLUMN `questions_per_page`,
+DROP COLUMN `last_seen`,
+DROP COLUMN `real_name`,
+DROP COLUMN `website`,
+DROP COLUMN `location`,
+DROP COLUMN `date_of_birth`,
+DROP COLUMN `about`,
+DROP COLUMN `hide_ignored_questions`,
+DROP COLUMN `tag_filter_setting`;
+
+"""
+
+MYSQL_FKEYS_QUERY = """
+
+ALTER TABLE `activity` DROP FOREIGN KEY `user_id_refs_id_47c8583f`;
+ALTER TABLE `activity` ADD CONSTRAINT `user_id_refs_user_ptr_id_62ae9785` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `answer` DROP FOREIGN KEY `author_id_refs_id_192b0170`;
+ALTER TABLE `answer` ADD CONSTRAINT `author_id_refs_user_ptr_id_9681994` FOREIGN KEY (`author_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+ALTER TABLE `answer` DROP FOREIGN KEY `deleted_by_id_refs_id_192b0170`;
+ALTER TABLE `answer` ADD CONSTRAINT `deleted_by_id_refs_user_ptr_id_9681994` FOREIGN KEY (`deleted_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+ALTER TABLE `answer` DROP FOREIGN KEY `last_edited_by_id_refs_id_192b0170`;
+ALTER TABLE `answer` ADD CONSTRAINT `last_edited_by_id_refs_user_ptr_id_9681994` FOREIGN KEY (`last_edited_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+ALTER TABLE `answer` DROP FOREIGN KEY `locked_by_id_refs_id_192b0170`;
+ALTER TABLE `answer` ADD CONSTRAINT `locked_by_id_refs_user_ptr_id_9681994` FOREIGN KEY (`locked_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `answer_revision` DROP FOREIGN KEY `author_id_refs_id_3ccc055f`;
+ALTER TABLE `answer_revision` ADD CONSTRAINT `author_id_refs_user_ptr_id_331f0123` FOREIGN KEY (`author_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `award` DROP FOREIGN KEY `user_id_refs_id_2d83e9b6`;
+ALTER TABLE `award` ADD CONSTRAINT `user_id_refs_user_ptr_id_1b2d0192` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `comment` DROP FOREIGN KEY `user_id_refs_id_6be725e8`;
+ALTER TABLE `comment` ADD CONSTRAINT `user_id_refs_user_ptr_id_1ac2320c` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `favorite_question` DROP FOREIGN KEY `user_id_refs_id_52853822`;
+ALTER TABLE `favorite_question` ADD CONSTRAINT `user_id_refs_user_ptr_id_3f419c1a` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `flagged_item` DROP FOREIGN KEY `user_id_refs_id_35e3c608`;
+ALTER TABLE `flagged_item` ADD CONSTRAINT `user_id_refs_user_ptr_id_1ce834d4` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `forum_anonymousanswer` DROP FOREIGN KEY `author_id_refs_id_13fb542e`;
+ALTER TABLE `forum_anonymousanswer` ADD CONSTRAINT `author_id_refs_user_ptr_id_6b5b476a` FOREIGN KEY (`author_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `forum_anonymousquestion` DROP FOREIGN KEY `author_id_refs_id_7511a98a`;
+ALTER TABLE `forum_anonymousquestion` ADD CONSTRAINT `author_id_refs_user_ptr_id_104edd52` FOREIGN KEY (`author_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `forum_authkeyuserassociation` DROP FOREIGN KEY `user_id_refs_id_2c2a6b01`;
+ALTER TABLE `forum_authkeyuserassociation` ADD CONSTRAINT `user_id_refs_user_ptr_id_3f0ec0c3` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `forum_markedtag` DROP FOREIGN KEY `user_id_refs_id_23b833bd`;
+ALTER TABLE `forum_markedtag` ADD CONSTRAINT `user_id_refs_user_ptr_id_5a13f081` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `forum_questionsubscription` DROP FOREIGN KEY `user_id_refs_id_18e1489`;
+ALTER TABLE `forum_questionsubscription` ADD CONSTRAINT `user_id_refs_user_ptr_id_521b19ad` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `forum_subscriptionsettings` DROP FOREIGN KEY `user_id_refs_id_35edacb4`;
+ALTER TABLE `forum_subscriptionsettings` ADD CONSTRAINT `user_id_refs_user_ptr_id_1bc4fc70` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `forum_validationhash` DROP FOREIGN KEY `user_id_refs_id_2c2d214b`;
+ALTER TABLE `forum_validationhash` ADD CONSTRAINT `user_id_refs_user_ptr_id_4e5b2d6f` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `question` DROP FOREIGN KEY `author_id_refs_id_56e9d00c`;
+ALTER TABLE `question` ADD CONSTRAINT `author_id_refs_user_ptr_id_60d41818` FOREIGN KEY (`author_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+ALTER TABLE `question` DROP FOREIGN KEY `closed_by_id_refs_id_56e9d00c`;
+ALTER TABLE `question` ADD CONSTRAINT `closed_by_id_refs_user_ptr_id_60d41818` FOREIGN KEY (`closed_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+ALTER TABLE `question` DROP FOREIGN KEY `deleted_by_id_refs_id_56e9d00c`;
+ALTER TABLE `question` ADD CONSTRAINT `deleted_by_id_refs_user_ptr_id_60d41818` FOREIGN KEY (`deleted_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+ALTER TABLE `question` DROP FOREIGN KEY `last_activity_by_id_refs_id_56e9d00c`;
+ALTER TABLE `question` ADD CONSTRAINT `last_activity_by_id_refs_user_ptr_id_60d41818` FOREIGN KEY (`last_activity_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+ALTER TABLE `question` DROP FOREIGN KEY `last_edited_by_id_refs_id_56e9d00c`;
+ALTER TABLE `question` ADD CONSTRAINT `last_edited_by_id_refs_user_ptr_id_60d41818` FOREIGN KEY (`last_edited_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+ALTER TABLE `question` DROP FOREIGN KEY `locked_by_id_refs_id_56e9d00c`;
+ALTER TABLE `question` ADD CONSTRAINT `locked_by_id_refs_user_ptr_id_60d41818` FOREIGN KEY (`locked_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `question_followed_by` DROP FOREIGN KEY `user_id_refs_id_6d30712d`;
+ALTER TABLE `question_followed_by` ADD CONSTRAINT `user_id_refs_user_ptr_id_615e65af` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `question_revision` DROP FOREIGN KEY `author_id_refs_id_4f88024f`;
+ALTER TABLE `question_revision` ADD CONSTRAINT `author_id_refs_user_ptr_id_42e3d48d` FOREIGN KEY (`author_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `repute` DROP FOREIGN KEY `user_id_refs_id_5a426cd`;
+ALTER TABLE `repute` ADD CONSTRAINT `user_id_refs_user_ptr_id_5ea9540f` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `tag` DROP FOREIGN KEY `created_by_id_refs_id_47205d6d`;
+ALTER TABLE `tag` ADD CONSTRAINT `created_by_id_refs_user_ptr_id_417f3449` FOREIGN KEY (`created_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+ALTER TABLE `tag` DROP FOREIGN KEY `deleted_by_id_refs_id_47205d6d`;
+ALTER TABLE `tag` ADD CONSTRAINT `deleted_by_id_refs_user_ptr_id_417f3449` FOREIGN KEY (`deleted_by_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+ALTER TABLE `vote` DROP FOREIGN KEY `user_id_refs_id_760a4df0`;
+ALTER TABLE `vote` ADD CONSTRAINT `user_id_refs_user_ptr_id_18723e34` FOREIGN KEY (`user_id`) REFERENCES `forum_user` (`user_ptr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+"""
+
+from django.core.management.base import NoArgsCommand
+from django.db import connection, transaction
+from django.conf import settings
+
+class Command(NoArgsCommand):
+    def handle_noargs(self, **options):
+        if settings.DATABASE_ENGINE in ('postgresql_psycopg2', 'postgresql', ):
+            migration_query = PG_MIGRATION_QUERY
+            fkeys_query = PG_FKEYS_QUERY
+        elif settings.DATABASE_ENGINE == 'mysql':
+            migration_query = MYSQL_MIGRATION_QUERY
+            fkeys_query = MYSQL_FKEYS_QUERY
+        else:
+            raise Exception("Database backend not suported by this migration command")
+
+        cursor = connection.cursor()
+        cursor.execute(migration_query)
+        cursor.execute(fkeys_query)
         transaction.commit_unless_managed()
\ No newline at end of file
index b97c970cd9507a570aa80768f3f7d1e4eb9c89fe..3e0da3e7009804566bde305ed54981e77645b044 100644 (file)
@@ -1,15 +1,15 @@
-from forum.models import User, SubscriptionSettings, QuestionSubscription\r
-from django.core.management.base import NoArgsCommand\r
-\r
-class Command(NoArgsCommand):\r
-    def handle_noargs(self, **options):\r
-        users = User.objects.all()\r
-        for u in users:\r
-            s = SubscriptionSettings(user=u)\r
-            s.save()\r
-\r
-            user_questions = u.questions.all()\r
-\r
-            for q in user_questions:\r
-                sub = QuestionSubscription(user=u, question=q)\r
+from forum.models import User, SubscriptionSettings, QuestionSubscription
+from django.core.management.base import NoArgsCommand
+
+class Command(NoArgsCommand):
+    def handle_noargs(self, **options):
+        users = User.objects.all()
+        for u in users:
+            s = SubscriptionSettings(user=u)
+            s.save()
+
+            user_questions = u.questions.all()
+
+            for q in user_questions:
+                sub = QuestionSubscription(user=u, question=q)
                 sub.save()
\ No newline at end of file
index 6a6dac5449f092a232aae122ce2c16d471587d69..5ac0f00f4f94f27cd544e54afeec48704396627e 100644 (file)
@@ -1,11 +1,11 @@
-import markdown\r
-from django.utils.safestring import mark_safe\r
-from django.utils.html import strip_tags\r
-from forum.utils.html import sanitize_html\r
-\r
-class LimitedSyntaxExtension(markdown.Extension):\r
-    def extendMarkdown(self, md, md_globals):\r
-        del md.inlinePatterns["image_reference"]\r
-\r
-def makeExtension(configs=None) :\r
-    return LimitedSyntaxExtension(configs=configs)\r
+import markdown
+from django.utils.safestring import mark_safe
+from django.utils.html import strip_tags
+from forum.utils.html import sanitize_html
+
+class LimitedSyntaxExtension(markdown.Extension):
+    def extendMarkdown(self, md, md_globals):
+        del md.inlinePatterns["image_reference"]
+
+def makeExtension(configs=None) :
+    return LimitedSyntaxExtension(configs=configs)
index dfe71636fe3388c108fd7f0ff3894eecb2c3fc8b..ca1d15112f577ff51be62630d8ce24412fded98d 100644 (file)
@@ -1,27 +1,27 @@
-from django.contrib.auth.middleware import AuthenticationMiddleware\r
-from django.contrib.auth import logout\r
-from forum.models.user import AnonymousUser\r
-from forum.views.auth import forward_suspended_user\r
-import logging\r
-\r
-class ExtendedUser(AuthenticationMiddleware):\r
-    def process_request(self, request):\r
-        super(ExtendedUser, self).process_request(request)\r
-        if request.user.is_authenticated():\r
-            try:\r
-                request.user = request.user.user\r
-\r
-                if request.user.is_suspended():\r
-                    user = request.user\r
-                    logout(request)\r
-                    return forward_suspended_user(request, user)\r
-\r
-                return None\r
-            except Exception, e:\r
-                import traceback\r
-                logging.error("Unable to convert auth_user %s to forum_user: \n%s" % (\r
-                    request.user.id, traceback.format_exc()\r
-                ))\r
-\r
-        request.user = AnonymousUser()\r
+from django.contrib.auth.middleware import AuthenticationMiddleware
+from django.contrib.auth import logout
+from forum.models.user import AnonymousUser
+from forum.views.auth import forward_suspended_user
+import logging
+
+class ExtendedUser(AuthenticationMiddleware):
+    def process_request(self, request):
+        super(ExtendedUser, self).process_request(request)
+        if request.user.is_authenticated():
+            try:
+                request.user = request.user.user
+
+                if request.user.is_suspended():
+                    user = request.user
+                    logout(request)
+                    return forward_suspended_user(request, user)
+
+                return None
+            except Exception, e:
+                import traceback
+                logging.error("Unable to convert auth_user %s to forum_user: \n%s" % (
+                    request.user.id, traceback.format_exc()
+                ))
+
+        request.user = AnonymousUser()
         return None
\ No newline at end of file
index bbccbf7462017ff8e44699c1fdbb776b18fa7a40..e3b5bc25116569f6122f11b19ced94d5c7dc8280 100644 (file)
@@ -1,18 +1,18 @@
-from forum.settings import MAINTAINANCE_MODE, APP_LOGO, APP_TITLE\r
-\r
-from forum.http_responses import HttpResponseServiceUnavailable\r
-\r
-class RequestUtils(object):\r
-    def process_request(self, request):\r
-        if MAINTAINANCE_MODE.value is not None and isinstance(MAINTAINANCE_MODE.value.get('allow_ips', None), list):\r
-            ip = request.META['REMOTE_ADDR']\r
-\r
-            if not ip in MAINTAINANCE_MODE.value['allow_ips']:\r
-                return HttpResponseServiceUnavailable(MAINTAINANCE_MODE.value.get('message', ''))\r
-\r
-        if request.session.get('redirect_POST_data', None):\r
-            request.POST = request.session.pop('redirect_POST_data')\r
-            request.META['REQUEST_METHOD'] = "POST"\r
-\r
-        self.request = request\r
+from forum.settings import MAINTAINANCE_MODE, APP_LOGO, APP_TITLE
+
+from forum.http_responses import HttpResponseServiceUnavailable
+
+class RequestUtils(object):
+    def process_request(self, request):
+        if MAINTAINANCE_MODE.value is not None and isinstance(MAINTAINANCE_MODE.value.get('allow_ips', None), list):
+            ip = request.META['REMOTE_ADDR']
+
+            if not ip in MAINTAINANCE_MODE.value['allow_ips']:
+                return HttpResponseServiceUnavailable(MAINTAINANCE_MODE.value.get('message', ''))
+
+        if request.session.get('redirect_POST_data', None):
+            request.POST = request.session.pop('redirect_POST_data')
+            request.META['REQUEST_METHOD'] = "POST"
+
+        self.request = request
         return None
\ No newline at end of file
index 5dbd4a267865cea8fc3d5f69ef188ff098c962f9..52811f8bfb30d32367791dd79d6ed636e043826d 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Adding model 'User'\r
-        db.create_table('forum_user', (\r
-            ('website', self.gf('django.db.models.fields.URLField')(max_length=200, blank=True)),\r
-            ('user_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['auth.User'], unique=True, primary_key=True)),\r
-            ('hide_ignored_questions', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('is_approved', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('email_isvalid', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('real_name', self.gf('django.db.models.fields.CharField')(max_length=100, blank=True)),\r
-            ('about', self.gf('django.db.models.fields.TextField')(blank=True)),\r
-            ('silver', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),\r
-            ('date_of_birth', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),\r
-            ('reputation', self.gf('django.db.models.fields.PositiveIntegerField')(default=1)),\r
-            ('gravatar', self.gf('django.db.models.fields.CharField')(max_length=32)),\r
-            ('location', self.gf('django.db.models.fields.CharField')(max_length=100, blank=True)),\r
-            ('tag_filter_setting', self.gf('django.db.models.fields.CharField')(default='ignored', max_length=16)),\r
-            ('gold', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),\r
-            ('last_seen', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('email_key', self.gf('django.db.models.fields.CharField')(max_length=32, null=True)),\r
-            ('bronze', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),\r
-            ('questions_per_page', self.gf('django.db.models.fields.SmallIntegerField')(default=10)),\r
-        ))\r
-        db.send_create_signal('forum', ['User'])\r
-\r
-        # Adding model 'Activity'\r
-        db.create_table(u'activity', (\r
-            ('is_auditted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),\r
-            ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])),\r
-            ('active_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('activity_type', self.gf('django.db.models.fields.SmallIntegerField')()),\r
-        ))\r
-        db.send_create_signal('forum', ['Activity'])\r
-\r
-        # Adding model 'SubscriptionSettings'\r
-        db.create_table('forum_subscriptionsettings', (\r
-            ('questions_asked', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),\r
-            ('questions_viewed', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('notify_comments', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('new_question', self.gf('django.db.models.fields.CharField')(default='d', max_length=1)),\r
-            ('all_questions', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('new_question_watched_tags', self.gf('django.db.models.fields.CharField')(default='i', max_length=1)),\r
-            ('questions_answered', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),\r
-            ('notify_comments_own_post', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),\r
-            ('questions_commented', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('subscribed_questions', self.gf('django.db.models.fields.CharField')(default='i', max_length=1)),\r
-            ('notify_reply_to_comments', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),\r
-            ('member_joins', self.gf('django.db.models.fields.CharField')(default='n', max_length=1)),\r
-            ('user', self.gf('django.db.models.fields.related.OneToOneField')(related_name='subscription_settings', unique=True, to=orm['forum.User'])),\r
-            ('notify_answers', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),\r
-            ('enable_notifications', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),\r
-            ('all_questions_watched_tags', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('notify_accepted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['SubscriptionSettings'])\r
-\r
-        # Adding model 'ValidationHash'\r
-        db.create_table('forum_validationhash', (\r
-            ('hash_code', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)),\r
-            ('seed', self.gf('django.db.models.fields.CharField')(max_length=12)),\r
-            ('expiration', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2010, 4, 7, 10, 36, 23, 812000))),\r
-            ('type', self.gf('django.db.models.fields.CharField')(max_length=12)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),\r
-        ))\r
-        db.send_create_signal('forum', ['ValidationHash'])\r
-\r
-        # Adding unique constraint on 'ValidationHash', fields ['user', 'type']\r
-        db.create_unique('forum_validationhash', ['user_id', 'type'])\r
-\r
-        # Adding model 'AuthKeyUserAssociation'\r
-        db.create_table('forum_authkeyuserassociation', (\r
-            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='auth_keys', to=orm['forum.User'])),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('key', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)),\r
-            ('provider', self.gf('django.db.models.fields.CharField')(max_length=64)),\r
-        ))\r
-        db.send_create_signal('forum', ['AuthKeyUserAssociation'])\r
-\r
-        # Adding model 'Vote'\r
-        db.create_table(u'vote', (\r
-            ('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()),\r
-            ('voted_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='votes', to=orm['forum.User'])),\r
-            ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])),\r
-            ('vote', self.gf('django.db.models.fields.SmallIntegerField')()),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['Vote'])\r
-\r
-        # Adding unique constraint on 'Vote', fields ['content_type', 'object_id', 'user']\r
-        db.create_unique(u'vote', ['content_type_id', 'object_id', 'user_id'])\r
-\r
-        # Adding model 'FlaggedItem'\r
-        db.create_table(u'flagged_item', (\r
-            ('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()),\r
-            ('flagged_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='flaggeditems', to=orm['forum.User'])),\r
-        ))\r
-        db.send_create_signal('forum', ['FlaggedItem'])\r
-\r
-        # Adding unique constraint on 'FlaggedItem', fields ['content_type', 'object_id', 'user']\r
-        db.create_unique(u'flagged_item', ['content_type_id', 'object_id', 'user_id'])\r
-\r
-        # Adding model 'Comment'\r
-        db.create_table(u'comment', (\r
-            ('comment', self.gf('django.db.models.fields.CharField')(max_length=300)),\r
-            ('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()),\r
-            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='comments', to=orm['forum.User'])),\r
-        ))\r
-        db.send_create_signal('forum', ['Comment'])\r
-\r
-        # Adding model 'Tag'\r
-        db.create_table(u'tag', (\r
-            ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)),\r
-            ('deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('created_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='created_tags', to=orm['forum.User'])),\r
-            ('deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='deleted_tags', null=True, to=orm['forum.User'])),\r
-            ('used_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),\r
-            ('deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['Tag'])\r
-\r
-        # Adding model 'MarkedTag'\r
-        db.create_table('forum_markedtag', (\r
-            ('reason', self.gf('django.db.models.fields.CharField')(max_length=16)),\r
-            ('tag', self.gf('django.db.models.fields.related.ForeignKey')(related_name='user_selections', to=orm['forum.Tag'])),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='tag_selections', to=orm['forum.User'])),\r
-        ))\r
-        db.send_create_signal('forum', ['MarkedTag'])\r
-\r
-        # Adding model 'Question'\r
-        db.create_table(u'question', (\r
-            ('wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('vote_up_count', self.gf('django.db.models.fields.IntegerField')(default=0)),\r
-            ('answer_accepted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('offensive_flag_count', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),\r
-            ('closed_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-            ('deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('last_activity_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='last_active_in_questions', to=orm['forum.User'])),\r
-            ('view_count', self.gf('django.db.models.fields.IntegerField')(default=0)),\r
-            ('locked_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-            ('score', self.gf('django.db.models.fields.IntegerField')(default=0)),\r
-            ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='questions', to=orm['forum.User'])),\r
-            ('comment_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),\r
-            ('html', self.gf('django.db.models.fields.TextField')()),\r
-            ('vote_down_count', self.gf('django.db.models.fields.IntegerField')(default=0)),\r
-            ('closed', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('last_edited_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='last_edited_questions', null=True, to=orm['forum.User'])),\r
-            ('favourite_count', self.gf('django.db.models.fields.IntegerField')(default=0)),\r
-            ('deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('summary', self.gf('django.db.models.fields.CharField')(max_length=180)),\r
-            ('answer_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),\r
-            ('last_activity_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('closed_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='closed_questions', null=True, to=orm['forum.User'])),\r
-            ('close_reason', self.gf('django.db.models.fields.SmallIntegerField')(null=True, blank=True)),\r
-            ('locked', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('tagnames', self.gf('django.db.models.fields.CharField')(max_length=125)),\r
-            ('locked_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='locked_questions', null=True, to=orm['forum.User'])),\r
-            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='deleted_questions', null=True, to=orm['forum.User'])),\r
-            ('wikified_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-            ('title', self.gf('django.db.models.fields.CharField')(max_length=300)),\r
-            ('last_edited_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['Question'])\r
-\r
-        # Adding M2M table for field followed_by on 'Question'\r
-        db.create_table(u'question_followed_by', (\r
-            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),\r
-            ('question', models.ForeignKey(orm['forum.question'], null=False)),\r
-            ('user', models.ForeignKey(orm['forum.user'], null=False))\r
-        ))\r
-        db.create_unique(u'question_followed_by', ['question_id', 'user_id'])\r
-\r
-        # Adding M2M table for field tags on 'Question'\r
-        db.create_table(u'question_tags', (\r
-            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),\r
-            ('question', models.ForeignKey(orm['forum.question'], null=False)),\r
-            ('tag', models.ForeignKey(orm['forum.tag'], null=False))\r
-        ))\r
-        db.create_unique(u'question_tags', ['question_id', 'tag_id'])\r
-\r
-        # Adding model 'QuestionSubscription'\r
-        db.create_table('forum_questionsubscription', (\r
-            ('last_view', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2010, 4, 6, 10, 36, 23, 725000))),\r
-            ('auto_subscription', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),\r
-            ('question', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Question'])),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),\r
-        ))\r
-        db.send_create_signal('forum', ['QuestionSubscription'])\r
-\r
-        # Adding model 'FavoriteQuestion'\r
-        db.create_table(u'favorite_question', (\r
-            ('question', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Question'])),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='user_favorite_questions', to=orm['forum.User'])),\r
-        ))\r
-        db.send_create_signal('forum', ['FavoriteQuestion'])\r
-\r
-        # Adding model 'QuestionRevision'\r
-        db.create_table(u'question_revision', (\r
-            ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='questionrevisions', to=orm['forum.User'])),\r
-            ('tagnames', self.gf('django.db.models.fields.CharField')(max_length=125)),\r
-            ('text', self.gf('django.db.models.fields.TextField')()),\r
-            ('title', self.gf('django.db.models.fields.CharField')(max_length=300)),\r
-            ('question', self.gf('django.db.models.fields.related.ForeignKey')(related_name='revisions', to=orm['forum.Question'])),\r
-            ('revised_at', self.gf('django.db.models.fields.DateTimeField')()),\r
-            ('summary', self.gf('django.db.models.fields.CharField')(max_length=300, blank=True)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('revision', self.gf('django.db.models.fields.PositiveIntegerField')()),\r
-        ))\r
-        db.send_create_signal('forum', ['QuestionRevision'])\r
-\r
-        # Adding model 'AnonymousQuestion'\r
-        db.create_table('forum_anonymousquestion', (\r
-            ('wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('ip_addr', self.gf('django.db.models.fields.IPAddressField')(max_length=15)),\r
-            ('author', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'], null=True)),\r
-            ('tagnames', self.gf('django.db.models.fields.CharField')(max_length=125)),\r
-            ('text', self.gf('django.db.models.fields.TextField')()),\r
-            ('title', self.gf('django.db.models.fields.CharField')(max_length=300)),\r
-            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('summary', self.gf('django.db.models.fields.CharField')(max_length=180)),\r
-            ('session_key', self.gf('django.db.models.fields.CharField')(max_length=40)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['AnonymousQuestion'])\r
-\r
-        # Adding model 'Answer'\r
-        db.create_table(u'answer', (\r
-            ('wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('vote_up_count', self.gf('django.db.models.fields.IntegerField')(default=0)),\r
-            ('offensive_flag_count', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),\r
-            ('deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('locked_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-            ('score', self.gf('django.db.models.fields.IntegerField')(default=0)),\r
-            ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='answers', to=orm['forum.User'])),\r
-            ('question', self.gf('django.db.models.fields.related.ForeignKey')(related_name='answers', to=orm['forum.Question'])),\r
-            ('comment_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),\r
-            ('html', self.gf('django.db.models.fields.TextField')()),\r
-            ('vote_down_count', self.gf('django.db.models.fields.IntegerField')(default=0)),\r
-            ('last_edited_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='last_edited_answers', null=True, to=orm['forum.User'])),\r
-            ('accepted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-            ('deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('accepted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('locked', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('locked_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='locked_answers', null=True, to=orm['forum.User'])),\r
-            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='deleted_answers', null=True, to=orm['forum.User'])),\r
-            ('wikified_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-            ('last_edited_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['Answer'])\r
-\r
-        # Adding model 'AnswerRevision'\r
-        db.create_table(u'answer_revision', (\r
-            ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='answerrevisions', to=orm['forum.User'])),\r
-            ('text', self.gf('django.db.models.fields.TextField')()),\r
-            ('revised_at', self.gf('django.db.models.fields.DateTimeField')()),\r
-            ('summary', self.gf('django.db.models.fields.CharField')(max_length=300, blank=True)),\r
-            ('answer', self.gf('django.db.models.fields.related.ForeignKey')(related_name='revisions', to=orm['forum.Answer'])),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('revision', self.gf('django.db.models.fields.PositiveIntegerField')()),\r
-        ))\r
-        db.send_create_signal('forum', ['AnswerRevision'])\r
-\r
-        # Adding model 'AnonymousAnswer'\r
-        db.create_table('forum_anonymousanswer', (\r
-            ('wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('ip_addr', self.gf('django.db.models.fields.IPAddressField')(max_length=15)),\r
-            ('author', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'], null=True)),\r
-            ('text', self.gf('django.db.models.fields.TextField')()),\r
-            ('question', self.gf('django.db.models.fields.related.ForeignKey')(related_name='anonymous_answers', to=orm['forum.Question'])),\r
-            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('summary', self.gf('django.db.models.fields.CharField')(max_length=180)),\r
-            ('session_key', self.gf('django.db.models.fields.CharField')(max_length=40)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['AnonymousAnswer'])\r
-\r
-        # Adding model 'Badge'\r
-        db.create_table(u'badge', (\r
-            ('multiple', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('description', self.gf('django.db.models.fields.CharField')(max_length=300)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('awarded_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),\r
-            ('type', self.gf('django.db.models.fields.SmallIntegerField')()),\r
-            ('slug', self.gf('django.db.models.fields.SlugField')(db_index=True, max_length=50, blank=True)),\r
-            ('name', self.gf('django.db.models.fields.CharField')(max_length=50)),\r
-        ))\r
-        db.send_create_signal('forum', ['Badge'])\r
-\r
-        # Adding unique constraint on 'Badge', fields ['name', 'type']\r
-        db.create_unique(u'badge', ['name', 'type'])\r
-\r
-        # Adding model 'Award'\r
-        db.create_table(u'award', (\r
-            ('awarded_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('notified', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='awards', to=orm['forum.User'])),\r
-            ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])),\r
-            ('badge', self.gf('django.db.models.fields.related.ForeignKey')(related_name='award_badge', to=orm['forum.Badge'])),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['Award'])\r
-\r
-        # Adding unique constraint on 'Award', fields ['content_type', 'object_id', 'user', 'badge']\r
-        db.create_unique(u'award', ['content_type_id', 'object_id', 'user_id', 'badge_id'])\r
-\r
-        # Adding model 'Repute'\r
-        db.create_table(u'repute', (\r
-            ('positive', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),\r
-            ('question', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Question'])),\r
-            ('negative', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),\r
-            ('reputation_type', self.gf('django.db.models.fields.SmallIntegerField')()),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),\r
-            ('reputed_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('reputation', self.gf('django.db.models.fields.IntegerField')(default=1)),\r
-        ))\r
-        db.send_create_signal('forum', ['Repute'])\r
-\r
-        # Adding model 'KeyValue'\r
-        db.create_table('forum_keyvalue', (\r
-            ('value', self.gf('forum.models.utils.PickledObjectField')()),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('key', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)),\r
-        ))\r
-        db.send_create_signal('forum', ['KeyValue'])\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Deleting model 'User'\r
-        db.delete_table('forum_user')\r
-\r
-        # Deleting model 'Activity'\r
-        db.delete_table(u'activity')\r
-\r
-        # Deleting model 'SubscriptionSettings'\r
-        db.delete_table('forum_subscriptionsettings')\r
-\r
-        # Deleting model 'ValidationHash'\r
-        db.delete_table('forum_validationhash')\r
-\r
-        # Removing unique constraint on 'ValidationHash', fields ['user', 'type']\r
-        db.delete_unique('forum_validationhash', ['user_id', 'type'])\r
-\r
-        # Deleting model 'AuthKeyUserAssociation'\r
-        db.delete_table('forum_authkeyuserassociation')\r
-\r
-        # Deleting model 'Vote'\r
-        db.delete_table(u'vote')\r
-\r
-        # Removing unique constraint on 'Vote', fields ['content_type', 'object_id', 'user']\r
-        db.delete_unique(u'vote', ['content_type_id', 'object_id', 'user_id'])\r
-\r
-        # Deleting model 'FlaggedItem'\r
-        db.delete_table(u'flagged_item')\r
-\r
-        # Removing unique constraint on 'FlaggedItem', fields ['content_type', 'object_id', 'user']\r
-        db.delete_unique(u'flagged_item', ['content_type_id', 'object_id', 'user_id'])\r
-\r
-        # Deleting model 'Comment'\r
-        db.delete_table(u'comment')\r
-\r
-        # Deleting model 'Tag'\r
-        db.delete_table(u'tag')\r
-\r
-        # Deleting model 'MarkedTag'\r
-        db.delete_table('forum_markedtag')\r
-\r
-        # Deleting model 'Question'\r
-        db.delete_table(u'question')\r
-\r
-        # Removing M2M table for field followed_by on 'Question'\r
-        db.delete_table('question_followed_by')\r
-\r
-        # Removing M2M table for field tags on 'Question'\r
-        db.delete_table('question_tags')\r
-\r
-        # Deleting model 'QuestionSubscription'\r
-        db.delete_table('forum_questionsubscription')\r
-\r
-        # Deleting model 'FavoriteQuestion'\r
-        db.delete_table(u'favorite_question')\r
-\r
-        # Deleting model 'QuestionRevision'\r
-        db.delete_table(u'question_revision')\r
-\r
-        # Deleting model 'AnonymousQuestion'\r
-        db.delete_table('forum_anonymousquestion')\r
-\r
-        # Deleting model 'Answer'\r
-        db.delete_table(u'answer')\r
-\r
-        # Deleting model 'AnswerRevision'\r
-        db.delete_table(u'answer_revision')\r
-\r
-        # Deleting model 'AnonymousAnswer'\r
-        db.delete_table('forum_anonymousanswer')\r
-\r
-        # Deleting model 'Badge'\r
-        db.delete_table(u'badge')\r
-\r
-        # Removing unique constraint on 'Badge', fields ['name', 'type']\r
-        db.delete_unique(u'badge', ['name', 'type'])\r
-\r
-        # Deleting model 'Award'\r
-        db.delete_table(u'award')\r
-\r
-        # Removing unique constraint on 'Award', fields ['content_type', 'object_id', 'user', 'badge']\r
-        db.delete_unique(u'award', ['content_type_id', 'object_id', 'user_id', 'badge_id'])\r
-\r
-        # Deleting model 'Repute'\r
-        db.delete_table(u'repute')\r
-\r
-        # Deleting model 'KeyValue'\r
-        db.delete_table('forum_keyvalue')\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousanswer': {\r
-            'Meta': {'object_name': 'AnonymousAnswer'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.anonymousquestion': {\r
-            'Meta': {'object_name': 'AnonymousQuestion'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'locked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'locked_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'locked_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'locked_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.answerrevision': {\r
-            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},\r
-            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'text': ('django.db.models.fields.TextField', [], {})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user'),)", 'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'locked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'locked_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'locked_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'locked_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionrevision': {\r
-            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 6, 10, 36, 23, 725000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'negative': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'positive': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation': ('django.db.models.fields.IntegerField', [], {'default': '1'}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'gravatar': ('django.db.models.fields.CharField', [], {'max_length': '32'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'tag_filter_setting': ('django.db.models.fields.CharField', [], {'default': "'ignored'", 'max_length': '16'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 7, 10, 36, 23, 863000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user'),)", 'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Adding model 'User'
+        db.create_table('forum_user', (
+            ('website', self.gf('django.db.models.fields.URLField')(max_length=200, blank=True)),
+            ('user_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['auth.User'], unique=True, primary_key=True)),
+            ('hide_ignored_questions', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('is_approved', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('email_isvalid', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('real_name', self.gf('django.db.models.fields.CharField')(max_length=100, blank=True)),
+            ('about', self.gf('django.db.models.fields.TextField')(blank=True)),
+            ('silver', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),
+            ('date_of_birth', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
+            ('reputation', self.gf('django.db.models.fields.PositiveIntegerField')(default=1)),
+            ('gravatar', self.gf('django.db.models.fields.CharField')(max_length=32)),
+            ('location', self.gf('django.db.models.fields.CharField')(max_length=100, blank=True)),
+            ('tag_filter_setting', self.gf('django.db.models.fields.CharField')(default='ignored', max_length=16)),
+            ('gold', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),
+            ('last_seen', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('email_key', self.gf('django.db.models.fields.CharField')(max_length=32, null=True)),
+            ('bronze', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),
+            ('questions_per_page', self.gf('django.db.models.fields.SmallIntegerField')(default=10)),
+        ))
+        db.send_create_signal('forum', ['User'])
+
+        # Adding model 'Activity'
+        db.create_table(u'activity', (
+            ('is_auditted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),
+            ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])),
+            ('active_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('activity_type', self.gf('django.db.models.fields.SmallIntegerField')()),
+        ))
+        db.send_create_signal('forum', ['Activity'])
+
+        # Adding model 'SubscriptionSettings'
+        db.create_table('forum_subscriptionsettings', (
+            ('questions_asked', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
+            ('questions_viewed', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('notify_comments', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('new_question', self.gf('django.db.models.fields.CharField')(default='d', max_length=1)),
+            ('all_questions', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('new_question_watched_tags', self.gf('django.db.models.fields.CharField')(default='i', max_length=1)),
+            ('questions_answered', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
+            ('notify_comments_own_post', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
+            ('questions_commented', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('subscribed_questions', self.gf('django.db.models.fields.CharField')(default='i', max_length=1)),
+            ('notify_reply_to_comments', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
+            ('member_joins', self.gf('django.db.models.fields.CharField')(default='n', max_length=1)),
+            ('user', self.gf('django.db.models.fields.related.OneToOneField')(related_name='subscription_settings', unique=True, to=orm['forum.User'])),
+            ('notify_answers', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
+            ('enable_notifications', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
+            ('all_questions_watched_tags', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('notify_accepted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+        ))
+        db.send_create_signal('forum', ['SubscriptionSettings'])
+
+        # Adding model 'ValidationHash'
+        db.create_table('forum_validationhash', (
+            ('hash_code', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)),
+            ('seed', self.gf('django.db.models.fields.CharField')(max_length=12)),
+            ('expiration', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2010, 4, 7, 10, 36, 23, 812000))),
+            ('type', self.gf('django.db.models.fields.CharField')(max_length=12)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),
+        ))
+        db.send_create_signal('forum', ['ValidationHash'])
+
+        # Adding unique constraint on 'ValidationHash', fields ['user', 'type']
+        db.create_unique('forum_validationhash', ['user_id', 'type'])
+
+        # Adding model 'AuthKeyUserAssociation'
+        db.create_table('forum_authkeyuserassociation', (
+            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='auth_keys', to=orm['forum.User'])),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('key', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)),
+            ('provider', self.gf('django.db.models.fields.CharField')(max_length=64)),
+        ))
+        db.send_create_signal('forum', ['AuthKeyUserAssociation'])
+
+        # Adding model 'Vote'
+        db.create_table(u'vote', (
+            ('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()),
+            ('voted_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='votes', to=orm['forum.User'])),
+            ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])),
+            ('vote', self.gf('django.db.models.fields.SmallIntegerField')()),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('forum', ['Vote'])
+
+        # Adding unique constraint on 'Vote', fields ['content_type', 'object_id', 'user']
+        db.create_unique(u'vote', ['content_type_id', 'object_id', 'user_id'])
+
+        # Adding model 'FlaggedItem'
+        db.create_table(u'flagged_item', (
+            ('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()),
+            ('flagged_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='flaggeditems', to=orm['forum.User'])),
+        ))
+        db.send_create_signal('forum', ['FlaggedItem'])
+
+        # Adding unique constraint on 'FlaggedItem', fields ['content_type', 'object_id', 'user']
+        db.create_unique(u'flagged_item', ['content_type_id', 'object_id', 'user_id'])
+
+        # Adding model 'Comment'
+        db.create_table(u'comment', (
+            ('comment', self.gf('django.db.models.fields.CharField')(max_length=300)),
+            ('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()),
+            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='comments', to=orm['forum.User'])),
+        ))
+        db.send_create_signal('forum', ['Comment'])
+
+        # Adding model 'Tag'
+        db.create_table(u'tag', (
+            ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)),
+            ('deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('created_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='created_tags', to=orm['forum.User'])),
+            ('deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='deleted_tags', null=True, to=orm['forum.User'])),
+            ('used_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),
+            ('deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('forum', ['Tag'])
+
+        # Adding model 'MarkedTag'
+        db.create_table('forum_markedtag', (
+            ('reason', self.gf('django.db.models.fields.CharField')(max_length=16)),
+            ('tag', self.gf('django.db.models.fields.related.ForeignKey')(related_name='user_selections', to=orm['forum.Tag'])),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='tag_selections', to=orm['forum.User'])),
+        ))
+        db.send_create_signal('forum', ['MarkedTag'])
+
+        # Adding model 'Question'
+        db.create_table(u'question', (
+            ('wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('vote_up_count', self.gf('django.db.models.fields.IntegerField')(default=0)),
+            ('answer_accepted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('offensive_flag_count', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),
+            ('closed_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+            ('deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('last_activity_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='last_active_in_questions', to=orm['forum.User'])),
+            ('view_count', self.gf('django.db.models.fields.IntegerField')(default=0)),
+            ('locked_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+            ('score', self.gf('django.db.models.fields.IntegerField')(default=0)),
+            ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='questions', to=orm['forum.User'])),
+            ('comment_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),
+            ('html', self.gf('django.db.models.fields.TextField')()),
+            ('vote_down_count', self.gf('django.db.models.fields.IntegerField')(default=0)),
+            ('closed', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('last_edited_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='last_edited_questions', null=True, to=orm['forum.User'])),
+            ('favourite_count', self.gf('django.db.models.fields.IntegerField')(default=0)),
+            ('deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('summary', self.gf('django.db.models.fields.CharField')(max_length=180)),
+            ('answer_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),
+            ('last_activity_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('closed_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='closed_questions', null=True, to=orm['forum.User'])),
+            ('close_reason', self.gf('django.db.models.fields.SmallIntegerField')(null=True, blank=True)),
+            ('locked', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('tagnames', self.gf('django.db.models.fields.CharField')(max_length=125)),
+            ('locked_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='locked_questions', null=True, to=orm['forum.User'])),
+            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='deleted_questions', null=True, to=orm['forum.User'])),
+            ('wikified_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+            ('title', self.gf('django.db.models.fields.CharField')(max_length=300)),
+            ('last_edited_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+        ))
+        db.send_create_signal('forum', ['Question'])
+
+        # Adding M2M table for field followed_by on 'Question'
+        db.create_table(u'question_followed_by', (
+            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+            ('question', models.ForeignKey(orm['forum.question'], null=False)),
+            ('user', models.ForeignKey(orm['forum.user'], null=False))
+        ))
+        db.create_unique(u'question_followed_by', ['question_id', 'user_id'])
+
+        # Adding M2M table for field tags on 'Question'
+        db.create_table(u'question_tags', (
+            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+            ('question', models.ForeignKey(orm['forum.question'], null=False)),
+            ('tag', models.ForeignKey(orm['forum.tag'], null=False))
+        ))
+        db.create_unique(u'question_tags', ['question_id', 'tag_id'])
+
+        # Adding model 'QuestionSubscription'
+        db.create_table('forum_questionsubscription', (
+            ('last_view', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2010, 4, 6, 10, 36, 23, 725000))),
+            ('auto_subscription', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
+            ('question', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Question'])),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),
+        ))
+        db.send_create_signal('forum', ['QuestionSubscription'])
+
+        # Adding model 'FavoriteQuestion'
+        db.create_table(u'favorite_question', (
+            ('question', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Question'])),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='user_favorite_questions', to=orm['forum.User'])),
+        ))
+        db.send_create_signal('forum', ['FavoriteQuestion'])
+
+        # Adding model 'QuestionRevision'
+        db.create_table(u'question_revision', (
+            ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='questionrevisions', to=orm['forum.User'])),
+            ('tagnames', self.gf('django.db.models.fields.CharField')(max_length=125)),
+            ('text', self.gf('django.db.models.fields.TextField')()),
+            ('title', self.gf('django.db.models.fields.CharField')(max_length=300)),
+            ('question', self.gf('django.db.models.fields.related.ForeignKey')(related_name='revisions', to=orm['forum.Question'])),
+            ('revised_at', self.gf('django.db.models.fields.DateTimeField')()),
+            ('summary', self.gf('django.db.models.fields.CharField')(max_length=300, blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('revision', self.gf('django.db.models.fields.PositiveIntegerField')()),
+        ))
+        db.send_create_signal('forum', ['QuestionRevision'])
+
+        # Adding model 'AnonymousQuestion'
+        db.create_table('forum_anonymousquestion', (
+            ('wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('ip_addr', self.gf('django.db.models.fields.IPAddressField')(max_length=15)),
+            ('author', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'], null=True)),
+            ('tagnames', self.gf('django.db.models.fields.CharField')(max_length=125)),
+            ('text', self.gf('django.db.models.fields.TextField')()),
+            ('title', self.gf('django.db.models.fields.CharField')(max_length=300)),
+            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('summary', self.gf('django.db.models.fields.CharField')(max_length=180)),
+            ('session_key', self.gf('django.db.models.fields.CharField')(max_length=40)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('forum', ['AnonymousQuestion'])
+
+        # Adding model 'Answer'
+        db.create_table(u'answer', (
+            ('wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('vote_up_count', self.gf('django.db.models.fields.IntegerField')(default=0)),
+            ('offensive_flag_count', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),
+            ('deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('locked_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+            ('score', self.gf('django.db.models.fields.IntegerField')(default=0)),
+            ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='answers', to=orm['forum.User'])),
+            ('question', self.gf('django.db.models.fields.related.ForeignKey')(related_name='answers', to=orm['forum.Question'])),
+            ('comment_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),
+            ('html', self.gf('django.db.models.fields.TextField')()),
+            ('vote_down_count', self.gf('django.db.models.fields.IntegerField')(default=0)),
+            ('last_edited_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='last_edited_answers', null=True, to=orm['forum.User'])),
+            ('accepted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+            ('deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('accepted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('locked', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('locked_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='locked_answers', null=True, to=orm['forum.User'])),
+            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='deleted_answers', null=True, to=orm['forum.User'])),
+            ('wikified_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+            ('last_edited_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+        ))
+        db.send_create_signal('forum', ['Answer'])
+
+        # Adding model 'AnswerRevision'
+        db.create_table(u'answer_revision', (
+            ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='answerrevisions', to=orm['forum.User'])),
+            ('text', self.gf('django.db.models.fields.TextField')()),
+            ('revised_at', self.gf('django.db.models.fields.DateTimeField')()),
+            ('summary', self.gf('django.db.models.fields.CharField')(max_length=300, blank=True)),
+            ('answer', self.gf('django.db.models.fields.related.ForeignKey')(related_name='revisions', to=orm['forum.Answer'])),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('revision', self.gf('django.db.models.fields.PositiveIntegerField')()),
+        ))
+        db.send_create_signal('forum', ['AnswerRevision'])
+
+        # Adding model 'AnonymousAnswer'
+        db.create_table('forum_anonymousanswer', (
+            ('wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('ip_addr', self.gf('django.db.models.fields.IPAddressField')(max_length=15)),
+            ('author', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'], null=True)),
+            ('text', self.gf('django.db.models.fields.TextField')()),
+            ('question', self.gf('django.db.models.fields.related.ForeignKey')(related_name='anonymous_answers', to=orm['forum.Question'])),
+            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('summary', self.gf('django.db.models.fields.CharField')(max_length=180)),
+            ('session_key', self.gf('django.db.models.fields.CharField')(max_length=40)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('forum', ['AnonymousAnswer'])
+
+        # Adding model 'Badge'
+        db.create_table(u'badge', (
+            ('multiple', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('description', self.gf('django.db.models.fields.CharField')(max_length=300)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('awarded_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),
+            ('type', self.gf('django.db.models.fields.SmallIntegerField')()),
+            ('slug', self.gf('django.db.models.fields.SlugField')(db_index=True, max_length=50, blank=True)),
+            ('name', self.gf('django.db.models.fields.CharField')(max_length=50)),
+        ))
+        db.send_create_signal('forum', ['Badge'])
+
+        # Adding unique constraint on 'Badge', fields ['name', 'type']
+        db.create_unique(u'badge', ['name', 'type'])
+
+        # Adding model 'Award'
+        db.create_table(u'award', (
+            ('awarded_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('notified', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='awards', to=orm['forum.User'])),
+            ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])),
+            ('badge', self.gf('django.db.models.fields.related.ForeignKey')(related_name='award_badge', to=orm['forum.Badge'])),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('forum', ['Award'])
+
+        # Adding unique constraint on 'Award', fields ['content_type', 'object_id', 'user', 'badge']
+        db.create_unique(u'award', ['content_type_id', 'object_id', 'user_id', 'badge_id'])
+
+        # Adding model 'Repute'
+        db.create_table(u'repute', (
+            ('positive', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),
+            ('question', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Question'])),
+            ('negative', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),
+            ('reputation_type', self.gf('django.db.models.fields.SmallIntegerField')()),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),
+            ('reputed_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('reputation', self.gf('django.db.models.fields.IntegerField')(default=1)),
+        ))
+        db.send_create_signal('forum', ['Repute'])
+
+        # Adding model 'KeyValue'
+        db.create_table('forum_keyvalue', (
+            ('value', self.gf('forum.models.utils.PickledObjectField')()),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('key', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)),
+        ))
+        db.send_create_signal('forum', ['KeyValue'])
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting model 'User'
+        db.delete_table('forum_user')
+
+        # Deleting model 'Activity'
+        db.delete_table(u'activity')
+
+        # Deleting model 'SubscriptionSettings'
+        db.delete_table('forum_subscriptionsettings')
+
+        # Deleting model 'ValidationHash'
+        db.delete_table('forum_validationhash')
+
+        # Removing unique constraint on 'ValidationHash', fields ['user', 'type']
+        db.delete_unique('forum_validationhash', ['user_id', 'type'])
+
+        # Deleting model 'AuthKeyUserAssociation'
+        db.delete_table('forum_authkeyuserassociation')
+
+        # Deleting model 'Vote'
+        db.delete_table(u'vote')
+
+        # Removing unique constraint on 'Vote', fields ['content_type', 'object_id', 'user']
+        db.delete_unique(u'vote', ['content_type_id', 'object_id', 'user_id'])
+
+        # Deleting model 'FlaggedItem'
+        db.delete_table(u'flagged_item')
+
+        # Removing unique constraint on 'FlaggedItem', fields ['content_type', 'object_id', 'user']
+        db.delete_unique(u'flagged_item', ['content_type_id', 'object_id', 'user_id'])
+
+        # Deleting model 'Comment'
+        db.delete_table(u'comment')
+
+        # Deleting model 'Tag'
+        db.delete_table(u'tag')
+
+        # Deleting model 'MarkedTag'
+        db.delete_table('forum_markedtag')
+
+        # Deleting model 'Question'
+        db.delete_table(u'question')
+
+        # Removing M2M table for field followed_by on 'Question'
+        db.delete_table('question_followed_by')
+
+        # Removing M2M table for field tags on 'Question'
+        db.delete_table('question_tags')
+
+        # Deleting model 'QuestionSubscription'
+        db.delete_table('forum_questionsubscription')
+
+        # Deleting model 'FavoriteQuestion'
+        db.delete_table(u'favorite_question')
+
+        # Deleting model 'QuestionRevision'
+        db.delete_table(u'question_revision')
+
+        # Deleting model 'AnonymousQuestion'
+        db.delete_table('forum_anonymousquestion')
+
+        # Deleting model 'Answer'
+        db.delete_table(u'answer')
+
+        # Deleting model 'AnswerRevision'
+        db.delete_table(u'answer_revision')
+
+        # Deleting model 'AnonymousAnswer'
+        db.delete_table('forum_anonymousanswer')
+
+        # Deleting model 'Badge'
+        db.delete_table(u'badge')
+
+        # Removing unique constraint on 'Badge', fields ['name', 'type']
+        db.delete_unique(u'badge', ['name', 'type'])
+
+        # Deleting model 'Award'
+        db.delete_table(u'award')
+
+        # Removing unique constraint on 'Award', fields ['content_type', 'object_id', 'user', 'badge']
+        db.delete_unique(u'award', ['content_type_id', 'object_id', 'user_id', 'badge_id'])
+
+        # Deleting model 'Repute'
+        db.delete_table(u'repute')
+
+        # Deleting model 'KeyValue'
+        db.delete_table('forum_keyvalue')
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousanswer': {
+            'Meta': {'object_name': 'AnonymousAnswer'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.anonymousquestion': {
+            'Meta': {'object_name': 'AnonymousQuestion'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'locked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'locked_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'locked_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'locked_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.answerrevision': {
+            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},
+            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'text': ('django.db.models.fields.TextField', [], {})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user'),)", 'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'locked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'locked_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'locked_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'locked_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionrevision': {
+            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 6, 10, 36, 23, 725000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'negative': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'positive': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'gravatar': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'tag_filter_setting': ('django.db.models.fields.CharField', [], {'default': "'ignored'", 'max_length': '16'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 7, 10, 36, 23, 863000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user'),)", 'object_name': 'Vote', 'db_table': "u'vote'"},
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index 36ff8e2e34a90ed2cb65063a60cbd3fc1dba7570..c914809c579b87636daee34fb7826d8d59cd2c03 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Adding model 'LikedComment'\r
-        db.create_table('forum_likedcomment', (\r
-            ('comment', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Comment'])),\r
-            ('canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),\r
-        ))\r
-        db.send_create_signal('forum', ['LikedComment'])\r
-\r
-        # Adding field 'Repute.value'\r
-        db.add_column(u'repute', 'value', self.gf('django.db.models.fields.SmallIntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Repute.user_previous_rep'\r
-        db.add_column(u'repute', 'user_previous_rep', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Vote.canceled'\r
-        db.add_column(u'vote', 'canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-\r
-        # Removing unique constraint on 'Vote', fields ['object_id', 'content_type', 'user']\r
-        db.delete_unique(u'vote', ['object_id', 'content_type_id', 'user_id'])\r
-\r
-        # Adding field 'Comment.deleted'\r
-        db.add_column(u'comment', 'deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-\r
-        # Adding field 'Comment.deleted_by'\r
-        db.add_column(u'comment', 'deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='deleted_comments', null=True, to=orm['forum.User']), keep_default=False)\r
-\r
-        # Adding field 'Comment.score'\r
-        db.add_column(u'comment', 'score', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Comment.deleted_at'\r
-        db.add_column(u'comment', 'deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)\r
-\r
-        # Deleting field 'Answer.locked_at'\r
-        db.delete_column(u'answer', 'locked_at')\r
-\r
-        # Deleting field 'Answer.locked'\r
-        db.delete_column(u'answer', 'locked')\r
-\r
-        # Deleting field 'Answer.locked_by'\r
-        db.delete_column(u'answer', 'locked_by_id')\r
-\r
-        # Adding field 'Answer.accepted_by'\r
-        db.add_column(u'answer', 'accepted_by', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'], null=True), keep_default=False)\r
-\r
-        # Adding field 'FlaggedItem.canceled'\r
-        db.add_column(u'flagged_item', 'canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-\r
-        # Adding field 'FlaggedItem.reason'\r
-        db.add_column(u'flagged_item', 'reason', self.gf('django.db.models.fields.CharField')(max_length=300, null=True), keep_default=False)\r
-\r
-        # Removing unique constraint on 'FlaggedItem', fields ['object_id', 'content_type', 'user']\r
-        db.delete_unique(u'flagged_item', ['object_id', 'content_type_id', 'user_id'])\r
-\r
-        # Adding unique constraint on 'FavoriteQuestion', fields ['question', 'user']\r
-        db.create_unique(u'favorite_question', ['question_id', 'user_id'])\r
-\r
-        # Deleting field 'User.gravatar'\r
-        db.delete_column('forum_user', 'gravatar')\r
-\r
-        # Deleting field 'User.tag_filter_setting'\r
-        db.delete_column('forum_user', 'tag_filter_setting')\r
-\r
-        # Deleting field 'Question.locked_at'\r
-        db.delete_column(u'question', 'locked_at')\r
-\r
-        # Deleting field 'Question.locked'\r
-        db.delete_column(u'question', 'locked')\r
-\r
-        # Deleting field 'Question.locked_by'\r
-        db.delete_column(u'question', 'locked_by_id')\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Deleting model 'LikedComment'\r
-        db.delete_table('forum_likedcomment')\r
-\r
-        # Deleting field 'Repute.value'\r
-        db.delete_column(u'repute', 'value')\r
-\r
-        # Deleting field 'Repute.user_previous_rep'\r
-        db.delete_column(u'repute', 'user_previous_rep')\r
-\r
-        # Deleting field 'Vote.canceled'\r
-        db.delete_column(u'vote', 'canceled')\r
-\r
-        # Adding unique constraint on 'Vote', fields ['object_id', 'content_type', 'user']\r
-        db.create_unique(u'vote', ['object_id', 'content_type_id', 'user_id'])\r
-\r
-        # Deleting field 'Comment.deleted'\r
-        db.delete_column(u'comment', 'deleted')\r
-\r
-        # Deleting field 'Comment.deleted_by'\r
-        db.delete_column(u'comment', 'deleted_by_id')\r
-\r
-        # Deleting field 'Comment.score'\r
-        db.delete_column(u'comment', 'score')\r
-\r
-        # Deleting field 'Comment.deleted_at'\r
-        db.delete_column(u'comment', 'deleted_at')\r
-\r
-        # Adding field 'Answer.locked_at'\r
-        db.add_column(u'answer', 'locked_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)\r
-\r
-        # Adding field 'Answer.locked'\r
-        db.add_column(u'answer', 'locked', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-\r
-        # Adding field 'Answer.locked_by'\r
-        db.add_column(u'answer', 'locked_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='locked_answers', null=True, to=orm['forum.User'], blank=True), keep_default=False)\r
-\r
-        # Deleting field 'Answer.accepted_by'\r
-        db.delete_column(u'answer', 'accepted_by_id')\r
-\r
-        # Deleting field 'FlaggedItem.canceled'\r
-        db.delete_column(u'flagged_item', 'canceled')\r
-\r
-        # Deleting field 'FlaggedItem.reason'\r
-        db.delete_column(u'flagged_item', 'reason')\r
-\r
-        # Adding unique constraint on 'FlaggedItem', fields ['object_id', 'content_type', 'user']\r
-        db.create_unique(u'flagged_item', ['object_id', 'content_type_id', 'user_id'])\r
-\r
-        # Removing unique constraint on 'FavoriteQuestion', fields ['question', 'user']\r
-        db.delete_unique(u'favorite_question', ['question_id', 'user_id'])\r
-\r
-        # Adding field 'User.gravatar'\r
-        db.add_column('forum_user', 'gravatar', self.gf('django.db.models.fields.CharField')(default='', max_length=32), keep_default=False)\r
-\r
-        # Adding field 'User.tag_filter_setting'\r
-        db.add_column('forum_user', 'tag_filter_setting', self.gf('django.db.models.fields.CharField')(default='ignored', max_length=16), keep_default=False)\r
-\r
-        # Adding field 'Question.locked_at'\r
-        db.add_column(u'question', 'locked_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)\r
-\r
-        # Adding field 'Question.locked'\r
-        db.add_column(u'question', 'locked', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-\r
-        # Adding field 'Question.locked_by'\r
-        db.add_column(u'question', 'locked_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='locked_questions', null=True, to=orm['forum.User'], blank=True), keep_default=False)\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousanswer': {\r
-            'Meta': {'object_name': 'AnonymousAnswer'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.anonymousquestion': {\r
-            'Meta': {'object_name': 'AnonymousQuestion'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.answerrevision': {\r
-            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},\r
-            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'text': ('django.db.models.fields.TextField', [], {})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionrevision': {\r
-            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 6, 11, 11, 44, 616000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-                       'negative': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'positive': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'reputation': ('django.db.models.fields.IntegerField', [], {'default': '1'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 7, 11, 11, 52, 402000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Adding model 'LikedComment'
+        db.create_table('forum_likedcomment', (
+            ('comment', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Comment'])),
+            ('canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),
+        ))
+        db.send_create_signal('forum', ['LikedComment'])
+
+        # Adding field 'Repute.value'
+        db.add_column(u'repute', 'value', self.gf('django.db.models.fields.SmallIntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Repute.user_previous_rep'
+        db.add_column(u'repute', 'user_previous_rep', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Vote.canceled'
+        db.add_column(u'vote', 'canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Removing unique constraint on 'Vote', fields ['object_id', 'content_type', 'user']
+        db.delete_unique(u'vote', ['object_id', 'content_type_id', 'user_id'])
+
+        # Adding field 'Comment.deleted'
+        db.add_column(u'comment', 'deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Comment.deleted_by'
+        db.add_column(u'comment', 'deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='deleted_comments', null=True, to=orm['forum.User']), keep_default=False)
+
+        # Adding field 'Comment.score'
+        db.add_column(u'comment', 'score', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Comment.deleted_at'
+        db.add_column(u'comment', 'deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Deleting field 'Answer.locked_at'
+        db.delete_column(u'answer', 'locked_at')
+
+        # Deleting field 'Answer.locked'
+        db.delete_column(u'answer', 'locked')
+
+        # Deleting field 'Answer.locked_by'
+        db.delete_column(u'answer', 'locked_by_id')
+
+        # Adding field 'Answer.accepted_by'
+        db.add_column(u'answer', 'accepted_by', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'], null=True), keep_default=False)
+
+        # Adding field 'FlaggedItem.canceled'
+        db.add_column(u'flagged_item', 'canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'FlaggedItem.reason'
+        db.add_column(u'flagged_item', 'reason', self.gf('django.db.models.fields.CharField')(max_length=300, null=True), keep_default=False)
+
+        # Removing unique constraint on 'FlaggedItem', fields ['object_id', 'content_type', 'user']
+        db.delete_unique(u'flagged_item', ['object_id', 'content_type_id', 'user_id'])
+
+        # Adding unique constraint on 'FavoriteQuestion', fields ['question', 'user']
+        db.create_unique(u'favorite_question', ['question_id', 'user_id'])
+
+        # Deleting field 'User.gravatar'
+        db.delete_column('forum_user', 'gravatar')
+
+        # Deleting field 'User.tag_filter_setting'
+        db.delete_column('forum_user', 'tag_filter_setting')
+
+        # Deleting field 'Question.locked_at'
+        db.delete_column(u'question', 'locked_at')
+
+        # Deleting field 'Question.locked'
+        db.delete_column(u'question', 'locked')
+
+        # Deleting field 'Question.locked_by'
+        db.delete_column(u'question', 'locked_by_id')
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting model 'LikedComment'
+        db.delete_table('forum_likedcomment')
+
+        # Deleting field 'Repute.value'
+        db.delete_column(u'repute', 'value')
+
+        # Deleting field 'Repute.user_previous_rep'
+        db.delete_column(u'repute', 'user_previous_rep')
+
+        # Deleting field 'Vote.canceled'
+        db.delete_column(u'vote', 'canceled')
+
+        # Adding unique constraint on 'Vote', fields ['object_id', 'content_type', 'user']
+        db.create_unique(u'vote', ['object_id', 'content_type_id', 'user_id'])
+
+        # Deleting field 'Comment.deleted'
+        db.delete_column(u'comment', 'deleted')
+
+        # Deleting field 'Comment.deleted_by'
+        db.delete_column(u'comment', 'deleted_by_id')
+
+        # Deleting field 'Comment.score'
+        db.delete_column(u'comment', 'score')
+
+        # Deleting field 'Comment.deleted_at'
+        db.delete_column(u'comment', 'deleted_at')
+
+        # Adding field 'Answer.locked_at'
+        db.add_column(u'answer', 'locked_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Answer.locked'
+        db.add_column(u'answer', 'locked', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Answer.locked_by'
+        db.add_column(u'answer', 'locked_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='locked_answers', null=True, to=orm['forum.User'], blank=True), keep_default=False)
+
+        # Deleting field 'Answer.accepted_by'
+        db.delete_column(u'answer', 'accepted_by_id')
+
+        # Deleting field 'FlaggedItem.canceled'
+        db.delete_column(u'flagged_item', 'canceled')
+
+        # Deleting field 'FlaggedItem.reason'
+        db.delete_column(u'flagged_item', 'reason')
+
+        # Adding unique constraint on 'FlaggedItem', fields ['object_id', 'content_type', 'user']
+        db.create_unique(u'flagged_item', ['object_id', 'content_type_id', 'user_id'])
+
+        # Removing unique constraint on 'FavoriteQuestion', fields ['question', 'user']
+        db.delete_unique(u'favorite_question', ['question_id', 'user_id'])
+
+        # Adding field 'User.gravatar'
+        db.add_column('forum_user', 'gravatar', self.gf('django.db.models.fields.CharField')(default='', max_length=32), keep_default=False)
+
+        # Adding field 'User.tag_filter_setting'
+        db.add_column('forum_user', 'tag_filter_setting', self.gf('django.db.models.fields.CharField')(default='ignored', max_length=16), keep_default=False)
+
+        # Adding field 'Question.locked_at'
+        db.add_column(u'question', 'locked_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Question.locked'
+        db.add_column(u'question', 'locked', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Question.locked_by'
+        db.add_column(u'question', 'locked_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='locked_questions', null=True, to=orm['forum.User'], blank=True), keep_default=False)
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousanswer': {
+            'Meta': {'object_name': 'AnonymousAnswer'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.anonymousquestion': {
+            'Meta': {'object_name': 'AnonymousQuestion'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.answerrevision': {
+            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},
+            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'text': ('django.db.models.fields.TextField', [], {})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionrevision': {
+            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 6, 11, 11, 44, 616000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+                       'negative': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'positive': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'reputation': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 7, 11, 11, 52, 402000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index cdcbd2233b73611e01a6f3459df770ccdeae5f12..f7ab5a645d4e77daf8cd0e1aa8f1fa998fb1c13f 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import DataMigration\r
-from django.db import models\r
-\r
-class Migration(DataMigration):\r
-    \r
-    def forwards(self, orm):\r
-        for r in orm.Repute.objects.all():\r
-            r.value = r.positive + r.negative\r
-            r.user_previous_rep = r.reputation - r.value\r
-            r.save()\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        for r in orm.Repute.objects.all():\r
-            if r.value > 0:\r
-                r.positive = r.value\r
-                r.negative = 0\r
-            else:\r
-                r.positive = 0\r
-                r.negative = r.value\r
-\r
-            r.reputation = r.user_previous_rep + r.value\r
-            r.save()\r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousanswer': {\r
-            'Meta': {'object_name': 'AnonymousAnswer'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.anonymousquestion': {\r
-            'Meta': {'object_name': 'AnonymousQuestion'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.answerrevision': {\r
-            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},\r
-            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'text': ('django.db.models.fields.TextField', [], {})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionrevision': {\r
-            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 6, 11, 30, 3, 497000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'negative': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'positive': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation': ('django.db.models.fields.IntegerField', [], {'default': '1'}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 7, 11, 30, 3, 573000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+
+class Migration(DataMigration):
+    
+    def forwards(self, orm):
+        for r in orm.Repute.objects.all():
+            r.value = r.positive + r.negative
+            r.user_previous_rep = r.reputation - r.value
+            r.save()
+    
+    
+    def backwards(self, orm):
+        for r in orm.Repute.objects.all():
+            if r.value > 0:
+                r.positive = r.value
+                r.negative = 0
+            else:
+                r.positive = 0
+                r.negative = r.value
+
+            r.reputation = r.user_previous_rep + r.value
+            r.save()
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousanswer': {
+            'Meta': {'object_name': 'AnonymousAnswer'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.anonymousquestion': {
+            'Meta': {'object_name': 'AnonymousQuestion'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.answerrevision': {
+            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},
+            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'text': ('django.db.models.fields.TextField', [], {})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionrevision': {
+            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 6, 11, 30, 3, 497000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'negative': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'positive': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 7, 11, 30, 3, 573000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index 5faa7b0f9ef12163410ee561ed04c0b5a760a036..68c25385585149c4e6158ff307b071154480d15d 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Deleting field 'Repute.negative'\r
-        db.delete_column(u'repute', 'negative')\r
-\r
-        # Deleting field 'Repute.positive'\r
-        db.delete_column(u'repute', 'positive')\r
-\r
-        # Deleting field 'Repute.reputation'\r
-        db.delete_column(u'repute', 'reputation')\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Adding field 'Repute.negative'\r
-        db.add_column(u'repute', 'negative', self.gf('django.db.models.fields.SmallIntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Repute.positive'\r
-        db.add_column(u'repute', 'positive', self.gf('django.db.models.fields.SmallIntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Repute.reputation'\r
-        db.add_column(u'repute', 'reputation', self.gf('django.db.models.fields.IntegerField')(default=1), keep_default=False)\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousanswer': {\r
-            'Meta': {'object_name': 'AnonymousAnswer'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.anonymousquestion': {\r
-            'Meta': {'object_name': 'AnonymousQuestion'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.answerrevision': {\r
-            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},\r
-            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'text': ('django.db.models.fields.TextField', [], {})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionrevision': {\r
-            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 6, 11, 40, 26, 816000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 7, 11, 40, 27, 72000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Deleting field 'Repute.negative'
+        db.delete_column(u'repute', 'negative')
+
+        # Deleting field 'Repute.positive'
+        db.delete_column(u'repute', 'positive')
+
+        # Deleting field 'Repute.reputation'
+        db.delete_column(u'repute', 'reputation')
+    
+    
+    def backwards(self, orm):
+        
+        # Adding field 'Repute.negative'
+        db.add_column(u'repute', 'negative', self.gf('django.db.models.fields.SmallIntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Repute.positive'
+        db.add_column(u'repute', 'positive', self.gf('django.db.models.fields.SmallIntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Repute.reputation'
+        db.add_column(u'repute', 'reputation', self.gf('django.db.models.fields.IntegerField')(default=1), keep_default=False)
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousanswer': {
+            'Meta': {'object_name': 'AnonymousAnswer'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.anonymousquestion': {
+            'Meta': {'object_name': 'AnonymousQuestion'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.answerrevision': {
+            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},
+            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'text': ('django.db.models.fields.TextField', [], {})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionrevision': {
+            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 6, 11, 40, 26, 816000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 7, 11, 40, 27, 72000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index cc7d0b0ca9856dc059d1d88cac72c8fa2c91f8f0..377226727dfcc561740f344d31793abc8ec3c5fc 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import DataMigration\r
-from django.db import models\r
-\r
-class Migration(DataMigration):\r
-    \r
-    def forwards(self, orm):\r
-        for a in orm.Answer.objects.filter(accepted=True):\r
-            a.accepted_by = a.question.author\r
-            a.save()\r
-    \r
-    def backwards(self, orm):\r
-        "Write your backwards methods here."\r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousanswer': {\r
-            'Meta': {'object_name': 'AnonymousAnswer'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.anonymousquestion': {\r
-            'Meta': {'object_name': 'AnonymousQuestion'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.answerrevision': {\r
-            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},\r
-            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'text': ('django.db.models.fields.TextField', [], {})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionrevision': {\r
-            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 6, 11, 46, 14, 452000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 7, 11, 46, 14, 538000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+
+class Migration(DataMigration):
+    
+    def forwards(self, orm):
+        for a in orm.Answer.objects.filter(accepted=True):
+            a.accepted_by = a.question.author
+            a.save()
+    
+    def backwards(self, orm):
+        "Write your backwards methods here."
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousanswer': {
+            'Meta': {'object_name': 'AnonymousAnswer'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.anonymousquestion': {
+            'Meta': {'object_name': 'AnonymousQuestion'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.answerrevision': {
+            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},
+            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'text': ('django.db.models.fields.TextField', [], {})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionrevision': {
+            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 6, 11, 46, 14, 452000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 7, 11, 46, 14, 538000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index bee4368e309a7b7209d146d6d3ac77eba42f7ed8..a7303a4003d09cd265fd621bdba731930c299fbe 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Adding model 'Node'\r
-        db.create_table('forum_node', (\r
-            ('body', self.gf('django.db.models.fields.TextField')()),\r
-            ('vote_up_count', self.gf('django.db.models.fields.IntegerField')(default=0)),\r
-            ('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='childs', null=True, to=orm['forum.Node'])),\r
-            ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='nodes', to=orm['forum.User'])),\r
-            ('deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('title', self.gf('django.db.models.fields.CharField')(max_length=300)),\r
-            ('comment_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),\r
-            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='deleted_nodes', null=True, to=orm['forum.User'])),\r
-            ('tagnames', self.gf('django.db.models.fields.CharField')(max_length=125)),\r
-            ('node_type', self.gf('django.db.models.fields.CharField')(default='node', max_length=16)),\r
-            ('score', self.gf('django.db.models.fields.IntegerField')(default=0)),\r
-            ('vote_down_count', self.gf('django.db.models.fields.IntegerField')(default=0)),\r
-            ('offensive_flag_count', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),\r
-            ('last_edited_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='last_edited_nodes', null=True, to=orm['forum.User'])),\r
-            ('deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('last_edited_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['Node'])\r
-\r
-        # Adding M2M table for field tags on 'Node'\r
-        db.create_table('forum_node_tags', (\r
-            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),\r
-            ('node', models.ForeignKey(orm['forum.node'], null=False)),\r
-            ('tag', models.ForeignKey(orm['forum.tag'], null=False))\r
-        ))\r
-        db.create_unique('forum_node_tags', ['node_id', 'tag_id'])\r
-\r
-        # Adding field 'Vote.node'\r
-        db.add_column(u'vote', 'node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='votes', null=True, to=orm['forum.Node']), keep_default=False)\r
-\r
-        # Adding field 'Comment.node'\r
-        db.add_column(u'comment', 'node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='comments', null=True, to=orm['forum.Node']), keep_default=False)\r
-\r
-        # Adding field 'Answer.node_ptr'\r
-        db.add_column(u'answer', 'node_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True, null=True), keep_default=False)\r
-\r
-        # Adding field 'FlaggedItem.node'\r
-        db.add_column(u'flagged_item', 'node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='flaggeditems', null=True, to=orm['forum.Node']), keep_default=False)\r
-\r
-        # Adding field 'Question.node_ptr'\r
-        db.add_column(u'question', 'node_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True, null=True), keep_default=False)\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Deleting model 'Node'\r
-        db.delete_table('forum_node')\r
-\r
-        # Removing M2M table for field tags on 'Node'\r
-        db.delete_table('forum_node_tags')\r
-\r
-        # Deleting field 'Vote.node'\r
-        db.delete_column(u'vote', 'node_id')\r
-\r
-        # Deleting field 'Comment.node'\r
-        db.delete_column(u'comment', 'node_id')\r
-\r
-        # Deleting field 'Answer.node_ptr'\r
-        db.delete_column(u'answer', 'node_ptr_id')\r
-\r
-        # Deleting field 'FlaggedItem.node'\r
-        db.delete_column(u'flagged_item', 'node_id')\r
-\r
-        # Deleting field 'Question.node_ptr'\r
-        db.delete_column(u'question', 'node_ptr_id')\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousanswer': {\r
-            'Meta': {'object_name': 'AnonymousAnswer'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.anonymousquestion': {\r
-            'Meta': {'object_name': 'AnonymousQuestion'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.answerrevision': {\r
-            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},\r
-            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'text': ('django.db.models.fields.TextField', [], {})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'childs'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionrevision': {\r
-            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 1, 28, 41, 733000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 1, 28, 41, 976000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Adding model 'Node'
+        db.create_table('forum_node', (
+            ('body', self.gf('django.db.models.fields.TextField')()),
+            ('vote_up_count', self.gf('django.db.models.fields.IntegerField')(default=0)),
+            ('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='childs', null=True, to=orm['forum.Node'])),
+            ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='nodes', to=orm['forum.User'])),
+            ('deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('title', self.gf('django.db.models.fields.CharField')(max_length=300)),
+            ('comment_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),
+            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='deleted_nodes', null=True, to=orm['forum.User'])),
+            ('tagnames', self.gf('django.db.models.fields.CharField')(max_length=125)),
+            ('node_type', self.gf('django.db.models.fields.CharField')(default='node', max_length=16)),
+            ('score', self.gf('django.db.models.fields.IntegerField')(default=0)),
+            ('vote_down_count', self.gf('django.db.models.fields.IntegerField')(default=0)),
+            ('offensive_flag_count', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),
+            ('last_edited_by', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='last_edited_nodes', null=True, to=orm['forum.User'])),
+            ('deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('last_edited_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+        ))
+        db.send_create_signal('forum', ['Node'])
+
+        # Adding M2M table for field tags on 'Node'
+        db.create_table('forum_node_tags', (
+            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+            ('node', models.ForeignKey(orm['forum.node'], null=False)),
+            ('tag', models.ForeignKey(orm['forum.tag'], null=False))
+        ))
+        db.create_unique('forum_node_tags', ['node_id', 'tag_id'])
+
+        # Adding field 'Vote.node'
+        db.add_column(u'vote', 'node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='votes', null=True, to=orm['forum.Node']), keep_default=False)
+
+        # Adding field 'Comment.node'
+        db.add_column(u'comment', 'node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='comments', null=True, to=orm['forum.Node']), keep_default=False)
+
+        # Adding field 'Answer.node_ptr'
+        db.add_column(u'answer', 'node_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True, null=True), keep_default=False)
+
+        # Adding field 'FlaggedItem.node'
+        db.add_column(u'flagged_item', 'node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='flaggeditems', null=True, to=orm['forum.Node']), keep_default=False)
+
+        # Adding field 'Question.node_ptr'
+        db.add_column(u'question', 'node_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True, null=True), keep_default=False)
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting model 'Node'
+        db.delete_table('forum_node')
+
+        # Removing M2M table for field tags on 'Node'
+        db.delete_table('forum_node_tags')
+
+        # Deleting field 'Vote.node'
+        db.delete_column(u'vote', 'node_id')
+
+        # Deleting field 'Comment.node'
+        db.delete_column(u'comment', 'node_id')
+
+        # Deleting field 'Answer.node_ptr'
+        db.delete_column(u'answer', 'node_ptr_id')
+
+        # Deleting field 'FlaggedItem.node'
+        db.delete_column(u'flagged_item', 'node_id')
+
+        # Deleting field 'Question.node_ptr'
+        db.delete_column(u'question', 'node_ptr_id')
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousanswer': {
+            'Meta': {'object_name': 'AnonymousAnswer'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.anonymousquestion': {
+            'Meta': {'object_name': 'AnonymousQuestion'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.answerrevision': {
+            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},
+            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'text': ('django.db.models.fields.TextField', [], {})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'childs'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionrevision': {
+            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 1, 28, 41, 733000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 1, 28, 41, 976000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index 0e283e0394f3dbed66ba007dc0858bfbdeef6b8d..e952691c020dc6bf3846f3e50b5ad0658d17f9f9 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import DataMigration\r
-from django.db import models\r
-from forum.migrations import ProgressBar\r
-\r
-class Migration(DataMigration):\r
-    \r
-    def forwards(self, orm):\r
-        #Converting questions\r
-        question_count = orm.Question.objects.all().count()\r
-        print "\nConverting %d questions:" % question_count\r
-        progress = ProgressBar(question_count)\r
-\r
-        question_id_map = {}\r
-\r
-        for q in orm.Question.objects.order_by('id'):\r
-            node = orm.Node(\r
-                node_type='question',\r
-                author=q.author,\r
-                added_at=q.added_at,\r
-                score=q.score,\r
-                vote_up_count=q.vote_up_count,\r
-                vote_down_count=q.vote_down_count,\r
-                offensive_flag_count=q.offensive_flag_count,\r
-                last_edited_at=q.last_edited_at,\r
-                last_edited_by=q.last_edited_by,\r
-                title=q.title,\r
-                body=q.html,\r
-                deleted=q.deleted,\r
-                deleted_by=q.deleted_by,\r
-                deleted_at=q.deleted_at,\r
-                tagnames=q.tagnames,\r
-                comment_count=q.comment_count,\r
-            )\r
-\r
-            node.save()\r
-            q.node_ptr = node\r
-            q.save()\r
-            node.tags = q.tags.all()\r
-\r
-            question_id_map[q.id] = node\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-        #Converting answers\r
-        answer_count = orm.Answer.objects.all().count()\r
-        print "Converting %d answers:" % answer_count\r
-        progress = ProgressBar(answer_count)\r
-\r
-        answer_id_map = {}\r
-\r
-        for a in orm.Answer.objects.order_by('id'):\r
-            node = orm.Node(\r
-                node_type='answer',\r
-                parent=question_id_map[a.question.id],\r
-                author=a.author,\r
-                added_at=a.added_at,\r
-                score=a.score,\r
-                vote_up_count=a.vote_up_count,\r
-                vote_down_count=a.vote_down_count,\r
-                offensive_flag_count=a.offensive_flag_count,\r
-                last_edited_at=a.last_edited_at,\r
-                last_edited_by=a.last_edited_by,\r
-                body=a.html,\r
-                deleted=a.deleted,\r
-                deleted_by=a.deleted_by,\r
-                deleted_at=a.deleted_at,\r
-                comment_count=a.comment_count,\r
-            )\r
-\r
-            node.save()\r
-            a.node_ptr = node\r
-            a.save()\r
-            answer_id_map[a.id] = node\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-        ctypes = dict([(ct.name, ct.id) for ct in orm['contenttypes.ContentType'].objects.all()])\r
-\r
-        #Converting votes\r
-        vote_count = orm.Vote.objects.all().count()\r
-        print "Converting %d vote references:" % vote_count\r
-        progress = ProgressBar(vote_count)\r
-        orfan_count = 0\r
-\r
-        for v in orm.Vote.objects.all():\r
-            node = (v.content_type.id == ctypes['question']) and question_id_map.get(v.object_id, None) \\r
-                                                             or answer_id_map.get(v.object_id, None)\r
-\r
-            if node:\r
-                v.node = node\r
-                v.save()\r
-            else:\r
-                v.delete()\r
-                orfan_count += 1\r
-\r
-            progress.update()\r
-\r
-        if orfan_count:\r
-            print "Deleted %d orfan votes"\r
-\r
-        print "\n...done\n"\r
-\r
-        #Converting flags\r
-        flag_count = orm.FlaggedItem.objects.all().count()\r
-        print "Converting %d flag references:" % flag_count\r
-        progress = ProgressBar(flag_count)\r
-        orfan_count = 0\r
-\r
-        for f in orm.FlaggedItem.objects.all():\r
-            node = (f.content_type.id == ctypes['question']) and question_id_map.get(f.object_id, None) \\r
-                                                             or answer_id_map.get(f.object_id, None)\r
-\r
-            if node:\r
-                f.node = node\r
-                f.save()\r
-            else:\r
-                f.delete()\r
-                orfan_count += 1\r
-\r
-            progress.update()\r
-\r
-        if orfan_count:\r
-            print "Deleted %d orfan votes"\r
-\r
-        print "\n...done\n"\r
-\r
-        #Converting comments\r
-        comment_count = orm.Comment.objects.all().count()\r
-        print "Converting %d comment references:" % comment_count\r
-        progress = ProgressBar(comment_count)\r
-        orfan_count = 0\r
-\r
-        for c in orm.Comment.objects.all():\r
-            node = (c.content_type.id == ctypes['question']) and question_id_map.get(c.object_id, None) \\r
-                                                             or answer_id_map.get(c.object_id, None)\r
-\r
-            if node:\r
-                c.node = node\r
-                c.save()\r
-            else:\r
-                c.delete()\r
-                orfan_count += 1\r
-\r
-            progress.update()\r
-\r
-        if orfan_count:\r
-            print "Deleted %d orfan comments"\r
-\r
-        print "\n...done\n"\r
-\r
-\r
-        #Converting awards\r
-        awards = orm.Award.objects.filter(content_type__id__in=(ctypes['question'], ctypes['answer']))\r
-        award_count = awards.count()\r
-        print "Converting %d award references:" % award_count\r
-        progress = ProgressBar(award_count)\r
-\r
-        for a in awards:\r
-            node = (a.content_type.id == ctypes['question']) and question_id_map.get(a.object_id, None) \\r
-                                                             or answer_id_map.get(a.object_id, None)\r
-\r
-            if node:\r
-                a.object_id = node.id\r
-                a.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-\r
-        #Converting activity\r
-        activities = orm.Activity.objects.filter(content_type__id__in=(ctypes['question'], ctypes['answer']))\r
-        activity_count = activities.count()\r
-        print "Converting %d activity references:" % activity_count\r
-        progress = ProgressBar(activity_count)\r
-\r
-        for a in activities:\r
-            node = (a.content_type.id == ctypes['question']) and question_id_map.get(a.object_id, None) \\r
-                                                             or answer_id_map.get(a.object_id, None)\r
-\r
-            if node:\r
-                a.object_id = node.id\r
-                a.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        "Write your backwards methods here."\r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousanswer': {\r
-            'Meta': {'object_name': 'AnonymousAnswer'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.anonymousquestion': {\r
-            'Meta': {'object_name': 'AnonymousQuestion'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.answerrevision': {\r
-            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},\r
-            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'text': ('django.db.models.fields.TextField', [], {})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'childs'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionrevision': {\r
-            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 1, 29, 43, 727000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 1, 29, 43, 815000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+from forum.migrations import ProgressBar
+
+class Migration(DataMigration):
+    
+    def forwards(self, orm):
+        #Converting questions
+        question_count = orm.Question.objects.all().count()
+        print "\nConverting %d questions:" % question_count
+        progress = ProgressBar(question_count)
+
+        question_id_map = {}
+
+        for q in orm.Question.objects.order_by('id'):
+            node = orm.Node(
+                node_type='question',
+                author=q.author,
+                added_at=q.added_at,
+                score=q.score,
+                vote_up_count=q.vote_up_count,
+                vote_down_count=q.vote_down_count,
+                offensive_flag_count=q.offensive_flag_count,
+                last_edited_at=q.last_edited_at,
+                last_edited_by=q.last_edited_by,
+                title=q.title,
+                body=q.html,
+                deleted=q.deleted,
+                deleted_by=q.deleted_by,
+                deleted_at=q.deleted_at,
+                tagnames=q.tagnames,
+                comment_count=q.comment_count,
+            )
+
+            node.save()
+            q.node_ptr = node
+            q.save()
+            node.tags = q.tags.all()
+
+            question_id_map[q.id] = node
+            progress.update()
+
+        print "\n...done\n"
+
+        #Converting answers
+        answer_count = orm.Answer.objects.all().count()
+        print "Converting %d answers:" % answer_count
+        progress = ProgressBar(answer_count)
+
+        answer_id_map = {}
+
+        for a in orm.Answer.objects.order_by('id'):
+            node = orm.Node(
+                node_type='answer',
+                parent=question_id_map[a.question.id],
+                author=a.author,
+                added_at=a.added_at,
+                score=a.score,
+                vote_up_count=a.vote_up_count,
+                vote_down_count=a.vote_down_count,
+                offensive_flag_count=a.offensive_flag_count,
+                last_edited_at=a.last_edited_at,
+                last_edited_by=a.last_edited_by,
+                body=a.html,
+                deleted=a.deleted,
+                deleted_by=a.deleted_by,
+                deleted_at=a.deleted_at,
+                comment_count=a.comment_count,
+            )
+
+            node.save()
+            a.node_ptr = node
+            a.save()
+            answer_id_map[a.id] = node
+            progress.update()
+
+        print "\n...done\n"
+
+        ctypes = dict([(ct.name, ct.id) for ct in orm['contenttypes.ContentType'].objects.all()])
+
+        #Converting votes
+        vote_count = orm.Vote.objects.all().count()
+        print "Converting %d vote references:" % vote_count
+        progress = ProgressBar(vote_count)
+        orfan_count = 0
+
+        for v in orm.Vote.objects.all():
+            node = (v.content_type.id == ctypes['question']) and question_id_map.get(v.object_id, None) \
+                                                             or answer_id_map.get(v.object_id, None)
+
+            if node:
+                v.node = node
+                v.save()
+            else:
+                v.delete()
+                orfan_count += 1
+
+            progress.update()
+
+        if orfan_count:
+            print "Deleted %d orfan votes"
+
+        print "\n...done\n"
+
+        #Converting flags
+        flag_count = orm.FlaggedItem.objects.all().count()
+        print "Converting %d flag references:" % flag_count
+        progress = ProgressBar(flag_count)
+        orfan_count = 0
+
+        for f in orm.FlaggedItem.objects.all():
+            node = (f.content_type.id == ctypes['question']) and question_id_map.get(f.object_id, None) \
+                                                             or answer_id_map.get(f.object_id, None)
+
+            if node:
+                f.node = node
+                f.save()
+            else:
+                f.delete()
+                orfan_count += 1
+
+            progress.update()
+
+        if orfan_count:
+            print "Deleted %d orfan votes"
+
+        print "\n...done\n"
+
+        #Converting comments
+        comment_count = orm.Comment.objects.all().count()
+        print "Converting %d comment references:" % comment_count
+        progress = ProgressBar(comment_count)
+        orfan_count = 0
+
+        for c in orm.Comment.objects.all():
+            node = (c.content_type.id == ctypes['question']) and question_id_map.get(c.object_id, None) \
+                                                             or answer_id_map.get(c.object_id, None)
+
+            if node:
+                c.node = node
+                c.save()
+            else:
+                c.delete()
+                orfan_count += 1
+
+            progress.update()
+
+        if orfan_count:
+            print "Deleted %d orfan comments"
+
+        print "\n...done\n"
+
+
+        #Converting awards
+        awards = orm.Award.objects.filter(content_type__id__in=(ctypes['question'], ctypes['answer']))
+        award_count = awards.count()
+        print "Converting %d award references:" % award_count
+        progress = ProgressBar(award_count)
+
+        for a in awards:
+            node = (a.content_type.id == ctypes['question']) and question_id_map.get(a.object_id, None) \
+                                                             or answer_id_map.get(a.object_id, None)
+
+            if node:
+                a.object_id = node.id
+                a.save()
+
+            progress.update()
+
+        print "\n...done\n"
+
+
+        #Converting activity
+        activities = orm.Activity.objects.filter(content_type__id__in=(ctypes['question'], ctypes['answer']))
+        activity_count = activities.count()
+        print "Converting %d activity references:" % activity_count
+        progress = ProgressBar(activity_count)
+
+        for a in activities:
+            node = (a.content_type.id == ctypes['question']) and question_id_map.get(a.object_id, None) \
+                                                             or answer_id_map.get(a.object_id, None)
+
+            if node:
+                a.object_id = node.id
+                a.save()
+
+            progress.update()
+
+        print "\n...done\n"
+    
+    
+    def backwards(self, orm):
+        "Write your backwards methods here."
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousanswer': {
+            'Meta': {'object_name': 'AnonymousAnswer'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.anonymousquestion': {
+            'Meta': {'object_name': 'AnonymousQuestion'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.answerrevision': {
+            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},
+            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'text': ('django.db.models.fields.TextField', [], {})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'childs'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionrevision': {
+            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 1, 29, 43, 727000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 1, 29, 43, 815000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index bb944068aff266b9e298ef1e7a39516e8f0596db..141aca123ad045b7d948781ae43a960eb58d5163 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Adding model 'NodeRevision'\r
-        db.create_table('forum_noderevision', (\r
-            ('node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='revisions', to=orm['forum.Node'])),\r
-            ('body', self.gf('django.db.models.fields.TextField')()),\r
-            ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='noderevisions', to=orm['forum.User'])),\r
-            ('tagnames', self.gf('django.db.models.fields.CharField')(max_length=125)),\r
-            ('title', self.gf('django.db.models.fields.CharField')(max_length=300)),\r
-            ('summary', self.gf('django.db.models.fields.CharField')(max_length=300)),\r
-            ('revised_at', self.gf('django.db.models.fields.DateTimeField')()),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('revision', self.gf('django.db.models.fields.PositiveIntegerField')()),\r
-        ))\r
-        db.send_create_signal('forum', ['NodeRevision'])\r
-\r
-        # Deleting field 'Vote.object_id'\r
-        db.delete_column(u'vote', 'object_id')\r
-\r
-        # Deleting field 'Vote.content_type'\r
-        db.delete_column(u'vote', 'content_type_id')\r
-\r
-        # Deleting field 'Comment.object_id'\r
-        db.delete_column(u'comment', 'object_id')\r
-\r
-        # Deleting field 'Comment.content_type'\r
-        db.delete_column(u'comment', 'content_type_id')\r
-\r
-        # Deleting field 'FlaggedItem.object_id'\r
-        db.delete_column(u'flagged_item', 'object_id')\r
-\r
-        # Deleting field 'FlaggedItem.content_type'\r
-        db.delete_column(u'flagged_item', 'content_type_id')\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Deleting model 'NodeRevision'\r
-        db.delete_table('forum_noderevision')\r
-\r
-        # Adding field 'Vote.object_id'\r
-        db.add_column(u'vote', 'object_id', self.gf('django.db.models.fields.PositiveIntegerField')(default=1), keep_default=False)\r
-\r
-        # Adding field 'Vote.content_type'\r
-        db.add_column(u'vote', 'content_type', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['contenttypes.ContentType']), keep_default=False)\r
-\r
-        # Adding field 'Comment.object_id'\r
-        db.add_column(u'comment', 'object_id', self.gf('django.db.models.fields.PositiveIntegerField')(default=1), keep_default=False)\r
-\r
-        # Adding field 'Comment.content_type'\r
-        db.add_column(u'comment', 'content_type', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['contenttypes.ContentType']), keep_default=False)\r
-\r
-        # Adding field 'FlaggedItem.object_id'\r
-        db.add_column(u'flagged_item', 'object_id', self.gf('django.db.models.fields.PositiveIntegerField')(default=1), keep_default=False)\r
-\r
-        # Adding field 'FlaggedItem.content_type'\r
-        db.add_column(u'flagged_item', 'content_type', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['contenttypes.ContentType']), keep_default=False)\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousanswer': {\r
-            'Meta': {'object_name': 'AnonymousAnswer'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.anonymousquestion': {\r
-            'Meta': {'object_name': 'AnonymousQuestion'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.answerrevision': {\r
-            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},\r
-            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'text': ('django.db.models.fields.TextField', [], {})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'childs'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionrevision': {\r
-            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 12, 14, 26, 755000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 12, 14, 35, 357000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Adding model 'NodeRevision'
+        db.create_table('forum_noderevision', (
+            ('node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='revisions', to=orm['forum.Node'])),
+            ('body', self.gf('django.db.models.fields.TextField')()),
+            ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='noderevisions', to=orm['forum.User'])),
+            ('tagnames', self.gf('django.db.models.fields.CharField')(max_length=125)),
+            ('title', self.gf('django.db.models.fields.CharField')(max_length=300)),
+            ('summary', self.gf('django.db.models.fields.CharField')(max_length=300)),
+            ('revised_at', self.gf('django.db.models.fields.DateTimeField')()),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('revision', self.gf('django.db.models.fields.PositiveIntegerField')()),
+        ))
+        db.send_create_signal('forum', ['NodeRevision'])
+
+        # Deleting field 'Vote.object_id'
+        db.delete_column(u'vote', 'object_id')
+
+        # Deleting field 'Vote.content_type'
+        db.delete_column(u'vote', 'content_type_id')
+
+        # Deleting field 'Comment.object_id'
+        db.delete_column(u'comment', 'object_id')
+
+        # Deleting field 'Comment.content_type'
+        db.delete_column(u'comment', 'content_type_id')
+
+        # Deleting field 'FlaggedItem.object_id'
+        db.delete_column(u'flagged_item', 'object_id')
+
+        # Deleting field 'FlaggedItem.content_type'
+        db.delete_column(u'flagged_item', 'content_type_id')
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting model 'NodeRevision'
+        db.delete_table('forum_noderevision')
+
+        # Adding field 'Vote.object_id'
+        db.add_column(u'vote', 'object_id', self.gf('django.db.models.fields.PositiveIntegerField')(default=1), keep_default=False)
+
+        # Adding field 'Vote.content_type'
+        db.add_column(u'vote', 'content_type', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['contenttypes.ContentType']), keep_default=False)
+
+        # Adding field 'Comment.object_id'
+        db.add_column(u'comment', 'object_id', self.gf('django.db.models.fields.PositiveIntegerField')(default=1), keep_default=False)
+
+        # Adding field 'Comment.content_type'
+        db.add_column(u'comment', 'content_type', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['contenttypes.ContentType']), keep_default=False)
+
+        # Adding field 'FlaggedItem.object_id'
+        db.add_column(u'flagged_item', 'object_id', self.gf('django.db.models.fields.PositiveIntegerField')(default=1), keep_default=False)
+
+        # Adding field 'FlaggedItem.content_type'
+        db.add_column(u'flagged_item', 'content_type', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['contenttypes.ContentType']), keep_default=False)
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousanswer': {
+            'Meta': {'object_name': 'AnonymousAnswer'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.anonymousquestion': {
+            'Meta': {'object_name': 'AnonymousQuestion'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.answerrevision': {
+            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},
+            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'text': ('django.db.models.fields.TextField', [], {})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'childs'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionrevision': {
+            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 12, 14, 26, 755000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 12, 14, 35, 357000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index 6b06ed98f80be861e4332a55f7d6348171c767ba..c057dad3c5f8a31ba5af6056a91f6fca902fd407 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import DataMigration\r
-from django.db import models\r
-from forum.migrations import ProgressBar\r
-\r
-class Migration(DataMigration):\r
-    \r
-    def forwards(self, orm):\r
-        #Converting question revisions\r
-        qr_count = orm.QuestionRevision.objects.all().count()\r
-        print "\nConverting %d question revisions:" % qr_count\r
-        progress = ProgressBar(qr_count)\r
-\r
-        for q in orm.QuestionRevision.objects.order_by('id'):\r
-            revision = orm.NodeRevision(\r
-                node=q.question.node_ptr,\r
-                title=q.title,\r
-                summary=q.summary,\r
-                tagnames=q.tagnames,\r
-                revision=q.revision,\r
-                author=q.author,\r
-                revised_at=q.revised_at,\r
-                body=q.text,\r
-            )\r
-\r
-            revision.save()\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-\r
-        #Converting answer revisions\r
-        ar_count = orm.AnswerRevision.objects.all().count()\r
-        print "\nConverting %d answer revisions:" % ar_count\r
-        progress = ProgressBar(ar_count)\r
-\r
-        for a in orm.AnswerRevision.objects.order_by('id'):\r
-            revision = orm.NodeRevision(\r
-                summary=a.summary,\r
-                node=a.answer.node_ptr,\r
-                revision=a.revision,\r
-                author=a.author,\r
-                revised_at=a.revised_at,\r
-                body=a.text,\r
-            )\r
-\r
-            revision.save()\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        "Write your backwards methods here."\r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousanswer': {\r
-            'Meta': {'object_name': 'AnonymousAnswer'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.anonymousquestion': {\r
-            'Meta': {'object_name': 'AnonymousQuestion'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.answerrevision': {\r
-            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},\r
-            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'text': ('django.db.models.fields.TextField', [], {})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'childs'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),\r
-            'html': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionrevision': {\r
-            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 12, 14, 26, 755000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 12, 14, 35, 357000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+from forum.migrations import ProgressBar
+
+class Migration(DataMigration):
+    
+    def forwards(self, orm):
+        #Converting question revisions
+        qr_count = orm.QuestionRevision.objects.all().count()
+        print "\nConverting %d question revisions:" % qr_count
+        progress = ProgressBar(qr_count)
+
+        for q in orm.QuestionRevision.objects.order_by('id'):
+            revision = orm.NodeRevision(
+                node=q.question.node_ptr,
+                title=q.title,
+                summary=q.summary,
+                tagnames=q.tagnames,
+                revision=q.revision,
+                author=q.author,
+                revised_at=q.revised_at,
+                body=q.text,
+            )
+
+            revision.save()
+            progress.update()
+
+        print "\n...done\n"
+
+
+        #Converting answer revisions
+        ar_count = orm.AnswerRevision.objects.all().count()
+        print "\nConverting %d answer revisions:" % ar_count
+        progress = ProgressBar(ar_count)
+
+        for a in orm.AnswerRevision.objects.order_by('id'):
+            revision = orm.NodeRevision(
+                summary=a.summary,
+                node=a.answer.node_ptr,
+                revision=a.revision,
+                author=a.author,
+                revised_at=a.revised_at,
+                body=a.text,
+            )
+
+            revision.save()
+            progress.update()
+
+        print "\n...done\n"
+    
+    
+    def backwards(self, orm):
+        "Write your backwards methods here."
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousanswer': {
+            'Meta': {'object_name': 'AnonymousAnswer'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.anonymousquestion': {
+            'Meta': {'object_name': 'AnonymousQuestion'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.answerrevision': {
+            'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},
+            'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'text': ('django.db.models.fields.TextField', [], {})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'childs'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),
+            'html': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionrevision': {
+            'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 12, 14, 26, 755000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 12, 14, 35, 357000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index 8baaf67203729b9f2f267f9c2e1b4650670305b3..589565b026101f748ea011ea5fa3d58f405aaa2e 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Deleting model 'QuestionRevision'\r
-        db.delete_table(u'question_revision')\r
-\r
-        # Deleting model 'AnswerRevision'\r
-        db.delete_table(u'answer_revision')\r
-\r
-        # Deleting field 'Answer.vote_up_count'\r
-        db.delete_column(u'answer', 'vote_up_count')\r
-\r
-        # Deleting field 'Answer.author'\r
-        db.delete_column(u'answer', 'author_id')\r
-\r
-        # Deleting field 'Answer.deleted'\r
-        db.delete_column(u'answer', 'deleted')\r
-\r
-        # Deleting field 'Answer.question'\r
-        db.delete_column(u'answer', 'question_id')\r
-\r
-        # Deleting field 'Answer.html'\r
-        db.delete_column(u'answer', 'html')\r
-\r
-        # Deleting field 'Answer.offensive_flag_count'\r
-        db.delete_column(u'answer', 'offensive_flag_count')\r
-\r
-        # Deleting field 'Answer.deleted_by'\r
-        db.delete_column(u'answer', 'deleted_by_id')\r
-\r
-        # Deleting field 'Answer.comment_count'\r
-        db.delete_column(u'answer', 'comment_count')\r
-\r
-        # Deleting field 'Answer.score'\r
-        db.delete_column(u'answer', 'score')\r
-\r
-        # Deleting field 'Answer.vote_down_count'\r
-        db.delete_column(u'answer', 'vote_down_count')\r
-\r
-        # Deleting field 'Answer.added_at'\r
-        db.delete_column(u'answer', 'added_at')\r
-\r
-        # Deleting field 'Answer.last_edited_by'\r
-        db.delete_column(u'answer', 'last_edited_by_id')\r
-\r
-        # Deleting field 'Answer.deleted_at'\r
-        db.delete_column(u'answer', 'deleted_at')\r
-\r
-        # Deleting field 'Answer.id'\r
-        db.delete_column(u'answer', 'id')\r
-\r
-        # Deleting field 'Answer.last_edited_at'\r
-        db.delete_column(u'answer', 'last_edited_at')\r
-\r
-        # Changing field 'Answer.node_ptr'\r
-        db.alter_column(u'answer', 'node_ptr_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True))\r
-        db.create_primary_key(u'answer', ['node_ptr_id'])\r
-\r
-        # Deleting field 'Question.vote_up_count'\r
-        db.delete_column(u'question', 'vote_up_count')\r
-\r
-        # Deleting field 'Question.offensive_flag_count'\r
-        db.delete_column(u'question', 'offensive_flag_count')\r
-\r
-        # Deleting field 'Question.summary'\r
-        db.delete_column(u'question', 'summary')\r
-\r
-        # Deleting field 'Question.id'\r
-        db.delete_column(u'question', 'id')\r
-\r
-        # Deleting field 'Question.deleted_at'\r
-        db.delete_column(u'question', 'deleted_at')\r
-\r
-        # Deleting field 'Question.score'\r
-        db.delete_column(u'question', 'score')\r
-\r
-        # Deleting field 'Question.author'\r
-        db.delete_column(u'question', 'author_id')\r
-\r
-        # Deleting field 'Question.comment_count'\r
-        db.delete_column(u'question', 'comment_count')\r
-\r
-        # Deleting field 'Question.html'\r
-        db.delete_column(u'question', 'html')\r
-\r
-        # Deleting field 'Question.vote_down_count'\r
-        db.delete_column(u'question', 'vote_down_count')\r
-\r
-        # Deleting field 'Question.last_edited_by'\r
-        db.delete_column(u'question', 'last_edited_by_id')\r
-\r
-        # Deleting field 'Question.deleted'\r
-        db.delete_column(u'question', 'deleted')\r
-\r
-        # Deleting field 'Question.tagnames'\r
-        db.delete_column(u'question', 'tagnames')\r
-\r
-        # Deleting field 'Question.title'\r
-        db.delete_column(u'question', 'title')\r
-\r
-        # Deleting field 'Question.added_at'\r
-        db.delete_column(u'question', 'added_at')\r
-\r
-        # Deleting field 'Question.deleted_by'\r
-        db.delete_column(u'question', 'deleted_by_id')\r
-\r
-        # Deleting field 'Question.last_edited_at'\r
-        db.delete_column(u'question', 'last_edited_at')\r
-\r
-        # Removing M2M table for field followed_by on 'Question'\r
-        db.delete_table('question_followed_by')\r
-\r
-        # Removing M2M table for field tags on 'Question'\r
-        db.delete_table('question_tags')\r
-\r
-        # Changing field 'Question.node_ptr'\r
-        db.alter_column(u'question', 'node_ptr_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True))\r
-        db.create_primary_key(u'question', ['node_ptr_id'])        \r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Adding model 'QuestionRevision'\r
-        db.create_table(u'question_revision', (\r
-            ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='questionrevisions', to=orm['forum.User'])),\r
-            ('tagnames', self.gf('django.db.models.fields.CharField')(max_length=125)),\r
-            ('text', self.gf('django.db.models.fields.TextField')()),\r
-            ('title', self.gf('django.db.models.fields.CharField')(max_length=300)),\r
-            ('question', self.gf('django.db.models.fields.related.ForeignKey')(related_name='revisions', to=orm['forum.Question'])),\r
-            ('revised_at', self.gf('django.db.models.fields.DateTimeField')()),\r
-            ('summary', self.gf('django.db.models.fields.CharField')(max_length=300, blank=True)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('revision', self.gf('django.db.models.fields.PositiveIntegerField')()),\r
-        ))\r
-        db.send_create_signal('forum', ['QuestionRevision'])\r
-\r
-        # Adding model 'AnswerRevision'\r
-        db.create_table(u'answer_revision', (\r
-            ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='answerrevisions', to=orm['forum.User'])),\r
-            ('text', self.gf('django.db.models.fields.TextField')()),\r
-            ('revised_at', self.gf('django.db.models.fields.DateTimeField')()),\r
-            ('summary', self.gf('django.db.models.fields.CharField')(max_length=300, blank=True)),\r
-            ('answer', self.gf('django.db.models.fields.related.ForeignKey')(related_name='revisions', to=orm['forum.Answer'])),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('revision', self.gf('django.db.models.fields.PositiveIntegerField')()),\r
-        ))\r
-        db.send_create_signal('forum', ['AnswerRevision'])\r
-\r
-        # Adding field 'Answer.vote_up_count'\r
-        db.add_column(u'answer', 'vote_up_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Answer.author'\r
-        db.add_column(u'answer', 'author', self.gf('django.db.models.fields.related.ForeignKey')(default=1, related_name='answers', to=orm['forum.User']), keep_default=False)\r
-\r
-        # Adding field 'Answer.deleted'\r
-        db.add_column(u'answer', 'deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-\r
-        # Adding field 'Answer.question'\r
-        db.add_column(u'answer', 'question', self.gf('django.db.models.fields.related.ForeignKey')(default=1, related_name='answers', to=orm['forum.Question']), keep_default=False)\r
-\r
-        # Adding field 'Answer.html'\r
-        db.add_column(u'answer', 'html', self.gf('django.db.models.fields.TextField')(default=1), keep_default=False)\r
-\r
-        # Adding field 'Answer.offensive_flag_count'\r
-        db.add_column(u'answer', 'offensive_flag_count', self.gf('django.db.models.fields.SmallIntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Answer.deleted_by'\r
-        db.add_column(u'answer', 'deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='deleted_answers', null=True, to=orm['forum.User'], blank=True), keep_default=False)\r
-\r
-        # Adding field 'Answer.comment_count'\r
-        db.add_column(u'answer', 'comment_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Answer.score'\r
-        db.add_column(u'answer', 'score', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Answer.vote_down_count'\r
-        db.add_column(u'answer', 'vote_down_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Answer.added_at'\r
-        db.add_column(u'answer', 'added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now), keep_default=False)\r
-\r
-        # Adding field 'Answer.last_edited_by'\r
-        db.add_column(u'answer', 'last_edited_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='last_edited_answers', null=True, to=orm['forum.User'], blank=True), keep_default=False)\r
-\r
-        # Adding field 'Answer.deleted_at'\r
-        db.add_column(u'answer', 'deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)\r
-\r
-        # Adding field 'Answer.id'\r
-        db.add_column(u'answer', 'id', self.gf('django.db.models.fields.AutoField')(default=1, primary_key=True), keep_default=False)\r
-\r
-        # Adding field 'Answer.last_edited_at'\r
-        db.add_column(u'answer', 'last_edited_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)\r
-\r
-        # Changing field 'Answer.node_ptr'\r
-        db.alter_column(u'answer', 'node_ptr_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True, null=True))\r
-\r
-        # Adding field 'Question.vote_up_count'\r
-        db.add_column(u'question', 'vote_up_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Question.offensive_flag_count'\r
-        db.add_column(u'question', 'offensive_flag_count', self.gf('django.db.models.fields.SmallIntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Question.summary'\r
-        db.add_column(u'question', 'summary', self.gf('django.db.models.fields.CharField')(default=1, max_length=180), keep_default=False)\r
-\r
-        # Adding field 'Question.id'\r
-        db.add_column(u'question', 'id', self.gf('django.db.models.fields.AutoField')(default=1, primary_key=True), keep_default=False)\r
-\r
-        # Adding field 'Question.deleted_at'\r
-        db.add_column(u'question', 'deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)\r
-\r
-        # Adding field 'Question.score'\r
-        db.add_column(u'question', 'score', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Question.author'\r
-        db.add_column(u'question', 'author', self.gf('django.db.models.fields.related.ForeignKey')(default=1, related_name='questions', to=orm['forum.User']), keep_default=False)\r
-\r
-        # Adding field 'Question.comment_count'\r
-        db.add_column(u'question', 'comment_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Question.html'\r
-        db.add_column(u'question', 'html', self.gf('django.db.models.fields.TextField')(default=1), keep_default=False)\r
-\r
-        # Adding field 'Question.vote_down_count'\r
-        db.add_column(u'question', 'vote_down_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Question.last_edited_by'\r
-        db.add_column(u'question', 'last_edited_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='last_edited_questions', null=True, to=orm['forum.User'], blank=True), keep_default=False)\r
-\r
-        # Adding field 'Question.deleted'\r
-        db.add_column(u'question', 'deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-\r
-        # Adding field 'Question.tagnames'\r
-        db.add_column(u'question', 'tagnames', self.gf('django.db.models.fields.CharField')(default=1, max_length=125), keep_default=False)\r
-\r
-        # Adding field 'Question.title'\r
-        db.add_column(u'question', 'title', self.gf('django.db.models.fields.CharField')(default=1, max_length=300), keep_default=False)\r
-\r
-        # Adding field 'Question.added_at'\r
-        db.add_column(u'question', 'added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now), keep_default=False)\r
-\r
-        # Adding field 'Question.deleted_by'\r
-        db.add_column(u'question', 'deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='deleted_questions', null=True, to=orm['forum.User'], blank=True), keep_default=False)\r
-\r
-        # Adding field 'Question.last_edited_at'\r
-        db.add_column(u'question', 'last_edited_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)\r
-\r
-        # Adding M2M table for field followed_by on 'Question'\r
-        db.create_table(u'question_followed_by', (\r
-            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),\r
-            ('question', models.ForeignKey(orm['forum.question'], null=False)),\r
-            ('user', models.ForeignKey(orm['forum.user'], null=False))\r
-        ))\r
-        db.create_unique(u'question_followed_by', ['question_id', 'user_id'])\r
-\r
-        # Adding M2M table for field tags on 'Question'\r
-        db.create_table(u'question_tags', (\r
-            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),\r
-            ('question', models.ForeignKey(orm['forum.question'], null=False)),\r
-            ('tag', models.ForeignKey(orm['forum.tag'], null=False))\r
-        ))\r
-        db.create_unique(u'question_tags', ['question_id', 'tag_id'])\r
-\r
-        # Changing field 'Question.node_ptr'\r
-        db.alter_column(u'question', 'node_ptr_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True, null=True))\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousanswer': {\r
-            'Meta': {'object_name': 'AnonymousAnswer'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.anonymousquestion': {\r
-            'Meta': {'object_name': 'AnonymousQuestion'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'childs'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 12, 30, 8, 362000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 12, 30, 22, 477000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Deleting model 'QuestionRevision'
+        db.delete_table(u'question_revision')
+
+        # Deleting model 'AnswerRevision'
+        db.delete_table(u'answer_revision')
+
+        # Deleting field 'Answer.vote_up_count'
+        db.delete_column(u'answer', 'vote_up_count')
+
+        # Deleting field 'Answer.author'
+        db.delete_column(u'answer', 'author_id')
+
+        # Deleting field 'Answer.deleted'
+        db.delete_column(u'answer', 'deleted')
+
+        # Deleting field 'Answer.question'
+        db.delete_column(u'answer', 'question_id')
+
+        # Deleting field 'Answer.html'
+        db.delete_column(u'answer', 'html')
+
+        # Deleting field 'Answer.offensive_flag_count'
+        db.delete_column(u'answer', 'offensive_flag_count')
+
+        # Deleting field 'Answer.deleted_by'
+        db.delete_column(u'answer', 'deleted_by_id')
+
+        # Deleting field 'Answer.comment_count'
+        db.delete_column(u'answer', 'comment_count')
+
+        # Deleting field 'Answer.score'
+        db.delete_column(u'answer', 'score')
+
+        # Deleting field 'Answer.vote_down_count'
+        db.delete_column(u'answer', 'vote_down_count')
+
+        # Deleting field 'Answer.added_at'
+        db.delete_column(u'answer', 'added_at')
+
+        # Deleting field 'Answer.last_edited_by'
+        db.delete_column(u'answer', 'last_edited_by_id')
+
+        # Deleting field 'Answer.deleted_at'
+        db.delete_column(u'answer', 'deleted_at')
+
+        # Deleting field 'Answer.id'
+        db.delete_column(u'answer', 'id')
+
+        # Deleting field 'Answer.last_edited_at'
+        db.delete_column(u'answer', 'last_edited_at')
+
+        # Changing field 'Answer.node_ptr'
+        db.alter_column(u'answer', 'node_ptr_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True))
+        db.create_primary_key(u'answer', ['node_ptr_id'])
+
+        # Deleting field 'Question.vote_up_count'
+        db.delete_column(u'question', 'vote_up_count')
+
+        # Deleting field 'Question.offensive_flag_count'
+        db.delete_column(u'question', 'offensive_flag_count')
+
+        # Deleting field 'Question.summary'
+        db.delete_column(u'question', 'summary')
+
+        # Deleting field 'Question.id'
+        db.delete_column(u'question', 'id')
+
+        # Deleting field 'Question.deleted_at'
+        db.delete_column(u'question', 'deleted_at')
+
+        # Deleting field 'Question.score'
+        db.delete_column(u'question', 'score')
+
+        # Deleting field 'Question.author'
+        db.delete_column(u'question', 'author_id')
+
+        # Deleting field 'Question.comment_count'
+        db.delete_column(u'question', 'comment_count')
+
+        # Deleting field 'Question.html'
+        db.delete_column(u'question', 'html')
+
+        # Deleting field 'Question.vote_down_count'
+        db.delete_column(u'question', 'vote_down_count')
+
+        # Deleting field 'Question.last_edited_by'
+        db.delete_column(u'question', 'last_edited_by_id')
+
+        # Deleting field 'Question.deleted'
+        db.delete_column(u'question', 'deleted')
+
+        # Deleting field 'Question.tagnames'
+        db.delete_column(u'question', 'tagnames')
+
+        # Deleting field 'Question.title'
+        db.delete_column(u'question', 'title')
+
+        # Deleting field 'Question.added_at'
+        db.delete_column(u'question', 'added_at')
+
+        # Deleting field 'Question.deleted_by'
+        db.delete_column(u'question', 'deleted_by_id')
+
+        # Deleting field 'Question.last_edited_at'
+        db.delete_column(u'question', 'last_edited_at')
+
+        # Removing M2M table for field followed_by on 'Question'
+        db.delete_table('question_followed_by')
+
+        # Removing M2M table for field tags on 'Question'
+        db.delete_table('question_tags')
+
+        # Changing field 'Question.node_ptr'
+        db.alter_column(u'question', 'node_ptr_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True))
+        db.create_primary_key(u'question', ['node_ptr_id'])        
+    
+    
+    def backwards(self, orm):
+        
+        # Adding model 'QuestionRevision'
+        db.create_table(u'question_revision', (
+            ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='questionrevisions', to=orm['forum.User'])),
+            ('tagnames', self.gf('django.db.models.fields.CharField')(max_length=125)),
+            ('text', self.gf('django.db.models.fields.TextField')()),
+            ('title', self.gf('django.db.models.fields.CharField')(max_length=300)),
+            ('question', self.gf('django.db.models.fields.related.ForeignKey')(related_name='revisions', to=orm['forum.Question'])),
+            ('revised_at', self.gf('django.db.models.fields.DateTimeField')()),
+            ('summary', self.gf('django.db.models.fields.CharField')(max_length=300, blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('revision', self.gf('django.db.models.fields.PositiveIntegerField')()),
+        ))
+        db.send_create_signal('forum', ['QuestionRevision'])
+
+        # Adding model 'AnswerRevision'
+        db.create_table(u'answer_revision', (
+            ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='answerrevisions', to=orm['forum.User'])),
+            ('text', self.gf('django.db.models.fields.TextField')()),
+            ('revised_at', self.gf('django.db.models.fields.DateTimeField')()),
+            ('summary', self.gf('django.db.models.fields.CharField')(max_length=300, blank=True)),
+            ('answer', self.gf('django.db.models.fields.related.ForeignKey')(related_name='revisions', to=orm['forum.Answer'])),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('revision', self.gf('django.db.models.fields.PositiveIntegerField')()),
+        ))
+        db.send_create_signal('forum', ['AnswerRevision'])
+
+        # Adding field 'Answer.vote_up_count'
+        db.add_column(u'answer', 'vote_up_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Answer.author'
+        db.add_column(u'answer', 'author', self.gf('django.db.models.fields.related.ForeignKey')(default=1, related_name='answers', to=orm['forum.User']), keep_default=False)
+
+        # Adding field 'Answer.deleted'
+        db.add_column(u'answer', 'deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Answer.question'
+        db.add_column(u'answer', 'question', self.gf('django.db.models.fields.related.ForeignKey')(default=1, related_name='answers', to=orm['forum.Question']), keep_default=False)
+
+        # Adding field 'Answer.html'
+        db.add_column(u'answer', 'html', self.gf('django.db.models.fields.TextField')(default=1), keep_default=False)
+
+        # Adding field 'Answer.offensive_flag_count'
+        db.add_column(u'answer', 'offensive_flag_count', self.gf('django.db.models.fields.SmallIntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Answer.deleted_by'
+        db.add_column(u'answer', 'deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='deleted_answers', null=True, to=orm['forum.User'], blank=True), keep_default=False)
+
+        # Adding field 'Answer.comment_count'
+        db.add_column(u'answer', 'comment_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Answer.score'
+        db.add_column(u'answer', 'score', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Answer.vote_down_count'
+        db.add_column(u'answer', 'vote_down_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Answer.added_at'
+        db.add_column(u'answer', 'added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now), keep_default=False)
+
+        # Adding field 'Answer.last_edited_by'
+        db.add_column(u'answer', 'last_edited_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='last_edited_answers', null=True, to=orm['forum.User'], blank=True), keep_default=False)
+
+        # Adding field 'Answer.deleted_at'
+        db.add_column(u'answer', 'deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Answer.id'
+        db.add_column(u'answer', 'id', self.gf('django.db.models.fields.AutoField')(default=1, primary_key=True), keep_default=False)
+
+        # Adding field 'Answer.last_edited_at'
+        db.add_column(u'answer', 'last_edited_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Changing field 'Answer.node_ptr'
+        db.alter_column(u'answer', 'node_ptr_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True, null=True))
+
+        # Adding field 'Question.vote_up_count'
+        db.add_column(u'question', 'vote_up_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Question.offensive_flag_count'
+        db.add_column(u'question', 'offensive_flag_count', self.gf('django.db.models.fields.SmallIntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Question.summary'
+        db.add_column(u'question', 'summary', self.gf('django.db.models.fields.CharField')(default=1, max_length=180), keep_default=False)
+
+        # Adding field 'Question.id'
+        db.add_column(u'question', 'id', self.gf('django.db.models.fields.AutoField')(default=1, primary_key=True), keep_default=False)
+
+        # Adding field 'Question.deleted_at'
+        db.add_column(u'question', 'deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Question.score'
+        db.add_column(u'question', 'score', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Question.author'
+        db.add_column(u'question', 'author', self.gf('django.db.models.fields.related.ForeignKey')(default=1, related_name='questions', to=orm['forum.User']), keep_default=False)
+
+        # Adding field 'Question.comment_count'
+        db.add_column(u'question', 'comment_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Question.html'
+        db.add_column(u'question', 'html', self.gf('django.db.models.fields.TextField')(default=1), keep_default=False)
+
+        # Adding field 'Question.vote_down_count'
+        db.add_column(u'question', 'vote_down_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Question.last_edited_by'
+        db.add_column(u'question', 'last_edited_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='last_edited_questions', null=True, to=orm['forum.User'], blank=True), keep_default=False)
+
+        # Adding field 'Question.deleted'
+        db.add_column(u'question', 'deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Question.tagnames'
+        db.add_column(u'question', 'tagnames', self.gf('django.db.models.fields.CharField')(default=1, max_length=125), keep_default=False)
+
+        # Adding field 'Question.title'
+        db.add_column(u'question', 'title', self.gf('django.db.models.fields.CharField')(default=1, max_length=300), keep_default=False)
+
+        # Adding field 'Question.added_at'
+        db.add_column(u'question', 'added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now), keep_default=False)
+
+        # Adding field 'Question.deleted_by'
+        db.add_column(u'question', 'deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='deleted_questions', null=True, to=orm['forum.User'], blank=True), keep_default=False)
+
+        # Adding field 'Question.last_edited_at'
+        db.add_column(u'question', 'last_edited_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding M2M table for field followed_by on 'Question'
+        db.create_table(u'question_followed_by', (
+            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+            ('question', models.ForeignKey(orm['forum.question'], null=False)),
+            ('user', models.ForeignKey(orm['forum.user'], null=False))
+        ))
+        db.create_unique(u'question_followed_by', ['question_id', 'user_id'])
+
+        # Adding M2M table for field tags on 'Question'
+        db.create_table(u'question_tags', (
+            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+            ('question', models.ForeignKey(orm['forum.question'], null=False)),
+            ('tag', models.ForeignKey(orm['forum.tag'], null=False))
+        ))
+        db.create_unique(u'question_tags', ['question_id', 'tag_id'])
+
+        # Changing field 'Question.node_ptr'
+        db.alter_column(u'question', 'node_ptr_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True, null=True))
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousanswer': {
+            'Meta': {'object_name': 'AnonymousAnswer'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.anonymousquestion': {
+            'Meta': {'object_name': 'AnonymousQuestion'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'childs'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 12, 30, 8, 362000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 12, 30, 22, 477000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index 940f37f58ca62df0194439e29cfac5dc6d7c3b2a..20dcc1f768ad764f1ea8a04bfd9191a1373e1357 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Adding field 'Node.active_revision'\r
-        db.add_column('forum_node', 'active_revision', self.gf('django.db.models.fields.related.OneToOneField')(related_name='active', unique=True, null=True, to=orm['forum.NodeRevision']), keep_default=False)\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Deleting field 'Node.active_revision'\r
-        db.delete_column('forum_node', 'active_revision_id')\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousanswer': {\r
-            'Meta': {'object_name': 'AnonymousAnswer'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.anonymousquestion': {\r
-            'Meta': {'object_name': 'AnonymousQuestion'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 17, 56, 17, 351000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 17, 56, 17, 557000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Adding field 'Node.active_revision'
+        db.add_column('forum_node', 'active_revision', self.gf('django.db.models.fields.related.OneToOneField')(related_name='active', unique=True, null=True, to=orm['forum.NodeRevision']), keep_default=False)
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting field 'Node.active_revision'
+        db.delete_column('forum_node', 'active_revision_id')
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousanswer': {
+            'Meta': {'object_name': 'AnonymousAnswer'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.anonymousquestion': {
+            'Meta': {'object_name': 'AnonymousQuestion'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 17, 56, 17, 351000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 17, 56, 17, 557000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index 24c419a7d0ee1beed5072f4c0a6ba9eb21110523..95fcd443e0e66424a3c6dc354cb7be13b8cab785 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import DataMigration\r
-from django.db import models\r
-\r
-class Migration(DataMigration):\r
-    \r
-    def forwards(self, orm):\r
-        for n in orm.Node.objects.all():\r
-            try:\r
-                n.active_revision = n.revisions.order_by('-id')[0]\r
-                n.save()\r
-            except:\r
-                r = orm.NodeRevision(author=n.author, body=n.body, title=n.title, revised_at=datetime.datetime.now(),\r
-                                 tagnames=n.tagnames, summary='Initial Revision', revision=1, node=n)\r
-                r.save()\r
-                n.active_revision = r\r
-                n.save()\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        "Write your backwards methods here."\r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousanswer': {\r
-            'Meta': {'object_name': 'AnonymousAnswer'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.anonymousquestion': {\r
-            'Meta': {'object_name': 'AnonymousQuestion'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),\r
-            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'text': ('django.db.models.fields.TextField', [], {}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 17, 56, 41, 918000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 17, 56, 41, 986000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+
+class Migration(DataMigration):
+    
+    def forwards(self, orm):
+        for n in orm.Node.objects.all():
+            try:
+                n.active_revision = n.revisions.order_by('-id')[0]
+                n.save()
+            except:
+                r = orm.NodeRevision(author=n.author, body=n.body, title=n.title, revised_at=datetime.datetime.now(),
+                                 tagnames=n.tagnames, summary='Initial Revision', revision=1, node=n)
+                r.save()
+                n.active_revision = r
+                n.save()
+    
+    
+    def backwards(self, orm):
+        "Write your backwards methods here."
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousanswer': {
+            'Meta': {'object_name': 'AnonymousAnswer'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.anonymousquestion': {
+            'Meta': {'object_name': 'AnonymousQuestion'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
+            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'text': ('django.db.models.fields.TextField', [], {}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 17, 56, 41, 918000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 17, 56, 41, 986000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index d203297753e45fc12a20b5bdad424802dd0a277c..b4bff64a9f0382b635ce0e0f6b0eb8b63fcc4f0b 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Deleting model 'AnonymousQuestion'\r
-        db.delete_table('forum_anonymousquestion')\r
-\r
-        # Deleting model 'AnonymousAnswer'\r
-        db.delete_table('forum_anonymousanswer')\r
-\r
-        # Adding model 'AnonymousNode'\r
-        db.create_table('forum_anonymousnode', (\r
-            ('convertible_to', self.gf('django.db.models.fields.CharField')(default='node', max_length=16)),\r
-            ('validation_hash', self.gf('django.db.models.fields.related.ForeignKey')(related_name='anonymous_content', to=orm['forum.Node'])),\r
-            ('node_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True, primary_key=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['AnonymousNode'])\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Adding model 'AnonymousQuestion'\r
-        db.create_table('forum_anonymousquestion', (\r
-            ('wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('ip_addr', self.gf('django.db.models.fields.IPAddressField')(max_length=15)),\r
-            ('title', self.gf('django.db.models.fields.CharField')(max_length=300)),\r
-            ('tagnames', self.gf('django.db.models.fields.CharField')(max_length=125)),\r
-            ('text', self.gf('django.db.models.fields.TextField')()),\r
-            ('author', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'], null=True)),\r
-            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('summary', self.gf('django.db.models.fields.CharField')(max_length=180)),\r
-            ('session_key', self.gf('django.db.models.fields.CharField')(max_length=40)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['AnonymousQuestion'])\r
-\r
-        # Adding model 'AnonymousAnswer'\r
-        db.create_table('forum_anonymousanswer', (\r
-            ('wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('ip_addr', self.gf('django.db.models.fields.IPAddressField')(max_length=15)),\r
-            ('author', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'], null=True)),\r
-            ('text', self.gf('django.db.models.fields.TextField')()),\r
-            ('question', self.gf('django.db.models.fields.related.ForeignKey')(related_name='anonymous_answers', to=orm['forum.Question'])),\r
-            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('summary', self.gf('django.db.models.fields.CharField')(max_length=180)),\r
-            ('session_key', self.gf('django.db.models.fields.CharField')(max_length=40)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['AnonymousAnswer'])\r
-\r
-        # Deleting model 'AnonymousNode'\r
-        db.delete_table('forum_anonymousnode')\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousnode': {\r
-            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},\r
-            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 18, 42, 39, 311000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 18, 42, 39, 525000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Deleting model 'AnonymousQuestion'
+        db.delete_table('forum_anonymousquestion')
+
+        # Deleting model 'AnonymousAnswer'
+        db.delete_table('forum_anonymousanswer')
+
+        # Adding model 'AnonymousNode'
+        db.create_table('forum_anonymousnode', (
+            ('convertible_to', self.gf('django.db.models.fields.CharField')(default='node', max_length=16)),
+            ('validation_hash', self.gf('django.db.models.fields.related.ForeignKey')(related_name='anonymous_content', to=orm['forum.Node'])),
+            ('node_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True, primary_key=True)),
+        ))
+        db.send_create_signal('forum', ['AnonymousNode'])
+    
+    
+    def backwards(self, orm):
+        
+        # Adding model 'AnonymousQuestion'
+        db.create_table('forum_anonymousquestion', (
+            ('wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('ip_addr', self.gf('django.db.models.fields.IPAddressField')(max_length=15)),
+            ('title', self.gf('django.db.models.fields.CharField')(max_length=300)),
+            ('tagnames', self.gf('django.db.models.fields.CharField')(max_length=125)),
+            ('text', self.gf('django.db.models.fields.TextField')()),
+            ('author', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'], null=True)),
+            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('summary', self.gf('django.db.models.fields.CharField')(max_length=180)),
+            ('session_key', self.gf('django.db.models.fields.CharField')(max_length=40)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('forum', ['AnonymousQuestion'])
+
+        # Adding model 'AnonymousAnswer'
+        db.create_table('forum_anonymousanswer', (
+            ('wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('ip_addr', self.gf('django.db.models.fields.IPAddressField')(max_length=15)),
+            ('author', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'], null=True)),
+            ('text', self.gf('django.db.models.fields.TextField')()),
+            ('question', self.gf('django.db.models.fields.related.ForeignKey')(related_name='anonymous_answers', to=orm['forum.Question'])),
+            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('summary', self.gf('django.db.models.fields.CharField')(max_length=180)),
+            ('session_key', self.gf('django.db.models.fields.CharField')(max_length=40)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('forum', ['AnonymousAnswer'])
+
+        # Deleting model 'AnonymousNode'
+        db.delete_table('forum_anonymousnode')
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousnode': {
+            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},
+            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 18, 42, 39, 311000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 18, 42, 39, 525000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index e73c960be836a279edcaf1f7f55a02e041055d6a..0079d757b8610be8159f74bd3a3a9b7d72b4011f 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-from django.conf import settings\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Adding field 'Question.accepted_answer'\r
-        db.add_column(u'question', 'accepted_answer', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Answer'], unique=True, null=True), keep_default=False)\r
-\r
-        #if db.backend_name == "postgres" and not "pgfulltext" in settings.DISABLED_MODULES:\r
-        #    db.execute("DROP TRIGGER tsvectorupdate ON question;")\r
-        #    db.execute("ALTER TABLE question DROP COLUMN tsv;")\r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Deleting field 'Question.accepted_answer'\r
-        db.delete_column(u'question', 'accepted_answer_id')\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousnode': {\r
-            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},\r
-            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Answer']", 'unique': 'True', 'null': 'True'}),\r
-            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 16, 11, 5, 41, 763000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 17, 11, 5, 42, 36000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+from django.conf import settings
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Adding field 'Question.accepted_answer'
+        db.add_column(u'question', 'accepted_answer', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Answer'], unique=True, null=True), keep_default=False)
+
+        #if db.backend_name == "postgres" and not "pgfulltext" in settings.DISABLED_MODULES:
+        #    db.execute("DROP TRIGGER tsvectorupdate ON question;")
+        #    db.execute("ALTER TABLE question DROP COLUMN tsv;")
+    
+    def backwards(self, orm):
+        
+        # Deleting field 'Question.accepted_answer'
+        db.delete_column(u'question', 'accepted_answer_id')
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousnode': {
+            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},
+            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Answer']", 'unique': 'True', 'null': 'True'}),
+            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 16, 11, 5, 41, 763000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 17, 11, 5, 42, 36000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index ee98647f99dfa8874e8a1fdef127b499a459c290..df5912b0e0d6e0e1bec5599b74ef3ca4696bff90 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import DataMigration\r
-from django.db import models\r
-from forum.migrations import ProgressBar\r
-\r
-class Migration(DataMigration):\r
-    \r
-    def forwards(self, orm):\r
-        q_count = orm.Node.objects.filter(node_type="question").count()\r
-        print "\nConverting %d questions:" % q_count\r
-        progress = ProgressBar(q_count)\r
-\r
-        for n in orm.Node.objects.filter(node_type="question"):\r
-            q = orm.Question.objects.get(node_ptr=n)\r
-            if q.answer_accepted:\r
-                accepted = list(orm.Answer.objects.filter(node_ptr__parent=n, accepted=True))\r
-\r
-                if len(accepted):\r
-                    accepted = accepted[0]\r
-                    q.accepted_answer = accepted\r
-                else:\r
-                    q.answer_accepted = False\r
-\r
-                q.save()           \r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        "Write your backwards methods here."\r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousnode': {\r
-            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},\r
-            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Answer']", 'unique': 'True', 'null': 'True'}),\r
-            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 16, 11, 6, 44, 202000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 17, 11, 6, 44, 279000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+from forum.migrations import ProgressBar
+
+class Migration(DataMigration):
+    
+    def forwards(self, orm):
+        q_count = orm.Node.objects.filter(node_type="question").count()
+        print "\nConverting %d questions:" % q_count
+        progress = ProgressBar(q_count)
+
+        for n in orm.Node.objects.filter(node_type="question"):
+            q = orm.Question.objects.get(node_ptr=n)
+            if q.answer_accepted:
+                accepted = list(orm.Answer.objects.filter(node_ptr__parent=n, accepted=True))
+
+                if len(accepted):
+                    accepted = accepted[0]
+                    q.accepted_answer = accepted
+                else:
+                    q.answer_accepted = False
+
+                q.save()           
+
+            progress.update()
+
+        print "\n...done\n"
+    
+    
+    def backwards(self, orm):
+        "Write your backwards methods here."
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousnode': {
+            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},
+            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Answer']", 'unique': 'True', 'null': 'True'}),
+            'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 16, 11, 6, 44, 202000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 17, 11, 6, 44, 279000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index efa35d0b944a3fa6fa0241454d8d62652de8cce9..fb9d99af59e2d035585dabe609dbbef589f5abff 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Deleting field 'Question.answer_accepted'\r
-        db.delete_column(u'question', 'answer_accepted')\r
-\r
-        # Changing field 'Question.node_ptr'\r
-        db.alter_column(u'question', 'node_ptr_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True))\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Adding field 'Question.answer_accepted'\r
-        db.add_column(u'question', 'answer_accepted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-\r
-        # Changing field 'Question.node_ptr'\r
-        db.alter_column(u'question', 'node_ptr_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True, primary_key=True))\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousnode': {\r
-            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},\r
-            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Answer']", 'unique': 'True', 'null': 'True'}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 16, 13, 28, 30, 313000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 17, 13, 28, 30, 540000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Deleting field 'Question.answer_accepted'
+        db.delete_column(u'question', 'answer_accepted')
+
+        # Changing field 'Question.node_ptr'
+        db.alter_column(u'question', 'node_ptr_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True))
+    
+    
+    def backwards(self, orm):
+        
+        # Adding field 'Question.answer_accepted'
+        db.add_column(u'question', 'answer_accepted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Changing field 'Question.node_ptr'
+        db.alter_column(u'question', 'node_ptr_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True, primary_key=True))
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousnode': {
+            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},
+            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Answer']", 'unique': 'True', 'null': 'True'}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 16, 13, 28, 30, 313000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 17, 13, 28, 30, 540000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index cb14267653ef77d3f55ce664b929f91365263acf..98ba7c3f663a57a448ace60ea6266e203231dd5e 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Adding field 'Repute.node'\r
-        db.add_column(u'repute', 'node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='reputes', null=True, to=orm['forum.Node']), keep_default=False)\r
-\r
-        # Adding field 'Repute.canceled'\r
-        db.add_column(u'repute', 'canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Deleting field 'Repute.node'\r
-        db.delete_column(u'repute', 'node_id')\r
-\r
-        # Deleting field 'Repute.canceled'\r
-        db.delete_column(u'repute', 'canceled')\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousnode': {\r
-            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},\r
-            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'question_accepting'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Answer']"}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 16, 14, 18, 46, 625000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 17, 14, 18, 46, 835000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Adding field 'Repute.node'
+        db.add_column(u'repute', 'node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='reputes', null=True, to=orm['forum.Node']), keep_default=False)
+
+        # Adding field 'Repute.canceled'
+        db.add_column(u'repute', 'canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting field 'Repute.node'
+        db.delete_column(u'repute', 'node_id')
+
+        # Deleting field 'Repute.canceled'
+        db.delete_column(u'repute', 'canceled')
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousnode': {
+            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},
+            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'question_accepting'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Answer']"}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 16, 14, 18, 46, 625000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 17, 14, 18, 46, 835000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index 808bb0e191ac10c6cf3ae3e761aa725df5e6054a..dc97c0bf5726cc6325fb25a014f73b7d7c1c0d26 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import DataMigration\r
-from django.db import models\r
-from forum.migrations import ProgressBar\r
-\r
-class Migration(DataMigration):\r
-    \r
-    def forwards(self, orm):\r
-        c_count = orm.Comment.objects.count()\r
-        print "\nConverting %d comments:" % c_count\r
-        progress = ProgressBar(c_count)\r
-\r
-        id_map = {}\r
-\r
-        for c in orm.Comment.objects.all():\r
-            node = orm.Node(\r
-                node_type='comment',\r
-                author=c.user,\r
-                added_at=c.added_at,\r
-                score=c.score,\r
-                vote_up_count=c.score,\r
-                vote_down_count=0,\r
-                offensive_flag_count=0,\r
-                last_edited_at=c.added_at,\r
-                last_edited_by=c.user,\r
-                body=c.comment,\r
-                deleted=c.deleted,\r
-                deleted_by=c.deleted_by,\r
-                deleted_at=c.deleted_at,\r
-                parent=c.node,\r
-            )\r
-            node.save()\r
-\r
-            id_map[c.id] = node\r
-\r
-            revision = orm.NodeRevision(\r
-                summary="Initial revsion",\r
-                revision=1,\r
-                revised_at=c.added_at,\r
-                body=c.comment,\r
-                author=c.user,\r
-                node=node,\r
-            )\r
-\r
-            revision.save()\r
-\r
-            node.active_revision = revision\r
-            node.save()\r
-\r
-            for v in orm.LikedComment.objects.filter(comment=c):\r
-                vote = orm.Vote(\r
-                    node=node,\r
-                    vote=1,\r
-                    voted_at=v.added_at,\r
-                    canceled=v.canceled,\r
-                    user=v.user,\r
-                )\r
-\r
-                vote.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-        ctype = orm['contenttypes.ContentType'].objects.get(name="comment").id\r
-        ntype = orm['contenttypes.ContentType'].objects.get(name="node").id\r
-\r
-        #Converting activity\r
-        activities = orm.Activity.objects.filter(content_type__id=ctype)\r
-        activity_count = activities.count()\r
-        print "Converting %d activity references:" % activity_count\r
-        progress = ProgressBar(activity_count)\r
-\r
-        for a in activities:\r
-            node = id_map.get(a.object_id, None)\r
-            if node:\r
-                a.content_type_id = ntype\r
-                a.object_id = node.id\r
-                a.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        "Write your backwards methods here."\r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousnode': {\r
-            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},\r
-            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.comment': {\r
-            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.likedcomment': {\r
-            'Meta': {'object_name': 'LikedComment'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'question_accepting'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Answer']"}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 16, 14, 19, 21, 765000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 17, 14, 19, 21, 837000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+from forum.migrations import ProgressBar
+
+class Migration(DataMigration):
+    
+    def forwards(self, orm):
+        c_count = orm.Comment.objects.count()
+        print "\nConverting %d comments:" % c_count
+        progress = ProgressBar(c_count)
+
+        id_map = {}
+
+        for c in orm.Comment.objects.all():
+            node = orm.Node(
+                node_type='comment',
+                author=c.user,
+                added_at=c.added_at,
+                score=c.score,
+                vote_up_count=c.score,
+                vote_down_count=0,
+                offensive_flag_count=0,
+                last_edited_at=c.added_at,
+                last_edited_by=c.user,
+                body=c.comment,
+                deleted=c.deleted,
+                deleted_by=c.deleted_by,
+                deleted_at=c.deleted_at,
+                parent=c.node,
+            )
+            node.save()
+
+            id_map[c.id] = node
+
+            revision = orm.NodeRevision(
+                summary="Initial revsion",
+                revision=1,
+                revised_at=c.added_at,
+                body=c.comment,
+                author=c.user,
+                node=node,
+            )
+
+            revision.save()
+
+            node.active_revision = revision
+            node.save()
+
+            for v in orm.LikedComment.objects.filter(comment=c):
+                vote = orm.Vote(
+                    node=node,
+                    vote=1,
+                    voted_at=v.added_at,
+                    canceled=v.canceled,
+                    user=v.user,
+                )
+
+                vote.save()
+
+            progress.update()
+
+        print "\n...done\n"
+
+        ctype = orm['contenttypes.ContentType'].objects.get(name="comment").id
+        ntype = orm['contenttypes.ContentType'].objects.get(name="node").id
+
+        #Converting activity
+        activities = orm.Activity.objects.filter(content_type__id=ctype)
+        activity_count = activities.count()
+        print "Converting %d activity references:" % activity_count
+        progress = ProgressBar(activity_count)
+
+        for a in activities:
+            node = id_map.get(a.object_id, None)
+            if node:
+                a.content_type_id = ntype
+                a.object_id = node.id
+                a.save()
+
+            progress.update()
+
+        print "\n...done\n"
+    
+    
+    def backwards(self, orm):
+        "Write your backwards methods here."
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousnode': {
+            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},
+            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.comment': {
+            'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.likedcomment': {
+            'Meta': {'object_name': 'LikedComment'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'question_accepting'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Answer']"}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 16, 14, 19, 21, 765000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 17, 14, 19, 21, 837000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index b6acebebc9e7b19a42da459ee65471300daaa158..9cec24d5e91b8cf29b036823c4e0c18ce0d7b96a 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Deleting model 'LikedComment'\r
-        db.delete_table('forum_likedcomment')\r
-\r
-        # Deleting model 'Comment'\r
-        db.delete_table(u'comment')\r
-\r
-        # Adding field 'Node.abs_parent'\r
-        db.add_column('forum_node', 'abs_parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='all_children', null=True, to=orm['forum.Node']), keep_default=False)\r
-\r
-        # Changing field 'Question.last_activity_by'\r
-        db.alter_column(u'question', 'last_activity_by_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['forum.User']))\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Adding model 'LikedComment'\r
-        db.create_table('forum_likedcomment', (\r
-            ('comment', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Comment'])),\r
-            ('canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),\r
-            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['LikedComment'])\r
-\r
-        # Adding model 'Comment'\r
-        db.create_table(u'comment', (\r
-            ('comment', self.gf('django.db.models.fields.CharField')(max_length=300)),\r
-            ('node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='comments', null=True, to=orm['forum.Node'])),\r
-            ('deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='deleted_comments', null=True, to=orm['forum.User'], blank=True)),\r
-            ('score', self.gf('django.db.models.fields.IntegerField')(default=0)),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='comments', to=orm['forum.User'])),\r
-            ('deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['Comment'])\r
-\r
-        # Deleting field 'Node.abs_parent'\r
-        db.delete_column('forum_node', 'abs_parent_id')\r
-\r
-        # Changing field 'Question.last_activity_by'\r
-        db.alter_column(u'question', 'last_activity_by_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User']))\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousnode': {\r
-            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},\r
-            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'question_accepting'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Answer']"}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 17, 1, 11, 40, 975000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 18, 1, 11, 41, 269000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Deleting model 'LikedComment'
+        db.delete_table('forum_likedcomment')
+
+        # Deleting model 'Comment'
+        db.delete_table(u'comment')
+
+        # Adding field 'Node.abs_parent'
+        db.add_column('forum_node', 'abs_parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='all_children', null=True, to=orm['forum.Node']), keep_default=False)
+
+        # Changing field 'Question.last_activity_by'
+        db.alter_column(u'question', 'last_activity_by_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['forum.User']))
+    
+    
+    def backwards(self, orm):
+        
+        # Adding model 'LikedComment'
+        db.create_table('forum_likedcomment', (
+            ('comment', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Comment'])),
+            ('canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),
+            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('forum', ['LikedComment'])
+
+        # Adding model 'Comment'
+        db.create_table(u'comment', (
+            ('comment', self.gf('django.db.models.fields.CharField')(max_length=300)),
+            ('node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='comments', null=True, to=orm['forum.Node'])),
+            ('deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='deleted_comments', null=True, to=orm['forum.User'], blank=True)),
+            ('score', self.gf('django.db.models.fields.IntegerField')(default=0)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='comments', to=orm['forum.User'])),
+            ('deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('forum', ['Comment'])
+
+        # Deleting field 'Node.abs_parent'
+        db.delete_column('forum_node', 'abs_parent_id')
+
+        # Changing field 'Question.last_activity_by'
+        db.alter_column(u'question', 'last_activity_by_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User']))
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousnode': {
+            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},
+            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'question_accepting'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Answer']"}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 17, 1, 11, 40, 975000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 18, 1, 11, 41, 269000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index 6a37403256af53953d9ae503ff530af72e9d16ad..0e7a5019eec6a0b92454ed5a84b2f9cf7e7f594b 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import DataMigration\r
-from django.db import models\r
-from forum.migrations import ProgressBar\r
-\r
-class Migration(DataMigration):\r
-    \r
-    def forwards(self, orm):\r
-        def get_abs_par(n):\r
-            if n.parent:\r
-                return get_abs_par(n.parent)\r
-            else:\r
-                return n\r
-\r
-        n_count = orm.Node.objects.count()\r
-        print "\nConverting %d nodes:" % n_count\r
-        progress = ProgressBar(n_count)\r
-\r
-        for n in orm.Node.objects.all():\r
-            if n.parent:\r
-                n.abs_parent = get_abs_par(n)\r
-            else:\r
-                n.abs_parent = None\r
-            n.save()\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        "Write your backwards methods here."\r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousnode': {\r
-            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},\r
-            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'question_accepting'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Answer']"}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 17, 1, 20, 29, 905000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 18, 1, 20, 29, 974000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+from forum.migrations import ProgressBar
+
+class Migration(DataMigration):
+    
+    def forwards(self, orm):
+        def get_abs_par(n):
+            if n.parent:
+                return get_abs_par(n.parent)
+            else:
+                return n
+
+        n_count = orm.Node.objects.count()
+        print "\nConverting %d nodes:" % n_count
+        progress = ProgressBar(n_count)
+
+        for n in orm.Node.objects.all():
+            if n.parent:
+                n.abs_parent = get_abs_par(n)
+            else:
+                n.abs_parent = None
+            n.save()
+            progress.update()
+
+        print "\n...done\n"
+    
+    
+    def backwards(self, orm):
+        "Write your backwards methods here."
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousnode': {
+            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},
+            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'question_accepting'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Answer']"}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 17, 1, 20, 29, 905000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 18, 1, 20, 29, 974000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index 16ef25b684a25710aa373bd9789a36011894a163..6343f23a7c14300f6071d21d30aa8dffce707f49 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-from django.conf import settings\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        if db.backend_name == "postgres" and not "pgfulltext" in settings.DISABLED_MODULES:\r
-            try:\r
-                import forum_modules.pgfulltext.management\r
-            except Exception, e:\r
-                pass\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        "Write your backwards methods here."\r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousnode': {\r
-            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},\r
-            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'question_accepting'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Answer']"}),\r
-            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),\r
-            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 17, 2, 50, 12, 337000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 18, 2, 50, 12, 421000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+from django.conf import settings
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        if db.backend_name == "postgres" and not "pgfulltext" in settings.DISABLED_MODULES:
+            try:
+                import forum_modules.pgfulltext.management
+            except Exception, e:
+                pass
+    
+    
+    def backwards(self, orm):
+        "Write your backwards methods here."
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousnode': {
+            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},
+            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'question_accepting'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Answer']"}),
+            'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True'}),
+            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscriptions'", 'through': "'QuestionSubscription'", 'to': "orm['forum.User']"}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 17, 2, 50, 12, 337000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 18, 2, 50, 12, 421000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index 87b792e2bb18f8472b3d144147e7f4bb0d836ab3..e060971590feddcee8d4f28c152e77116d491253 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        print "# Adding model 'ActionRepute'"\r
-        db.create_table('forum_actionrepute', (\r
-            ('action', self.gf('django.db.models.fields.related.ForeignKey')(related_name='reputes', to=orm['forum.Action'])),\r
-            ('by_canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('value', self.gf('django.db.models.fields.IntegerField')(default=0)),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),\r
-        ))\r
-        db.send_create_signal('forum', ['ActionRepute'])\r
-\r
-        print "# Adding model 'Action'"\r
-        db.create_table('forum_action', (\r
-            ('node', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Node'], null=True)),\r
-            ('extra', self.gf('django.db.models.fields.CharField')(max_length=255)),\r
-            ('canceled_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='canceled_actions', null=True, to=orm['forum.User'])),\r
-            ('canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('action_date', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='actions', to=orm['forum.User'])),\r
-            ('action_type', self.gf('django.db.models.fields.CharField')(max_length=16)),\r
-            ('canceled_at', self.gf('django.db.models.fields.DateTimeField')(null=True)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('ip', self.gf('django.db.models.fields.CharField')(max_length=16, null=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['Action'])\r
-\r
-        print "# Deleting field 'Node.vote_up_count'"\r
-        db.delete_column('forum_node', 'vote_up_count')\r
-\r
-        print "# Deleting field 'Node.comment_count'"\r
-        db.delete_column('forum_node', 'comment_count')\r
-\r
-        print "# Deleting field 'Node.offensive_flag_count'"\r
-        db.delete_column('forum_node', 'offensive_flag_count')\r
-\r
-        print "# Deleting field 'Node.vote_down_count'"\r
-        db.delete_column('forum_node', 'vote_down_count')\r
-\r
-        print "# Adding field 'Node.wiki'"\r
-        db.add_column('forum_node', 'wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-\r
-        print "# Adding field 'Node.marked'"\r
-        db.add_column('forum_node', 'marked', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-\r
-        print "# Adding field 'Node.extra_count'"\r
-        db.add_column('forum_node', 'extra_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)\r
-\r
-        print "# Adding field 'Node.last_activity_by'"\r
-        db.add_column('forum_node', 'last_activity_by', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'], null=True), keep_default=False)\r
-\r
-        print "# Adding field 'Node.extra_ref'"\r
-        db.add_column('forum_node', 'extra_ref', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Node'], null=True), keep_default=False)\r
-\r
-        print "# Adding field 'Node.last_activity_at'"\r
-        db.add_column('forum_node', 'last_activity_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)\r
-\r
-        # Changing field 'Answer.node_ptr'\r
-        #db.alter_column(u'answer', 'node_ptr_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Node'], null=True, primary_key=True))\r
-\r
-        print "# Changing field 'QuestionSubscription.question'"\r
-        db.alter_column('forum_questionsubscription', 'question_id', self.gf('django.db.models.fields.IntegerField')())\r
-\r
-        # Removing unique constraint on 'Award', fields ['badge', 'object_id', 'content_type', 'user']\r
-        #db.delete_unique(u'award', ['badge_id', 'object_id', 'content_type_id', 'user_id'])\r
-\r
-        print "# Changing field 'User.gold'"\r
-        db.alter_column('forum_user', 'gold', self.gf('django.db.models.fields.PositiveIntegerField')())\r
-\r
-        print "# Changing field 'User.silver'"\r
-        db.alter_column('forum_user', 'silver', self.gf('django.db.models.fields.PositiveIntegerField')())\r
-\r
-        print "# Changing field 'User.bronze'"\r
-        db.alter_column('forum_user', 'bronze', self.gf('django.db.models.fields.PositiveIntegerField')())\r
-\r
-        print "# Deleting field 'Question.answer_count'"\r
-        db.delete_column(u'question', 'answer_count')\r
-\r
-        print "# Deleting field 'Question.favourite_count'"\r
-        db.delete_column(u'question', 'favourite_count')\r
-\r
-        # Changing field 'Question.node_ptr'\r
-        #db.alter_column(u'question', 'node_ptr_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Node'], null=True, primary_key=True))\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Deleting model 'ActionRepute'\r
-        db.delete_table('forum_actionrepute')\r
-\r
-        # Deleting model 'Action'\r
-        db.delete_table('forum_action')\r
-\r
-        # Deleting model 'FavoriteNode'\r
-        db.delete_table('forum_favoritenode')\r
-\r
-        # Adding field 'Node.vote_up_count'\r
-        db.add_column('forum_node', 'vote_up_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Node.comment_count'\r
-        db.add_column('forum_node', 'comment_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Node.offensive_flag_count'\r
-        db.add_column('forum_node', 'offensive_flag_count', self.gf('django.db.models.fields.SmallIntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Node.vote_down_count'\r
-        db.add_column('forum_node', 'vote_down_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)\r
-\r
-        # Deleting field 'Node.wiki'\r
-        db.delete_column('forum_node', 'wiki')\r
-\r
-        # Deleting field 'Node.marked'\r
-        db.delete_column('forum_node', 'marked')\r
-\r
-        # Deleting field 'Node.extra_count'\r
-        db.delete_column('forum_node', 'extra_count')\r
-\r
-        # Deleting field 'Node.last_activity_by'\r
-        db.delete_column('forum_node', 'last_activity_by_id')\r
-\r
-        # Deleting field 'Node.extra_ref'\r
-        db.delete_column('forum_node', 'extra_ref_id')\r
-\r
-        # Deleting field 'Node.last_activity_at'\r
-        db.delete_column('forum_node', 'last_activity_at')\r
-\r
-        # Changing field 'Answer.node_ptr'\r
-        db.alter_column(u'answer', 'node_ptr_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True, primary_key=True))\r
-\r
-        # Adding unique constraint on 'Award', fields ['badge', 'object_id', 'content_type', 'user']\r
-        db.create_unique(u'award', ['badge_id', 'object_id', 'content_type_id', 'user_id'])\r
-\r
-        # Changing field 'User.gold'\r
-        db.alter_column('forum_user', 'gold', self.gf('django.db.models.fields.SmallIntegerField')())\r
-\r
-        # Changing field 'User.silver'\r
-        db.alter_column('forum_user', 'silver', self.gf('django.db.models.fields.SmallIntegerField')())\r
-\r
-        # Changing field 'User.bronze'\r
-        db.alter_column('forum_user', 'bronze', self.gf('django.db.models.fields.SmallIntegerField')())\r
-\r
-        # Adding field 'Question.answer_count'\r
-        db.add_column(u'question', 'answer_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0), keep_default=False)\r
-\r
-        # Adding field 'Question.favourite_count'\r
-        db.add_column(u'question', 'favourite_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)\r
-\r
-        # Changing field 'Question.node_ptr'\r
-        db.alter_column(u'question', 'node_ptr_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True))\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'extra': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousnode': {\r
-            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},\r
-            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'node_ptr': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True', 'primary_key': 'True'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'favourites'", 'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'question_accepting'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Answer']"}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True', 'primary_key': 'True'}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 27, 11, 37, 29, 356000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 28, 11, 37, 29, 624000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        print "# Adding model 'ActionRepute'"
+        db.create_table('forum_actionrepute', (
+            ('action', self.gf('django.db.models.fields.related.ForeignKey')(related_name='reputes', to=orm['forum.Action'])),
+            ('by_canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('value', self.gf('django.db.models.fields.IntegerField')(default=0)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),
+        ))
+        db.send_create_signal('forum', ['ActionRepute'])
+
+        print "# Adding model 'Action'"
+        db.create_table('forum_action', (
+            ('node', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Node'], null=True)),
+            ('extra', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('canceled_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='canceled_actions', null=True, to=orm['forum.User'])),
+            ('canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('action_date', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='actions', to=orm['forum.User'])),
+            ('action_type', self.gf('django.db.models.fields.CharField')(max_length=16)),
+            ('canceled_at', self.gf('django.db.models.fields.DateTimeField')(null=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('ip', self.gf('django.db.models.fields.CharField')(max_length=16, null=True)),
+        ))
+        db.send_create_signal('forum', ['Action'])
+
+        print "# Deleting field 'Node.vote_up_count'"
+        db.delete_column('forum_node', 'vote_up_count')
+
+        print "# Deleting field 'Node.comment_count'"
+        db.delete_column('forum_node', 'comment_count')
+
+        print "# Deleting field 'Node.offensive_flag_count'"
+        db.delete_column('forum_node', 'offensive_flag_count')
+
+        print "# Deleting field 'Node.vote_down_count'"
+        db.delete_column('forum_node', 'vote_down_count')
+
+        print "# Adding field 'Node.wiki'"
+        db.add_column('forum_node', 'wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        print "# Adding field 'Node.marked'"
+        db.add_column('forum_node', 'marked', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        print "# Adding field 'Node.extra_count'"
+        db.add_column('forum_node', 'extra_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)
+
+        print "# Adding field 'Node.last_activity_by'"
+        db.add_column('forum_node', 'last_activity_by', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'], null=True), keep_default=False)
+
+        print "# Adding field 'Node.extra_ref'"
+        db.add_column('forum_node', 'extra_ref', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Node'], null=True), keep_default=False)
+
+        print "# Adding field 'Node.last_activity_at'"
+        db.add_column('forum_node', 'last_activity_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Changing field 'Answer.node_ptr'
+        #db.alter_column(u'answer', 'node_ptr_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Node'], null=True, primary_key=True))
+
+        print "# Changing field 'QuestionSubscription.question'"
+        db.alter_column('forum_questionsubscription', 'question_id', self.gf('django.db.models.fields.IntegerField')())
+
+        # Removing unique constraint on 'Award', fields ['badge', 'object_id', 'content_type', 'user']
+        #db.delete_unique(u'award', ['badge_id', 'object_id', 'content_type_id', 'user_id'])
+
+        print "# Changing field 'User.gold'"
+        db.alter_column('forum_user', 'gold', self.gf('django.db.models.fields.PositiveIntegerField')())
+
+        print "# Changing field 'User.silver'"
+        db.alter_column('forum_user', 'silver', self.gf('django.db.models.fields.PositiveIntegerField')())
+
+        print "# Changing field 'User.bronze'"
+        db.alter_column('forum_user', 'bronze', self.gf('django.db.models.fields.PositiveIntegerField')())
+
+        print "# Deleting field 'Question.answer_count'"
+        db.delete_column(u'question', 'answer_count')
+
+        print "# Deleting field 'Question.favourite_count'"
+        db.delete_column(u'question', 'favourite_count')
+
+        # Changing field 'Question.node_ptr'
+        #db.alter_column(u'question', 'node_ptr_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Node'], null=True, primary_key=True))
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting model 'ActionRepute'
+        db.delete_table('forum_actionrepute')
+
+        # Deleting model 'Action'
+        db.delete_table('forum_action')
+
+        # Deleting model 'FavoriteNode'
+        db.delete_table('forum_favoritenode')
+
+        # Adding field 'Node.vote_up_count'
+        db.add_column('forum_node', 'vote_up_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Node.comment_count'
+        db.add_column('forum_node', 'comment_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Node.offensive_flag_count'
+        db.add_column('forum_node', 'offensive_flag_count', self.gf('django.db.models.fields.SmallIntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Node.vote_down_count'
+        db.add_column('forum_node', 'vote_down_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)
+
+        # Deleting field 'Node.wiki'
+        db.delete_column('forum_node', 'wiki')
+
+        # Deleting field 'Node.marked'
+        db.delete_column('forum_node', 'marked')
+
+        # Deleting field 'Node.extra_count'
+        db.delete_column('forum_node', 'extra_count')
+
+        # Deleting field 'Node.last_activity_by'
+        db.delete_column('forum_node', 'last_activity_by_id')
+
+        # Deleting field 'Node.extra_ref'
+        db.delete_column('forum_node', 'extra_ref_id')
+
+        # Deleting field 'Node.last_activity_at'
+        db.delete_column('forum_node', 'last_activity_at')
+
+        # Changing field 'Answer.node_ptr'
+        db.alter_column(u'answer', 'node_ptr_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True, primary_key=True))
+
+        # Adding unique constraint on 'Award', fields ['badge', 'object_id', 'content_type', 'user']
+        db.create_unique(u'award', ['badge_id', 'object_id', 'content_type_id', 'user_id'])
+
+        # Changing field 'User.gold'
+        db.alter_column('forum_user', 'gold', self.gf('django.db.models.fields.SmallIntegerField')())
+
+        # Changing field 'User.silver'
+        db.alter_column('forum_user', 'silver', self.gf('django.db.models.fields.SmallIntegerField')())
+
+        # Changing field 'User.bronze'
+        db.alter_column('forum_user', 'bronze', self.gf('django.db.models.fields.SmallIntegerField')())
+
+        # Adding field 'Question.answer_count'
+        db.add_column(u'question', 'answer_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0), keep_default=False)
+
+        # Adding field 'Question.favourite_count'
+        db.add_column(u'question', 'favourite_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)
+
+        # Changing field 'Question.node_ptr'
+        db.alter_column(u'question', 'node_ptr_id', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True))
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'extra': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousnode': {
+            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},
+            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'node_ptr': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True', 'primary_key': 'True'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'favourites'", 'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'question_accepting'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Answer']"}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True', 'primary_key': 'True'}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 27, 11, 37, 29, 356000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 28, 11, 37, 29, 624000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index d4b081b0ecdf75e5534de6c7927acd854992894a..b06d9809f8e0e256136eec4add8124455008b1b5 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import DataMigration\r
-from django.db import models\r
-from forum.migrations import ProgressBar\r
-\r
-GAIN_BY_UPVOTED = 1\r
-GAIN_BY_ANSWER_ACCEPTED = 2\r
-GAIN_BY_ACCEPTING_ANSWER = 3\r
-GAIN_BY_DOWNVOTE_CANCELED = 4\r
-GAIN_BY_CANCELING_DOWNVOTE = 5\r
-LOST_BY_CANCELLING_ACCEPTED_ANSWER = -1\r
-LOST_BY_ACCEPTED_ANSWER_CANCELED = -2\r
-LOST_BY_DOWNVOTED = -3\r
-LOST_BY_FLAGGED = -4\r
-LOST_BY_DOWNVOTING = -5\r
-LOST_BY_FLAGGED_3_TIMES = -6\r
-LOST_BY_FLAGGED_5_TIMES = -7\r
-LOST_BY_UPVOTE_CANCELED = -8\r
-\r
-class Migration(DataMigration):\r
-    \r
-    def forwards(self, orm):\r
-        rephist = dict([(t, []) for t in range(-8, 6) if t != 0])\r
-\r
-        r_count = orm.Repute.objects.count()\r
-        print "\nCalculating rep gain/losses history through %d records:" % r_count\r
-        progress = ProgressBar(r_count)\r
-\r
-        for r in orm.Repute.objects.all():\r
-            l = rephist.get(r.reputation_type, None)\r
-            if l is None: continue\r
-\r
-            if (len(l) == 0) or (l[-1][1] != r.value):\r
-                l.append((r.reputed_at, r.value))\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-\r
-        def repval_at(reptype, repdate, default):\r
-            l = rephist.get(reptype, None)\r
-\r
-            if l is None: return 0\r
-            if len(l) == 0: return default\r
-\r
-            for r in l:\r
-                if r[0] <= repdate:\r
-                    return r[1] or default\r
-\r
-\r
-        q_count = orm.Question.objects.count()\r
-        print "\nConverting %d questions:" % q_count\r
-        progress = ProgressBar(q_count)\r
-\r
-        for q in orm.Question.objects.all():\r
-            n = q.node_ptr\r
-            n.last_activity_at = q.last_activity_at\r
-            n.last_activity_by = q.last_activity_by\r
-\r
-            if q.accepted_answer:\r
-                n.extra_ref = q.accepted_answer.node_ptr\r
-                \r
-            n.extra_count = q.view_count\r
-\r
-            n.marked = q.closed\r
-            n.wiki = q.wiki\r
-\r
-            n.save()\r
-\r
-            ask = orm.Action(\r
-                user = n.author,\r
-                action_date = n.added_at,\r
-                node = n,\r
-                action_type = "ask",\r
-                extra = ''\r
-            )\r
-\r
-            ask.save()\r
-\r
-            if n.deleted:\r
-                action = orm.Action(\r
-                    user = n.deleted_by,\r
-                    node = n,\r
-                    action_type = "delete",\r
-                    action_date = n.deleted_at or datetime.datetime.now(),\r
-                    extra = ''\r
-                )\r
-\r
-                action.save()\r
-\r
-\r
-            if n.marked:\r
-                action = orm.Action(\r
-                    user = q.closed_by,\r
-                    node = n,\r
-                    action_type = "close",\r
-                    extra = q.close_reason,\r
-                    action_date = q.closed_at or datetime.datetime.now(),\r
-                )\r
-\r
-                action.save()\r
-\r
-            if n.wiki:\r
-                action = orm.Action(\r
-                    user = n.author,\r
-                    node = n,\r
-                    action_type = "wikify",\r
-                    action_date = q.wikified_at or datetime.datetime.now(),\r
-                    extra = ''\r
-                )\r
-\r
-                action.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-        a_count = orm.Answer.objects.count()\r
-        print "\nConverting %d answers:" % a_count\r
-        progress = ProgressBar(a_count)\r
-\r
-        for a in orm.Answer.objects.all():\r
-            n = a.node_ptr\r
-\r
-            n.marked = a.accepted\r
-            n.wiki = a.wiki\r
-\r
-            n.save()\r
-\r
-            ans = orm.Action(\r
-                user = n.author,\r
-                action_date = n.added_at,\r
-                node = n,\r
-                action_type = "answer",\r
-                extra = ''\r
-            )\r
-\r
-            ans.save()\r
-\r
-            if n.deleted:\r
-                action = orm.Action(\r
-                    user = n.deleted_by,\r
-                    node = n,\r
-                    action_type = "delete",\r
-                    action_date = n.deleted_at or datetime.datetime.now(),\r
-                    extra = ''\r
-                )\r
-\r
-                action.save()\r
-\r
-            if a.accepted:\r
-                action = orm.Action(\r
-                    user = a.accepted_by,\r
-                    node = n,\r
-                    action_type = "acceptanswer",\r
-                    action_date = a.accepted_at or datetime.datetime.now(),\r
-                    extra = ''\r
-                )\r
-\r
-                action.save()\r
-\r
-                if not a.wiki or a.wikified_at > action.action_date:\r
-                    if action.user == n.author:\r
-                        rep = orm.ActionRepute(\r
-                            action = action,\r
-                            user = action.user,\r
-                            value = repval_at(GAIN_BY_ACCEPTING_ANSWER, action.action_date, 2)\r
-                        )\r
-                        rep.save()\r
-\r
-                    if n.author != n.parent.author:\r
-                        rep = orm.ActionRepute(\r
-                            action = action,\r
-                            user = n.author,\r
-                            value = repval_at(GAIN_BY_ANSWER_ACCEPTED, action.action_date, 15)\r
-                        )\r
-                        rep.save()\r
-\r
-            if n.wiki:\r
-                action = orm.Action(\r
-                    user = n.author,\r
-                    node = n,\r
-                    action_type = "wikify",\r
-                    action_date = a.wikified_at or datetime.datetime.now(),\r
-                    extra = ''\r
-                )\r
-\r
-                action.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-        v_count = orm.Vote.objects.count()\r
-        print "\nConverting %d votes:" % v_count\r
-        progress = ProgressBar(v_count)\r
-\r
-        for v in orm.Vote.objects.exclude(canceled=True):\r
-            a = orm.Action(\r
-                action_type = (v.vote == 1) and ((v.node.node_type == "comment") and "voteupcomment" or "voteup") or "votedown",\r
-                user = v.user,\r
-                node = v.node,\r
-                action_date = v.voted_at,\r
-                canceled = v.canceled,\r
-                extra = ''\r
-            )\r
-\r
-            a.save()\r
-\r
-            def impl(node):\r
-                if node.node_type == "question":\r
-                    return orm.Question.objects.get(node_ptr=node)\r
-                else:\r
-                    return orm.Answer.objects.get(node_ptr=node)\r
-\r
-            if a.node.node_type in ("question", "answer") and (not a.node.wiki or impl(a.node).wikified_at > a.action_date):\r
-                reptype, default = (v.vote == 1) and (GAIN_BY_UPVOTED, 10) or (LOST_BY_DOWNVOTED, 2)\r
-                rep = orm.ActionRepute(\r
-                    action = a,\r
-                    user = a.node.author,\r
-                    value = repval_at(reptype, a.action_date, default) or default\r
-                )\r
-                rep.save()\r
-\r
-                if v.vote == -1:\r
-                    rep = orm.ActionRepute(\r
-                        action = a,\r
-                        user = a.node.author,\r
-                        value = repval_at(LOST_BY_DOWNVOTING, a.action_date, 1) or default\r
-                    )\r
-                    rep.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-        f_count = orm.FlaggedItem.objects.count()\r
-        print "\nConverting %d flags:" % f_count\r
-        progress = ProgressBar(f_count)\r
-\r
-        for f in orm.FlaggedItem.objects.all():\r
-            a = orm.Action(\r
-                action_type = "flag",\r
-                user = f.user,\r
-                node = f.node,\r
-                action_date = f.flagged_at,\r
-                extra = f.reason or ''\r
-            )\r
-\r
-            a.save()\r
-\r
-            rep = orm.ActionRepute(\r
-                action = a,\r
-                user = a.node.author,\r
-                value = repval_at(LOST_BY_FLAGGED, a.action_date, 2) or 2\r
-            )\r
-            rep.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-        n_count = orm.Node.objects.all().count()\r
-        print "\nChecking flag count of %d nodes:" % n_count\r
-        progress = ProgressBar(n_count)\r
-\r
-        for n in orm.Node.objects.all():\r
-            flags = list(orm.Action.objects.filter(action_type="flag", node=n, canceled=False).order_by('-action_date'))\r
-\r
-            if len(flags) >= 3:\r
-                a = flags[2]\r
-                rep = orm.ActionRepute(\r
-                    action = a,\r
-                    user = n.author,\r
-                    value = repval_at(LOST_BY_FLAGGED_3_TIMES, a.action_date, 30)\r
-                )\r
-                rep.save()\r
-\r
-\r
-            if len(flags) >= 5:\r
-                a = flags[4]\r
-                rep = orm.ActionRepute(\r
-                    action = a,\r
-                    user = n.author,\r
-                    value = repval_at(LOST_BY_FLAGGED_5_TIMES, a.action_date, 100)\r
-                )\r
-                rep.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-        c_count = orm.Node.objects.filter(node_type="comment").count()\r
-        print "\nCreating %d comment actions:" % c_count\r
-        progress = ProgressBar(c_count)\r
-\r
-        for c in orm.Node.objects.filter(node_type="comment").all():\r
-            a = orm.Action(\r
-                action_type = "comment",\r
-                user = c.author,\r
-                node = c,\r
-                action_date = c.added_at,\r
-                extra = ''\r
-            )\r
-\r
-            a.save()\r
-\r
-            if c.deleted:\r
-                action = orm.Action(\r
-                    user = c.deleted_by,\r
-                    node = c,\r
-                    action_type = "delete",\r
-                    action_date = c.deleted_at or datetime.datetime.now(),\r
-                    extra = ''\r
-                )\r
-\r
-                action.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-\r
-        r_count = orm.NodeRevision.objects.exclude(revision=1).count()\r
-        print "\nCreating %d edit actions:" % r_count\r
-        progress = ProgressBar(r_count)\r
-\r
-        for r in orm.NodeRevision.objects.exclude(revision=1):\r
-            a = orm.Action(\r
-                action_type = "revise",\r
-                user = r.author,\r
-                node = r.node,\r
-                action_date = r.revised_at,\r
-                extra = r.revision\r
-            )\r
-\r
-            a.save()\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-        u_count = orm.User.objects.all().count()\r
-        print "\nCreating %d user join actions and reputation recalculation:" % u_count\r
-        progress = ProgressBar(u_count)\r
-\r
-        for u in orm.User.objects.all():\r
-            a = orm.Action(\r
-                user = u,\r
-                action_date = u.date_joined,\r
-                action_type = "userjoins",\r
-            )\r
-\r
-            a.save()\r
-\r
-            rep = orm.ActionRepute(\r
-                action = a,\r
-                user = u,\r
-                value = 1\r
-            )\r
-            rep.save()\r
-\r
-            new_rep = orm.ActionRepute.objects.filter(user=u).aggregate(reputation=models.Sum('value'))['reputation']\r
-\r
-            if new_rep < 0:\r
-                new_rep = 1\r
-\r
-            u.reputation = new_rep\r
-            u.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        "Write your backwards methods here."\r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'extra': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.anonymousnode': {\r
-            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},\r
-            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})\r
-        },\r
-        'forum.answer': {\r
-            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},\r
-            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'node_ptr': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True', 'primary_key': 'True'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.favoritequestion': {\r
-            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'favourites'", 'to': "orm['forum.Question']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.flaggeditem': {\r
-            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.question': {\r
-            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},\r
-            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'question_accepting'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Answer']"}),\r
-            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'node_ptr': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True', 'primary_key': 'True'}),\r
-            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 27, 11, 40, 32, 68000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.repute': {\r
-            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),\r
-            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 28, 11, 40, 32, 153000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+from forum.migrations import ProgressBar
+
+GAIN_BY_UPVOTED = 1
+GAIN_BY_ANSWER_ACCEPTED = 2
+GAIN_BY_ACCEPTING_ANSWER = 3
+GAIN_BY_DOWNVOTE_CANCELED = 4
+GAIN_BY_CANCELING_DOWNVOTE = 5
+LOST_BY_CANCELLING_ACCEPTED_ANSWER = -1
+LOST_BY_ACCEPTED_ANSWER_CANCELED = -2
+LOST_BY_DOWNVOTED = -3
+LOST_BY_FLAGGED = -4
+LOST_BY_DOWNVOTING = -5
+LOST_BY_FLAGGED_3_TIMES = -6
+LOST_BY_FLAGGED_5_TIMES = -7
+LOST_BY_UPVOTE_CANCELED = -8
+
+class Migration(DataMigration):
+    
+    def forwards(self, orm):
+        rephist = dict([(t, []) for t in range(-8, 6) if t != 0])
+
+        r_count = orm.Repute.objects.count()
+        print "\nCalculating rep gain/losses history through %d records:" % r_count
+        progress = ProgressBar(r_count)
+
+        for r in orm.Repute.objects.all():
+            l = rephist.get(r.reputation_type, None)
+            if l is None: continue
+
+            if (len(l) == 0) or (l[-1][1] != r.value):
+                l.append((r.reputed_at, r.value))
+
+            progress.update()
+
+        print "\n...done\n"
+
+
+        def repval_at(reptype, repdate, default):
+            l = rephist.get(reptype, None)
+
+            if l is None: return 0
+            if len(l) == 0: return default
+
+            for r in l:
+                if r[0] <= repdate:
+                    return r[1] or default
+
+
+        q_count = orm.Question.objects.count()
+        print "\nConverting %d questions:" % q_count
+        progress = ProgressBar(q_count)
+
+        for q in orm.Question.objects.all():
+            n = q.node_ptr
+            n.last_activity_at = q.last_activity_at
+            n.last_activity_by = q.last_activity_by
+
+            if q.accepted_answer:
+                n.extra_ref = q.accepted_answer.node_ptr
+                
+            n.extra_count = q.view_count
+
+            n.marked = q.closed
+            n.wiki = q.wiki
+
+            n.save()
+
+            ask = orm.Action(
+                user = n.author,
+                action_date = n.added_at,
+                node = n,
+                action_type = "ask",
+                extra = ''
+            )
+
+            ask.save()
+
+            if n.deleted:
+                action = orm.Action(
+                    user = n.deleted_by,
+                    node = n,
+                    action_type = "delete",
+                    action_date = n.deleted_at or datetime.datetime.now(),
+                    extra = ''
+                )
+
+                action.save()
+
+
+            if n.marked:
+                action = orm.Action(
+                    user = q.closed_by,
+                    node = n,
+                    action_type = "close",
+                    extra = q.close_reason,
+                    action_date = q.closed_at or datetime.datetime.now(),
+                )
+
+                action.save()
+
+            if n.wiki:
+                action = orm.Action(
+                    user = n.author,
+                    node = n,
+                    action_type = "wikify",
+                    action_date = q.wikified_at or datetime.datetime.now(),
+                    extra = ''
+                )
+
+                action.save()
+
+            progress.update()
+
+        print "\n...done\n"
+
+        a_count = orm.Answer.objects.count()
+        print "\nConverting %d answers:" % a_count
+        progress = ProgressBar(a_count)
+
+        for a in orm.Answer.objects.all():
+            n = a.node_ptr
+
+            n.marked = a.accepted
+            n.wiki = a.wiki
+
+            n.save()
+
+            ans = orm.Action(
+                user = n.author,
+                action_date = n.added_at,
+                node = n,
+                action_type = "answer",
+                extra = ''
+            )
+
+            ans.save()
+
+            if n.deleted:
+                action = orm.Action(
+                    user = n.deleted_by,
+                    node = n,
+                    action_type = "delete",
+                    action_date = n.deleted_at or datetime.datetime.now(),
+                    extra = ''
+                )
+
+                action.save()
+
+            if a.accepted:
+                action = orm.Action(
+                    user = a.accepted_by,
+                    node = n,
+                    action_type = "acceptanswer",
+                    action_date = a.accepted_at or datetime.datetime.now(),
+                    extra = ''
+                )
+
+                action.save()
+
+                if not a.wiki or a.wikified_at > action.action_date:
+                    if action.user == n.author:
+                        rep = orm.ActionRepute(
+                            action = action,
+                            user = action.user,
+                            value = repval_at(GAIN_BY_ACCEPTING_ANSWER, action.action_date, 2)
+                        )
+                        rep.save()
+
+                    if n.author != n.parent.author:
+                        rep = orm.ActionRepute(
+                            action = action,
+                            user = n.author,
+                            value = repval_at(GAIN_BY_ANSWER_ACCEPTED, action.action_date, 15)
+                        )
+                        rep.save()
+
+            if n.wiki:
+                action = orm.Action(
+                    user = n.author,
+                    node = n,
+                    action_type = "wikify",
+                    action_date = a.wikified_at or datetime.datetime.now(),
+                    extra = ''
+                )
+
+                action.save()
+
+            progress.update()
+
+        print "\n...done\n"
+
+        v_count = orm.Vote.objects.count()
+        print "\nConverting %d votes:" % v_count
+        progress = ProgressBar(v_count)
+
+        for v in orm.Vote.objects.exclude(canceled=True):
+            a = orm.Action(
+                action_type = (v.vote == 1) and ((v.node.node_type == "comment") and "voteupcomment" or "voteup") or "votedown",
+                user = v.user,
+                node = v.node,
+                action_date = v.voted_at,
+                canceled = v.canceled,
+                extra = ''
+            )
+
+            a.save()
+
+            def impl(node):
+                if node.node_type == "question":
+                    return orm.Question.objects.get(node_ptr=node)
+                else:
+                    return orm.Answer.objects.get(node_ptr=node)
+
+            if a.node.node_type in ("question", "answer") and (not a.node.wiki or impl(a.node).wikified_at > a.action_date):
+                reptype, default = (v.vote == 1) and (GAIN_BY_UPVOTED, 10) or (LOST_BY_DOWNVOTED, 2)
+                rep = orm.ActionRepute(
+                    action = a,
+                    user = a.node.author,
+                    value = repval_at(reptype, a.action_date, default) or default
+                )
+                rep.save()
+
+                if v.vote == -1:
+                    rep = orm.ActionRepute(
+                        action = a,
+                        user = a.node.author,
+                        value = repval_at(LOST_BY_DOWNVOTING, a.action_date, 1) or default
+                    )
+                    rep.save()
+
+            progress.update()
+
+        print "\n...done\n"
+
+        f_count = orm.FlaggedItem.objects.count()
+        print "\nConverting %d flags:" % f_count
+        progress = ProgressBar(f_count)
+
+        for f in orm.FlaggedItem.objects.all():
+            a = orm.Action(
+                action_type = "flag",
+                user = f.user,
+                node = f.node,
+                action_date = f.flagged_at,
+                extra = f.reason or ''
+            )
+
+            a.save()
+
+            rep = orm.ActionRepute(
+                action = a,
+                user = a.node.author,
+                value = repval_at(LOST_BY_FLAGGED, a.action_date, 2) or 2
+            )
+            rep.save()
+
+            progress.update()
+
+        print "\n...done\n"
+
+        n_count = orm.Node.objects.all().count()
+        print "\nChecking flag count of %d nodes:" % n_count
+        progress = ProgressBar(n_count)
+
+        for n in orm.Node.objects.all():
+            flags = list(orm.Action.objects.filter(action_type="flag", node=n, canceled=False).order_by('-action_date'))
+
+            if len(flags) >= 3:
+                a = flags[2]
+                rep = orm.ActionRepute(
+                    action = a,
+                    user = n.author,
+                    value = repval_at(LOST_BY_FLAGGED_3_TIMES, a.action_date, 30)
+                )
+                rep.save()
+
+
+            if len(flags) >= 5:
+                a = flags[4]
+                rep = orm.ActionRepute(
+                    action = a,
+                    user = n.author,
+                    value = repval_at(LOST_BY_FLAGGED_5_TIMES, a.action_date, 100)
+                )
+                rep.save()
+
+            progress.update()
+
+        print "\n...done\n"
+
+        c_count = orm.Node.objects.filter(node_type="comment").count()
+        print "\nCreating %d comment actions:" % c_count
+        progress = ProgressBar(c_count)
+
+        for c in orm.Node.objects.filter(node_type="comment").all():
+            a = orm.Action(
+                action_type = "comment",
+                user = c.author,
+                node = c,
+                action_date = c.added_at,
+                extra = ''
+            )
+
+            a.save()
+
+            if c.deleted:
+                action = orm.Action(
+                    user = c.deleted_by,
+                    node = c,
+                    action_type = "delete",
+                    action_date = c.deleted_at or datetime.datetime.now(),
+                    extra = ''
+                )
+
+                action.save()
+
+            progress.update()
+
+        print "\n...done\n"
+
+
+        r_count = orm.NodeRevision.objects.exclude(revision=1).count()
+        print "\nCreating %d edit actions:" % r_count
+        progress = ProgressBar(r_count)
+
+        for r in orm.NodeRevision.objects.exclude(revision=1):
+            a = orm.Action(
+                action_type = "revise",
+                user = r.author,
+                node = r.node,
+                action_date = r.revised_at,
+                extra = r.revision
+            )
+
+            a.save()
+            progress.update()
+
+        print "\n...done\n"
+
+        u_count = orm.User.objects.all().count()
+        print "\nCreating %d user join actions and reputation recalculation:" % u_count
+        progress = ProgressBar(u_count)
+
+        for u in orm.User.objects.all():
+            a = orm.Action(
+                user = u,
+                action_date = u.date_joined,
+                action_type = "userjoins",
+            )
+
+            a.save()
+
+            rep = orm.ActionRepute(
+                action = a,
+                user = u,
+                value = 1
+            )
+            rep.save()
+
+            new_rep = orm.ActionRepute.objects.filter(user=u).aggregate(reputation=models.Sum('value'))['reputation']
+
+            if new_rep < 0:
+                new_rep = 1
+
+            u.reputation = new_rep
+            u.save()
+
+            progress.update()
+
+        print "\n...done\n"
+
+    
+    
+    def backwards(self, orm):
+        "Write your backwards methods here."
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'extra': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.anonymousnode': {
+            'Meta': {'object_name': 'AnonymousNode', '_ormbases': ['forum.Node']},
+            'convertible_to': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'primary_key': 'True'}),
+            'validation_hash': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_content'", 'to': "orm['forum.Node']"})
+        },
+        'forum.answer': {
+            'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
+            'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'node_ptr': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True', 'primary_key': 'True'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.favoritequestion': {
+            'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'favourites'", 'to': "orm['forum.Question']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
+        },
+        'forum.flaggeditem': {
+            'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.question': {
+            'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
+            'accepted_answer': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'question_accepting'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Answer']"}),
+            'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'node_ptr': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True', 'primary_key': 'True'}),
+            'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 27, 11, 40, 32, 68000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.repute': {
+            'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
+            'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 28, 11, 40, 32, 153000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index 38a76040b12a832103378003782dfe299b74f2d0..660a4d18f3688dcdbd96ae83402658827fdfd928 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Deleting model 'Repute'\r
-        db.delete_table(u'repute')\r
-\r
-        # Deleting model 'Vote'\r
-        db.delete_table(u'vote')\r
-\r
-        # Deleting model 'Answer'\r
-        db.delete_table(u'answer')\r
-\r
-        # Deleting model 'FlaggedItem'\r
-        db.delete_table(u'flagged_item')\r
-\r
-        # Deleting model 'AnonymousNode'\r
-        db.delete_table('forum_anonymousnode')\r
-\r
-        # Deleting model 'FavoriteQuestion'\r
-        db.delete_table(u'favorite_question')\r
-\r
-        # Deleting model 'Question'\r
-        db.delete_table(u'question')\r
-\r
-        # Deleting field 'Node.deleted_at'\r
-        db.delete_column('forum_node', 'deleted_at')\r
-\r
-        # Deleting field 'Node.last_edited_by'\r
-        db.delete_column('forum_node', 'last_edited_by_id')\r
-\r
-        # Deleting field 'Node.deleted'\r
-        db.delete_column('forum_node', 'deleted')\r
-\r
-        # Deleting field 'Node.deleted_by'\r
-        db.delete_column('forum_node', 'deleted_by_id')\r
-\r
-        # Deleting field 'Node.last_edited_at'\r
-        db.delete_column('forum_node', 'last_edited_at')\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Adding model 'Repute'\r
-        db.create_table(u'repute', (\r
-            ('node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='reputes', null=True, to=orm['forum.Node'])),\r
-            ('reputed_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('question', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Question'])),\r
-            ('value', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),\r
-            ('canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('reputation_type', self.gf('django.db.models.fields.SmallIntegerField')()),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='reputes', to=orm['forum.User'])),\r
-            ('user_previous_rep', self.gf('django.db.models.fields.IntegerField')(default=0)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['Repute'])\r
-\r
-        # Adding model 'Vote'\r
-        db.create_table(u'vote', (\r
-            ('node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='votes', null=True, to=orm['forum.Node'])),\r
-            ('vote', self.gf('django.db.models.fields.SmallIntegerField')()),\r
-            ('canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='votes', to=orm['forum.User'])),\r
-            ('voted_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['Vote'])\r
-\r
-        # Adding model 'Answer'\r
-        db.create_table(u'answer', (\r
-            ('wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('accepted_by', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'], null=True)),\r
-            ('accepted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-            ('wikified_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-            ('node_ptr', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Node'], null=True, primary_key=True)),\r
-            ('accepted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['Answer'])\r
-\r
-        # Adding model 'FlaggedItem'\r
-        db.create_table(u'flagged_item', (\r
-            ('node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='flaggeditems', null=True, to=orm['forum.Node'])),\r
-            ('flagged_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('reason', self.gf('django.db.models.fields.CharField')(max_length=300, null=True)),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='flaggeditems', to=orm['forum.User'])),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['FlaggedItem'])\r
-\r
-        # Adding model 'AnonymousNode'\r
-        db.create_table('forum_anonymousnode', (\r
-            ('convertible_to', self.gf('django.db.models.fields.CharField')(default='node', max_length=16)),\r
-            ('validation_hash', self.gf('django.db.models.fields.related.ForeignKey')(related_name='anonymous_content', to=orm['forum.Node'])),\r
-            ('node_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True, primary_key=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['AnonymousNode'])\r
-\r
-        # Adding model 'FavoriteQuestion'\r
-        db.create_table(u'favorite_question', (\r
-            ('question', self.gf('django.db.models.fields.related.ForeignKey')(related_name='favourites', to=orm['forum.Question'])),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='user_favorite_questions', to=orm['forum.User'])),\r
-        ))\r
-        db.send_create_signal('forum', ['FavoriteQuestion'])\r
-\r
-        # Adding model 'Question'\r
-        db.create_table(u'question', (\r
-            ('wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('last_activity_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='last_active_in_questions', null=True, to=orm['forum.User'])),\r
-            ('close_reason', self.gf('django.db.models.fields.SmallIntegerField')(null=True, blank=True)),\r
-            ('last_activity_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('view_count', self.gf('django.db.models.fields.IntegerField')(default=0)),\r
-            ('node_ptr', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Node'], null=True, primary_key=True)),\r
-            ('accepted_answer', self.gf('django.db.models.fields.related.OneToOneField')(related_name='question_accepting', unique=True, null=True, to=orm['forum.Answer'])),\r
-            ('closed', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('wikified_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-            ('closed_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),\r
-            ('closed_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='closed_questions', null=True, to=orm['forum.User'], blank=True)),\r
-        ))\r
-        db.send_create_signal('forum', ['Question'])\r
-\r
-        # Adding field 'Node.deleted_at'\r
-        db.add_column('forum_node', 'deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)\r
-\r
-        # Adding field 'Node.last_edited_by'\r
-        db.add_column('forum_node', 'last_edited_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='last_edited_nodes', null=True, to=orm['forum.User'], blank=True), keep_default=False)\r
-\r
-        # Adding field 'Node.deleted'\r
-        db.add_column('forum_node', 'deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-\r
-        # Adding field 'Node.deleted_by'\r
-        db.add_column('forum_node', 'deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='deleted_nodes', null=True, to=orm['forum.User'], blank=True), keep_default=False)\r
-\r
-        # Adding field 'Node.last_edited_at'\r
-        db.add_column('forum_node', 'last_edited_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'extra': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 28, 23, 43, 52, 301000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 29, 23, 43, 52, 512000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Deleting model 'Repute'
+        db.delete_table(u'repute')
+
+        # Deleting model 'Vote'
+        db.delete_table(u'vote')
+
+        # Deleting model 'Answer'
+        db.delete_table(u'answer')
+
+        # Deleting model 'FlaggedItem'
+        db.delete_table(u'flagged_item')
+
+        # Deleting model 'AnonymousNode'
+        db.delete_table('forum_anonymousnode')
+
+        # Deleting model 'FavoriteQuestion'
+        db.delete_table(u'favorite_question')
+
+        # Deleting model 'Question'
+        db.delete_table(u'question')
+
+        # Deleting field 'Node.deleted_at'
+        db.delete_column('forum_node', 'deleted_at')
+
+        # Deleting field 'Node.last_edited_by'
+        db.delete_column('forum_node', 'last_edited_by_id')
+
+        # Deleting field 'Node.deleted'
+        db.delete_column('forum_node', 'deleted')
+
+        # Deleting field 'Node.deleted_by'
+        db.delete_column('forum_node', 'deleted_by_id')
+
+        # Deleting field 'Node.last_edited_at'
+        db.delete_column('forum_node', 'last_edited_at')
+    
+    
+    def backwards(self, orm):
+        
+        # Adding model 'Repute'
+        db.create_table(u'repute', (
+            ('node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='reputes', null=True, to=orm['forum.Node'])),
+            ('reputed_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('question', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Question'])),
+            ('value', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),
+            ('canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('reputation_type', self.gf('django.db.models.fields.SmallIntegerField')()),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='reputes', to=orm['forum.User'])),
+            ('user_previous_rep', self.gf('django.db.models.fields.IntegerField')(default=0)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('forum', ['Repute'])
+
+        # Adding model 'Vote'
+        db.create_table(u'vote', (
+            ('node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='votes', null=True, to=orm['forum.Node'])),
+            ('vote', self.gf('django.db.models.fields.SmallIntegerField')()),
+            ('canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='votes', to=orm['forum.User'])),
+            ('voted_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('forum', ['Vote'])
+
+        # Adding model 'Answer'
+        db.create_table(u'answer', (
+            ('wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('accepted_by', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'], null=True)),
+            ('accepted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+            ('wikified_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+            ('node_ptr', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Node'], null=True, primary_key=True)),
+            ('accepted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+        ))
+        db.send_create_signal('forum', ['Answer'])
+
+        # Adding model 'FlaggedItem'
+        db.create_table(u'flagged_item', (
+            ('node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='flaggeditems', null=True, to=orm['forum.Node'])),
+            ('flagged_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('canceled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('reason', self.gf('django.db.models.fields.CharField')(max_length=300, null=True)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='flaggeditems', to=orm['forum.User'])),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('forum', ['FlaggedItem'])
+
+        # Adding model 'AnonymousNode'
+        db.create_table('forum_anonymousnode', (
+            ('convertible_to', self.gf('django.db.models.fields.CharField')(default='node', max_length=16)),
+            ('validation_hash', self.gf('django.db.models.fields.related.ForeignKey')(related_name='anonymous_content', to=orm['forum.Node'])),
+            ('node_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Node'], unique=True, primary_key=True)),
+        ))
+        db.send_create_signal('forum', ['AnonymousNode'])
+
+        # Adding model 'FavoriteQuestion'
+        db.create_table(u'favorite_question', (
+            ('question', self.gf('django.db.models.fields.related.ForeignKey')(related_name='favourites', to=orm['forum.Question'])),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('added_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='user_favorite_questions', to=orm['forum.User'])),
+        ))
+        db.send_create_signal('forum', ['FavoriteQuestion'])
+
+        # Adding model 'Question'
+        db.create_table(u'question', (
+            ('wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('last_activity_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='last_active_in_questions', null=True, to=orm['forum.User'])),
+            ('close_reason', self.gf('django.db.models.fields.SmallIntegerField')(null=True, blank=True)),
+            ('last_activity_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('view_count', self.gf('django.db.models.fields.IntegerField')(default=0)),
+            ('node_ptr', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Node'], null=True, primary_key=True)),
+            ('accepted_answer', self.gf('django.db.models.fields.related.OneToOneField')(related_name='question_accepting', unique=True, null=True, to=orm['forum.Answer'])),
+            ('closed', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('wikified_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+            ('closed_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+            ('closed_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='closed_questions', null=True, to=orm['forum.User'], blank=True)),
+        ))
+        db.send_create_signal('forum', ['Question'])
+
+        # Adding field 'Node.deleted_at'
+        db.add_column('forum_node', 'deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Node.last_edited_by'
+        db.add_column('forum_node', 'last_edited_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='last_edited_nodes', null=True, to=orm['forum.User'], blank=True), keep_default=False)
+
+        # Adding field 'Node.deleted'
+        db.add_column('forum_node', 'deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Node.deleted_by'
+        db.add_column('forum_node', 'deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='deleted_nodes', null=True, to=orm['forum.User'], blank=True), keep_default=False)
+
+        # Adding field 'Node.last_edited_at'
+        db.add_column('forum_node', 'last_edited_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'extra': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 28, 23, 43, 52, 301000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 29, 23, 43, 52, 512000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        }
+    }
+    
+    complete_apps = ['forum']
index 2cf638cb77d11a1802112dba46dbc665d06fbe4f..cbe5c5700136af4c86462dee21fcc63ce089742f 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Adding field 'Node.extra_action'\r
-        db.add_column('forum_node', 'extra_action', self.gf('django.db.models.fields.related.ForeignKey')(related_name='extra_node', null=True, to=orm['forum.Action']), keep_default=False)\r
-\r
-        # Adding field 'Node.deleted'\r
-        db.add_column('forum_node', 'deleted', self.gf('django.db.models.fields.related.ForeignKey')(related_name='deleted_node', unique=True, null=True, to=orm['forum.Action']), keep_default=False)\r
-\r
-        # Adding field 'Node.last_edited'\r
-        db.add_column('forum_node', 'last_edited', self.gf('django.db.models.fields.related.ForeignKey')(related_name='edited_node', unique=True, null=True, to=orm['forum.Action']), keep_default=False)\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Deleting field 'Node.extra_action'\r
-        db.delete_column('forum_node', 'extra_action_id')\r
-\r
-        # Deleting field 'Node.deleted'\r
-        db.delete_column('forum_node', 'deleted_id')\r
-\r
-        # Deleting field 'Node.last_edited'\r
-        db.delete_column('forum_node', 'last_edited_id')\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'extra': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 28, 23, 49, 37, 322000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 29, 23, 49, 37, 506000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Adding field 'Node.extra_action'
+        db.add_column('forum_node', 'extra_action', self.gf('django.db.models.fields.related.ForeignKey')(related_name='extra_node', null=True, to=orm['forum.Action']), keep_default=False)
+
+        # Adding field 'Node.deleted'
+        db.add_column('forum_node', 'deleted', self.gf('django.db.models.fields.related.ForeignKey')(related_name='deleted_node', unique=True, null=True, to=orm['forum.Action']), keep_default=False)
+
+        # Adding field 'Node.last_edited'
+        db.add_column('forum_node', 'last_edited', self.gf('django.db.models.fields.related.ForeignKey')(related_name='edited_node', unique=True, null=True, to=orm['forum.Action']), keep_default=False)
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting field 'Node.extra_action'
+        db.delete_column('forum_node', 'extra_action_id')
+
+        # Deleting field 'Node.deleted'
+        db.delete_column('forum_node', 'deleted_id')
+
+        # Deleting field 'Node.last_edited'
+        db.delete_column('forum_node', 'last_edited_id')
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'extra': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 28, 23, 49, 37, 322000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 29, 23, 49, 37, 506000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        }
+    }
+    
+    complete_apps = ['forum']
index 8521ffd57c7e20df817d575bef1af2bd830edfbf..e794e9c1a2e073a57e95b5aa12c619376fcca4c1 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import DataMigration\r
-from django.db import models\r
-from forum.migrations import ProgressBar\r
-\r
-class Migration(DataMigration):\r
-    \r
-    def forwards(self, orm):\r
-        n_count = orm.Node.objects.all().count()\r
-        print "\nReseting %d nodes:" % n_count\r
-        progress = ProgressBar(n_count)\r
-\r
-        for n in orm.Node.objects.all():\r
-            try:\r
-                d = orm.Action.objects.get(node=n, action_type="delete", canceled=False)\r
-                n.deleted_id = d.id\r
-            except Exception, e:\r
-                n.deleted = None\r
-\r
-            if orm.Action.objects.filter(node=n, action_type="revise").count() > 0:\r
-                n.last_edited_id = orm.Action.objects.filter(node=n, action_type="revise").order_by('-action_date')[0].id\r
-            else:\r
-                n.last_edited = None\r
-\r
-\r
-            if n.node_type == "answer" and n.marked:\r
-                n.extra_action_id = orm.Action.objects.get(node=n, action_type="acceptanswer", canceled=False).id\r
-\r
-            if n.node_type == "question" and n.marked:\r
-                n.extra_action_id = orm.Action.objects.get(node=n, action_type="close", canceled=False).id\r
-\r
-            n.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        "Write your backwards methods here."\r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'extra': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.activity': {\r
-            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},\r
-            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 28, 23, 55, 36, 647000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 29, 23, 55, 36, 708000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+from forum.migrations import ProgressBar
+
+class Migration(DataMigration):
+    
+    def forwards(self, orm):
+        n_count = orm.Node.objects.all().count()
+        print "\nReseting %d nodes:" % n_count
+        progress = ProgressBar(n_count)
+
+        for n in orm.Node.objects.all():
+            try:
+                d = orm.Action.objects.get(node=n, action_type="delete", canceled=False)
+                n.deleted_id = d.id
+            except Exception, e:
+                n.deleted = None
+
+            if orm.Action.objects.filter(node=n, action_type="revise").count() > 0:
+                n.last_edited_id = orm.Action.objects.filter(node=n, action_type="revise").order_by('-action_date')[0].id
+            else:
+                n.last_edited = None
+
+
+            if n.node_type == "answer" and n.marked:
+                n.extra_action_id = orm.Action.objects.get(node=n, action_type="acceptanswer", canceled=False).id
+
+            if n.node_type == "question" and n.marked:
+                n.extra_action_id = orm.Action.objects.get(node=n, action_type="close", canceled=False).id
+
+            n.save()
+
+            progress.update()
+
+        print "\n...done\n"
+    
+    
+    def backwards(self, orm):
+        "Write your backwards methods here."
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'extra': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.activity': {
+            'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
+            'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 28, 23, 55, 36, 647000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 29, 23, 55, 36, 708000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        }
+    }
+    
+    complete_apps = ['forum']
index 589b5bb5b4e151a47ae8baae0916291d9e36f58e..d4fbf28d4395c03992972490a9375a248dc15c61 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Deleting model 'Activity'\r
-        db.delete_table(u'activity')\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Adding model 'Activity'\r
-        db.create_table(u'activity', (\r
-            ('is_auditted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),\r
-            ('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),\r
-            ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])),\r
-            ('active_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('activity_type', self.gf('django.db.models.fields.SmallIntegerField')()),\r
-        ))\r
-        db.send_create_signal('forum', ['Activity'])\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'extra': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 29, 1, 30, 30, 35000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 30, 1, 30, 30, 211000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Deleting model 'Activity'
+        db.delete_table(u'activity')
+    
+    
+    def backwards(self, orm):
+        
+        # Adding model 'Activity'
+        db.create_table(u'activity', (
+            ('is_auditted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+            ('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),
+            ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])),
+            ('active_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('activity_type', self.gf('django.db.models.fields.SmallIntegerField')()),
+        ))
+        db.send_create_signal('forum', ['Activity'])
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'extra': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 29, 1, 30, 30, 35000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 30, 1, 30, 30, 211000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        }
+    }
+    
+    complete_apps = ['forum']
index 1170bf78ea3a9cbb946545dd6944528e85bfed5f..ebde4686da5de504c6d867130e489ca971527ad5 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Adding field 'Action.canceled_ip'\r
-        db.add_column('forum_action', 'canceled_ip', self.gf('django.db.models.fields.CharField')(default='', max_length=16), keep_default=False)\r
-\r
-        # Adding field 'ActionRepute.date'\r
-        db.add_column('forum_actionrepute', 'date', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now), keep_default=False)\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Deleting field 'Action.canceled_ip'\r
-        db.delete_column('forum_action', 'canceled_ip')\r
-\r
-        # Deleting field 'ActionRepute.date'\r
-        db.delete_column('forum_actionrepute', 'date')\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'extra': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 29, 21, 20, 24, 880000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 30, 21, 20, 35, 361000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Adding field 'Action.canceled_ip'
+        db.add_column('forum_action', 'canceled_ip', self.gf('django.db.models.fields.CharField')(default='', max_length=16), keep_default=False)
+
+        # Adding field 'ActionRepute.date'
+        db.add_column('forum_actionrepute', 'date', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now), keep_default=False)
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting field 'Action.canceled_ip'
+        db.delete_column('forum_action', 'canceled_ip')
+
+        # Deleting field 'ActionRepute.date'
+        db.delete_column('forum_actionrepute', 'date')
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'extra': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 29, 21, 20, 24, 880000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 30, 21, 20, 35, 361000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        }
+    }
+    
+    complete_apps = ['forum']
index 14d6e62f0e7b1db4556526dbb34704b1db50436e..241b094208c2cf385d05e075b243ac825b091015 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import DataMigration\r
-from django.db import models\r
-from forum.migrations import ProgressBar\r
-\r
-class Migration(DataMigration):\r
-    \r
-    def forwards(self, orm):\r
-        r_count = orm.ActionRepute.objects.count()\r
-        print "\nAdding dates to %d repute actions:" % r_count\r
-        progress = ProgressBar(r_count)\r
-\r
-        for r in orm.ActionRepute.objects.all():\r
-            a = r.action\r
-\r
-            if r.by_canceled:\r
-                r.date = a.canceled_at\r
-            else:\r
-                r.date = a.action_date\r
-\r
-            r.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        "Write your backwards methods here."\r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'extra': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 29, 21, 21, 16, 237000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 30, 21, 21, 16, 298000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+from forum.migrations import ProgressBar
+
+class Migration(DataMigration):
+    
+    def forwards(self, orm):
+        r_count = orm.ActionRepute.objects.count()
+        print "\nAdding dates to %d repute actions:" % r_count
+        progress = ProgressBar(r_count)
+
+        for r in orm.ActionRepute.objects.all():
+            a = r.action
+
+            if r.by_canceled:
+                r.date = a.canceled_at
+            else:
+                r.date = a.action_date
+
+            r.save()
+
+            progress.update()
+
+        print "\n...done\n"
+    
+    
+    def backwards(self, orm):
+        "Write your backwards methods here."
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'extra': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 29, 21, 21, 16, 237000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 30, 21, 21, 16, 298000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        }
+    }
+    
+    complete_apps = ['forum']
index cd4e1f1720e54cac05afbe29280b5b983614a621..1738875c20305e0f5afca6f0c5600e4f8e718845 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Changing field 'Action.extra'\r
-        db.alter_column('forum_action', 'extra', self.gf('forum.models.utils.PickledObjectField')(null=True))\r
-\r
-        # Changing field 'KeyValue.value'\r
-        db.alter_column('forum_keyvalue', 'value', self.gf('forum.models.utils.PickledObjectField')(null=True))\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Changing field 'Action.extra'\r
-        db.alter_column('forum_action', 'extra', self.gf('django.db.models.fields.CharField')(max_length=255))\r
-\r
-        # Changing field 'KeyValue.value'\r
-        db.alter_column('forum_keyvalue', 'value', self.gf('forum.models.utils.PickledObjectField')())\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 30, 23, 58, 8, 677000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 1, 23, 58, 8, 841000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Changing field 'Action.extra'
+        db.alter_column('forum_action', 'extra', self.gf('forum.models.utils.PickledObjectField')(null=True))
+
+        # Changing field 'KeyValue.value'
+        db.alter_column('forum_keyvalue', 'value', self.gf('forum.models.utils.PickledObjectField')(null=True))
+    
+    
+    def backwards(self, orm):
+        
+        # Changing field 'Action.extra'
+        db.alter_column('forum_action', 'extra', self.gf('django.db.models.fields.CharField')(max_length=255))
+
+        # Changing field 'KeyValue.value'
+        db.alter_column('forum_keyvalue', 'value', self.gf('forum.models.utils.PickledObjectField')())
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 30, 23, 58, 8, 677000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 1, 23, 58, 8, 841000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        }
+    }
+    
+    complete_apps = ['forum']
index 5c8bb7bde0f99c149c661fcb7389cfa46d28a6d4..c515747357f86b4c0d67393fd54e6c90a76cbf7c 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import DataMigration\r
-from django.db import models\r
-from forum.migrations import ProgressBar\r
-from forum.models.utils import dbsafe_encode\r
-\r
-try:\r
-    from cPickle import loads, dumps\r
-except ImportError:\r
-    from pickle import loads, dumps\r
-\r
-class Migration(DataMigration):\r
-    \r
-    def forwards(self, orm):\r
-        k_count = orm.KeyValue.objects.count()\r
-        print "\nConverting %d keyvalue objects:" % k_count\r
-        progress = ProgressBar(k_count)\r
-\r
-        for kv in orm.KeyValue.objects.all():\r
-            try:\r
-                o = loads(kv.value.encode('utf-8'))\r
-            except:\r
-                o = kv.value\r
-\r
-            kv.value = dbsafe_encode(o, compress_object=True)\r
-            kv.save()\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-        a_count = orm.Action.objects.count()\r
-        print "\nConverting %d actions extra fields:" % a_count\r
-        progress = ProgressBar(a_count)\r
-\r
-        for a in orm.Action.objects.all():\r
-            a.extra = dbsafe_encode(a.extra, compress_object=True)\r
-            a.save()\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        "Write your backwards methods here."\r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 1, 0, 0, 32, 37000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 2, 0, 0, 32, 86000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+from forum.migrations import ProgressBar
+from forum.models.utils import dbsafe_encode
+
+try:
+    from cPickle import loads, dumps
+except ImportError:
+    from pickle import loads, dumps
+
+class Migration(DataMigration):
+    
+    def forwards(self, orm):
+        k_count = orm.KeyValue.objects.count()
+        print "\nConverting %d keyvalue objects:" % k_count
+        progress = ProgressBar(k_count)
+
+        for kv in orm.KeyValue.objects.all():
+            try:
+                o = loads(kv.value.encode('utf-8'))
+            except:
+                o = kv.value
+
+            kv.value = dbsafe_encode(o, compress_object=True)
+            kv.save()
+            progress.update()
+
+        print "\n...done\n"
+
+        a_count = orm.Action.objects.count()
+        print "\nConverting %d actions extra fields:" % a_count
+        progress = ProgressBar(a_count)
+
+        for a in orm.Action.objects.all():
+            a.extra = dbsafe_encode(a.extra, compress_object=True)
+            a.save()
+            progress.update()
+
+        print "\n...done\n"
+    
+    
+    def backwards(self, orm):
+        "Write your backwards methods here."
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 1, 0, 0, 32, 37000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 2, 0, 0, 32, 86000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        }
+    }
+    
+    complete_apps = ['forum']
index 7a157720146d8a755ec41bb7dd53600aeebfd722..f30ba36e7b776466ec9173a5dc2d6d2a7a018091 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Deleting field 'User.hide_ignored_questions'\r
-        db.delete_column('forum_user', 'hide_ignored_questions')\r
-\r
-        # Deleting field 'User.questions_per_page'\r
-        db.delete_column('forum_user', 'questions_per_page')\r
-\r
-        # Deleting field 'User.email_key'\r
-        db.delete_column('forum_user', 'email_key')\r
-\r
-        # Adding field 'Node.in_moderation'\r
-        db.add_column('forum_node', 'in_moderation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='moderated_node', unique=True, null=True, to=orm['forum.Action']), keep_default=False)\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Adding field 'User.hide_ignored_questions'\r
-        db.add_column('forum_user', 'hide_ignored_questions', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-\r
-        # Adding field 'User.questions_per_page'\r
-        db.add_column('forum_user', 'questions_per_page', self.gf('django.db.models.fields.SmallIntegerField')(default=10), keep_default=False)\r
-\r
-        # Adding field 'User.email_key'\r
-        db.add_column('forum_user', 'email_key', self.gf('django.db.models.fields.CharField')(max_length=32, null=True), keep_default=False)\r
-\r
-        # Deleting field 'Node.in_moderation'\r
-        db.delete_column('forum_node', 'in_moderation_id')\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'in_moderation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'moderated_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 2, 4, 54, 13, 72000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 3, 4, 54, 13, 256000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Deleting field 'User.hide_ignored_questions'
+        db.delete_column('forum_user', 'hide_ignored_questions')
+
+        # Deleting field 'User.questions_per_page'
+        db.delete_column('forum_user', 'questions_per_page')
+
+        # Deleting field 'User.email_key'
+        db.delete_column('forum_user', 'email_key')
+
+        # Adding field 'Node.in_moderation'
+        db.add_column('forum_node', 'in_moderation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='moderated_node', unique=True, null=True, to=orm['forum.Action']), keep_default=False)
+    
+    
+    def backwards(self, orm):
+        
+        # Adding field 'User.hide_ignored_questions'
+        db.add_column('forum_user', 'hide_ignored_questions', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'User.questions_per_page'
+        db.add_column('forum_user', 'questions_per_page', self.gf('django.db.models.fields.SmallIntegerField')(default=10), keep_default=False)
+
+        # Adding field 'User.email_key'
+        db.add_column('forum_user', 'email_key', self.gf('django.db.models.fields.CharField')(max_length=32, null=True), keep_default=False)
+
+        # Deleting field 'Node.in_moderation'
+        db.delete_column('forum_node', 'in_moderation_id')
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'object_name': 'Award', 'db_table': "u'award'"},
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'in_moderation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'moderated_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 2, 4, 54, 13, 72000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 3, 4, 54, 13, 256000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        }
+    }
+    
+    complete_apps = ['forum']
index f2b38e842648688def0e4cc1a540129f4b6ad249..9d6980a16486c393c9d6c8a7e7018bf483fbcb01 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        db.rename_table('award', 'forum_award')\r
-        db.rename_table('badge', 'forum_badge')\r
-        db.rename_table('tag', 'forum_tag')\r
-        \r
-        # Adding model 'Flag'\r
-        db.create_table('forum_flag', (\r
-            ('node', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Node'])),\r
-            ('action', self.gf('django.db.models.fields.related.ForeignKey')(related_name='flag', unique=True, to=orm['forum.Action'])),\r
-            ('reason', self.gf('django.db.models.fields.CharField')(max_length=300)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),\r
-            ('flagged_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-        ))\r
-        #db.send_create_signal('forum', ['Flag'])\r
-\r
-        # Adding model 'Vote'\r
-        db.create_table('forum_vote', (\r
-            ('node', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Node'])),\r
-            ('action', self.gf('django.db.models.fields.related.ForeignKey')(related_name='vote', unique=True, to=orm['forum.Action'])),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('value', self.gf('django.db.models.fields.SmallIntegerField')()),\r
-            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),\r
-            ('voted_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),\r
-        ))\r
-        #db.send_create_signal('forum', ['Vote'])\r
-\r
-        # Adding field 'Badge.cls'\r
-        db.add_column('forum_badge', 'cls', self.gf('django.db.models.fields.CharField')(max_length=50, null=True), keep_default=False)\r
-\r
-        # Removing unique constraint on 'Badge', fields ['type', 'name']\r
-        db.delete_unique(u'forum_badge', ['type', 'name'])\r
-\r
-        # Deleting field 'Award.notified'\r
-        db.delete_column(u'forum_award', 'notified')\r
-\r
-        # Adding field 'Award.node'\r
-        db.add_column('forum_award', 'node', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['forum.Node'], null=True), keep_default=False)\r
-\r
-        # Adding field 'Award.trigger'\r
-        db.add_column('forum_award', 'trigger', self.gf('django.db.models.fields.related.ForeignKey')(related_name='awards', null=True, to=orm['forum.Action']), keep_default=False)\r
-\r
-        # Adding field 'Award.action'\r
-        db.add_column('forum_award', 'action', self.gf('django.db.models.fields.related.ForeignKey')(default=1, related_name='award', to=orm['forum.Action']), keep_default=False)\r
-\r
-        # Adding unique constraint on 'Award', fields ['node', 'badge', 'user']\r
-        #db.create_unique('forum_award', ['node_id', 'badge_id', 'user_id'])\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Deleting model 'Flag'\r
-        db.delete_table('forum_flag')\r
-\r
-        # Deleting model 'Vote'\r
-        db.delete_table('forum_vote')\r
-\r
-        # Deleting field 'Badge.cls'\r
-        db.delete_column('forum_badge', 'cls')\r
-\r
-        # Adding unique constraint on 'Badge', fields ['type', 'name']\r
-        db.create_unique(u'badge', ['type', 'name'])\r
-\r
-        # Adding field 'Award.notified'\r
-        db.add_column(u'award', 'notified', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-\r
-        # Deleting field 'Award.node'\r
-        db.delete_column('forum_award', 'node_id')\r
-\r
-        # Deleting field 'Award.trigger'\r
-        db.delete_column('forum_award', 'trigger_id')\r
-\r
-        # Deleting field 'Award.action'\r
-        db.delete_column('forum_award', 'action_id')\r
-\r
-        # Removing unique constraint on 'Award', fields ['node', 'badge', 'user']\r
-        db.delete_unique('forum_award', ['node_id', 'badge_id', 'user_id'])\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award'", 'to': "orm['forum.Action']"}),\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'object_name': 'Badge'},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.flag': {\r
-            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'in_moderation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'moderated_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 3, 11, 41, 55, 831000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag'},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 4, 11, 41, 59, 140000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        db.rename_table('award', 'forum_award')
+        db.rename_table('badge', 'forum_badge')
+        db.rename_table('tag', 'forum_tag')
+        
+        # Adding model 'Flag'
+        db.create_table('forum_flag', (
+            ('node', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Node'])),
+            ('action', self.gf('django.db.models.fields.related.ForeignKey')(related_name='flag', unique=True, to=orm['forum.Action'])),
+            ('reason', self.gf('django.db.models.fields.CharField')(max_length=300)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),
+            ('flagged_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+        ))
+        #db.send_create_signal('forum', ['Flag'])
+
+        # Adding model 'Vote'
+        db.create_table('forum_vote', (
+            ('node', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.Node'])),
+            ('action', self.gf('django.db.models.fields.related.ForeignKey')(related_name='vote', unique=True, to=orm['forum.Action'])),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('value', self.gf('django.db.models.fields.SmallIntegerField')()),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['forum.User'])),
+            ('voted_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+        ))
+        #db.send_create_signal('forum', ['Vote'])
+
+        # Adding field 'Badge.cls'
+        db.add_column('forum_badge', 'cls', self.gf('django.db.models.fields.CharField')(max_length=50, null=True), keep_default=False)
+
+        # Removing unique constraint on 'Badge', fields ['type', 'name']
+        db.delete_unique(u'forum_badge', ['type', 'name'])
+
+        # Deleting field 'Award.notified'
+        db.delete_column(u'forum_award', 'notified')
+
+        # Adding field 'Award.node'
+        db.add_column('forum_award', 'node', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['forum.Node'], null=True), keep_default=False)
+
+        # Adding field 'Award.trigger'
+        db.add_column('forum_award', 'trigger', self.gf('django.db.models.fields.related.ForeignKey')(related_name='awards', null=True, to=orm['forum.Action']), keep_default=False)
+
+        # Adding field 'Award.action'
+        db.add_column('forum_award', 'action', self.gf('django.db.models.fields.related.ForeignKey')(default=1, related_name='award', to=orm['forum.Action']), keep_default=False)
+
+        # Adding unique constraint on 'Award', fields ['node', 'badge', 'user']
+        #db.create_unique('forum_award', ['node_id', 'badge_id', 'user_id'])
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting model 'Flag'
+        db.delete_table('forum_flag')
+
+        # Deleting model 'Vote'
+        db.delete_table('forum_vote')
+
+        # Deleting field 'Badge.cls'
+        db.delete_column('forum_badge', 'cls')
+
+        # Adding unique constraint on 'Badge', fields ['type', 'name']
+        db.create_unique(u'badge', ['type', 'name'])
+
+        # Adding field 'Award.notified'
+        db.add_column(u'award', 'notified', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Deleting field 'Award.node'
+        db.delete_column('forum_award', 'node_id')
+
+        # Deleting field 'Award.trigger'
+        db.delete_column('forum_award', 'trigger_id')
+
+        # Deleting field 'Award.action'
+        db.delete_column('forum_award', 'action_id')
+
+        # Removing unique constraint on 'Award', fields ['node', 'badge', 'user']
+        db.delete_unique('forum_award', ['node_id', 'badge_id', 'user_id'])
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award'", 'to': "orm['forum.Action']"}),
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'object_name': 'Badge'},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.flag': {
+            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'in_moderation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'moderated_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 3, 11, 41, 55, 831000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag'},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 4, 11, 41, 59, 140000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+        }
+    }
+    
+    complete_apps = ['forum']
index 89399f9ae9f44b67e878af86991d68b2611de9a0..705212984c8e6dac42d6b3e6317feab7e8e58dd0 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import DataMigration\r
-from django.db import models\r
-from forum.migrations import ProgressBar\r
-from forum.models.utils import dbsafe_decode\r
-\r
-class Migration(DataMigration):\r
-\r
-    def forwards(self, orm):\r
-        b_count = orm.Badge.objects.count()\r
-        print "\nConverting %d badges:" % b_count\r
-        progress = ProgressBar(b_count)\r
-\r
-        for b in orm.Badge.objects.all():\r
-            b.cls = "".join([s[0].upper() + s[1:] for s in b.slug.split('-')])\r
-            b.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-        ctypes = dict([(ct.name, ct.id) for ct in orm['contenttypes.ContentType'].objects.all()])\r
-\r
-        a_count = orm.Award.objects.count()\r
-        print "\nConverting %d awards:" % a_count\r
-        progress = ProgressBar(a_count)\r
-\r
-        for a in orm.Award.objects.all():\r
-            if a.content_type.id == ctypes['user']:\r
-                a.node = None\r
-            else:\r
-                try:\r
-                    a.node = orm.Node.objects.get(id=a.object_id)\r
-                except:\r
-                    a.delete()\r
-                    continue\r
-\r
-            action = orm.Action(\r
-                user = a.user,\r
-                node = a.node,\r
-                action_type = "award",\r
-                action_date = a.awarded_at,\r
-            )\r
-\r
-            action.save()\r
-\r
-            a.action = action\r
-            a.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-\r
-        a_count = orm.Action.objects.filter(action_type__in=("voteup", "votedown", "voteupcomment")).count()\r
-        print "\nConverting %d votes:" % a_count\r
-        progress = ProgressBar(a_count)\r
-\r
-        for a in orm.Action.objects.filter(action_type__in=("voteup", "votedown", "voteupcomment"), canceled=False):\r
-            v = orm.Vote(\r
-                user = a.user,\r
-                node = a.node,\r
-                value = (a.action_type in ("voteup", "voteupcomment")) and 1 or -1,\r
-                action = a,\r
-                voted_at = a.action_date\r
-            )\r
-\r
-            v.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-\r
-        a_count = orm.Action.objects.filter(action_type__in=("voteup", "votedown", "voteupcomment")).count()\r
-        print "\nConverting %d votes:" % a_count\r
-        progress = ProgressBar(a_count)\r
-\r
-        for a in orm.Action.objects.filter(action_type="flag", canceled=False):\r
-            f = orm.Flag(\r
-                user = a.user,\r
-                node = a.node,\r
-                reason = a.extra,\r
-                action = a,\r
-                flagged_at = a.action_date\r
-            )\r
-\r
-            f.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        "Write your backwards methods here."\r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award'", 'to': "orm['forum.Action']"}),\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Badge']"}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'object_name': 'Badge'},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),\r
-            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.flag': {\r
-            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'in_moderation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'moderated_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 3, 11, 43, 54, 540000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag'},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 4, 11, 43, 54, 592000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+from forum.migrations import ProgressBar
+from forum.models.utils import dbsafe_decode
+
+class Migration(DataMigration):
+
+    def forwards(self, orm):
+        b_count = orm.Badge.objects.count()
+        print "\nConverting %d badges:" % b_count
+        progress = ProgressBar(b_count)
+
+        for b in orm.Badge.objects.all():
+            b.cls = "".join([s[0].upper() + s[1:] for s in b.slug.split('-')])
+            b.save()
+
+            progress.update()
+
+        print "\n...done\n"
+
+        ctypes = dict([(ct.name, ct.id) for ct in orm['contenttypes.ContentType'].objects.all()])
+
+        a_count = orm.Award.objects.count()
+        print "\nConverting %d awards:" % a_count
+        progress = ProgressBar(a_count)
+
+        for a in orm.Award.objects.all():
+            if a.content_type.id == ctypes['user']:
+                a.node = None
+            else:
+                try:
+                    a.node = orm.Node.objects.get(id=a.object_id)
+                except:
+                    a.delete()
+                    continue
+
+            action = orm.Action(
+                user = a.user,
+                node = a.node,
+                action_type = "award",
+                action_date = a.awarded_at,
+            )
+
+            action.save()
+
+            a.action = action
+            a.save()
+
+            progress.update()
+
+        print "\n...done\n"
+
+
+        a_count = orm.Action.objects.filter(action_type__in=("voteup", "votedown", "voteupcomment")).count()
+        print "\nConverting %d votes:" % a_count
+        progress = ProgressBar(a_count)
+
+        for a in orm.Action.objects.filter(action_type__in=("voteup", "votedown", "voteupcomment"), canceled=False):
+            v = orm.Vote(
+                user = a.user,
+                node = a.node,
+                value = (a.action_type in ("voteup", "voteupcomment")) and 1 or -1,
+                action = a,
+                voted_at = a.action_date
+            )
+
+            v.save()
+
+            progress.update()
+
+        print "\n...done\n"
+
+        a_count = orm.Action.objects.filter(action_type__in=("voteup", "votedown", "voteupcomment")).count()
+        print "\nConverting %d votes:" % a_count
+        progress = ProgressBar(a_count)
+
+        for a in orm.Action.objects.filter(action_type="flag", canceled=False):
+            f = orm.Flag(
+                user = a.user,
+                node = a.node,
+                reason = a.extra,
+                action = a,
+                flagged_at = a.action_date
+            )
+
+            f.save()
+
+            progress.update()
+
+        print "\n...done\n"
+    
+    
+    def backwards(self, orm):
+        "Write your backwards methods here."
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award'", 'to': "orm['forum.Action']"}),
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Badge']"}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'object_name': 'Badge'},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.flag': {
+            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'in_moderation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'moderated_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 3, 11, 43, 54, 540000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag'},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 4, 11, 43, 54, 592000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+        }
+    }
+    
+    complete_apps = ['forum']
index b566ef09fcc2cfd40e2684b93397ba76e8b09b4d..4d80c712cb960c3fe466b95bd74f842756af7174 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Deleting field 'Award.object_id'\r
-        db.delete_column('forum_award', 'object_id')\r
-\r
-        # Deleting field 'Award.content_type'\r
-        db.delete_column('forum_award', 'content_type_id')\r
-\r
-        # Adding unique constraint on 'Award', fields ['action']\r
-        db.create_unique('forum_award', ['action_id'])\r
-\r
-        # Deleting field 'Badge.multiple'\r
-        db.delete_column('forum_badge', 'multiple')\r
-\r
-        # Deleting field 'Badge.name'\r
-        db.delete_column('forum_badge', 'name')\r
-\r
-        # Deleting field 'Badge.slug'\r
-        db.delete_column('forum_badge', 'slug')\r
-\r
-        # Deleting field 'Badge.description'\r
-        db.delete_column('forum_badge', 'description')\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Adding field 'Award.object_id'\r
-        db.add_column('forum_award', 'object_id', self.gf('django.db.models.fields.PositiveIntegerField')(default=1), keep_default=False)\r
-\r
-        # Adding field 'Award.content_type'\r
-        db.add_column('forum_award', 'content_type', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['contenttypes.ContentType']), keep_default=False)\r
-\r
-        # Removing unique constraint on 'Award', fields ['action']\r
-        db.delete_unique('forum_award', ['action_id'])\r
-\r
-        # Adding field 'Badge.multiple'\r
-        db.add_column('forum_badge', 'multiple', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-\r
-        # Adding field 'Badge.name'\r
-        db.add_column('forum_badge', 'name', self.gf('django.db.models.fields.CharField')(default=1, max_length=50), keep_default=False)\r
-\r
-        # Adding field 'Badge.slug'\r
-        db.add_column('forum_badge', 'slug', self.gf('django.db.models.fields.SlugField')(blank=True, default=1, max_length=50, db_index=True), keep_default=False)\r
-\r
-        # Adding field 'Badge.description'\r
-        db.add_column('forum_badge', 'description', self.gf('django.db.models.fields.CharField')(default=1, max_length=300), keep_default=False)\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Badge']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'object_name': 'Badge'},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),\r
-            'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.flag': {\r
-            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'in_moderation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'moderated_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 3, 11, 46, 22, 80000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag'},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 4, 11, 46, 28, 428000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Deleting field 'Award.object_id'
+        db.delete_column('forum_award', 'object_id')
+
+        # Deleting field 'Award.content_type'
+        db.delete_column('forum_award', 'content_type_id')
+
+        # Adding unique constraint on 'Award', fields ['action']
+        db.create_unique('forum_award', ['action_id'])
+
+        # Deleting field 'Badge.multiple'
+        db.delete_column('forum_badge', 'multiple')
+
+        # Deleting field 'Badge.name'
+        db.delete_column('forum_badge', 'name')
+
+        # Deleting field 'Badge.slug'
+        db.delete_column('forum_badge', 'slug')
+
+        # Deleting field 'Badge.description'
+        db.delete_column('forum_badge', 'description')
+    
+    
+    def backwards(self, orm):
+        
+        # Adding field 'Award.object_id'
+        db.add_column('forum_award', 'object_id', self.gf('django.db.models.fields.PositiveIntegerField')(default=1), keep_default=False)
+
+        # Adding field 'Award.content_type'
+        db.add_column('forum_award', 'content_type', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['contenttypes.ContentType']), keep_default=False)
+
+        # Removing unique constraint on 'Award', fields ['action']
+        db.delete_unique('forum_award', ['action_id'])
+
+        # Adding field 'Badge.multiple'
+        db.add_column('forum_badge', 'multiple', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Badge.name'
+        db.add_column('forum_badge', 'name', self.gf('django.db.models.fields.CharField')(default=1, max_length=50), keep_default=False)
+
+        # Adding field 'Badge.slug'
+        db.add_column('forum_badge', 'slug', self.gf('django.db.models.fields.SlugField')(blank=True, default=1, max_length=50, db_index=True), keep_default=False)
+
+        # Adding field 'Badge.description'
+        db.add_column('forum_badge', 'description', self.gf('django.db.models.fields.CharField')(default=1, max_length=300), keep_default=False)
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Badge']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'object_name': 'Badge'},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
+            'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.flag': {
+            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'in_moderation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'moderated_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 3, 11, 46, 22, 80000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag'},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 4, 11, 46, 28, 428000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+        }
+    }
+    
+    complete_apps = ['forum']
index ac1625678ffb69057a30b587ddabb2940452a089..903dc92a287495ed34e1832feccbdfd8fa9c5664 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Adding model 'NodeState'\r
-        db.create_table('forum_nodestate', (\r
-            ('node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='state', to=orm['forum.Node'])),\r
-            ('state_type', self.gf('django.db.models.fields.CharField')(max_length=16)),\r
-            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),\r
-            ('action', self.gf('django.db.models.fields.related.ForeignKey')(related_name='node_state', unique=True, to=orm['forum.Action'])),\r
-        ))\r
-        db.send_create_signal('forum', ['NodeState'])\r
-\r
-        # Changing field 'Award.action'\r
-        db.alter_column('forum_award', 'action_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, to=orm['forum.Action']))\r
-\r
-        # Adding field 'Node.state_string'\r
-        db.add_column('forum_node', 'state_string', self.gf('django.db.models.fields.TextField')(default=''), keep_default=False)\r
-\r
-        # Changing field 'Flag.action'\r
-        db.alter_column('forum_flag', 'action_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, to=orm['forum.Action']))\r
-\r
-        # Changing field 'Vote.action'\r
-        db.alter_column('forum_vote', 'action_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, to=orm['forum.Action']))\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Deleting model 'NodeState'\r
-        db.delete_table('forum_nodestate')\r
-\r
-        # Changing field 'Award.action'\r
-        db.alter_column('forum_award', 'action_id', self.gf('django.db.models.fields.related.ForeignKey')(unique=True, to=orm['forum.Action']))\r
-\r
-        # Deleting field 'Node.state_string'\r
-        db.delete_column('forum_node', 'state_string')\r
-\r
-        # Changing field 'Flag.action'\r
-        db.alter_column('forum_flag', 'action_id', self.gf('django.db.models.fields.related.ForeignKey')(unique=True, to=orm['forum.Action']))\r
-\r
-        # Changing field 'Vote.action'\r
-        db.alter_column('forum_vote', 'action_id', self.gf('django.db.models.fields.related.ForeignKey')(unique=True, to=orm['forum.Action']))\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},\r
-            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'award'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.Badge']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'object_name': 'Badge'},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'symmetrical': 'False', 'through': "orm['forum.Award']", 'to': "orm['forum.User']"}),\r
-            'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.flag': {\r
-            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},\r
-            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'in_moderation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'moderated_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'state_string': ('django.db.models.fields.TextField', [], {'default': "''"}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'symmetrical': 'False', 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.nodestate': {\r
-            'Meta': {'unique_together': "(('node', 'state_type'),)", 'object_name': 'NodeState'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'node_state'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'state'", 'to': "orm['forum.Node']"}),\r
-            'state_type': ('django.db.models.fields.CharField', [], {'max_length': '16'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 24, 12, 24, 54, 587000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag'},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'symmetrical': 'False', 'through': "orm['forum.MarkedTag']", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'symmetrical': 'False', 'through': "orm['forum.QuestionSubscription']", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 25, 12, 24, 54, 760000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},\r
-            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Adding model 'NodeState'
+        db.create_table('forum_nodestate', (
+            ('node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='state', to=orm['forum.Node'])),
+            ('state_type', self.gf('django.db.models.fields.CharField')(max_length=16)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('action', self.gf('django.db.models.fields.related.ForeignKey')(related_name='node_state', unique=True, to=orm['forum.Action'])),
+        ))
+        db.send_create_signal('forum', ['NodeState'])
+
+        # Changing field 'Award.action'
+        db.alter_column('forum_award', 'action_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, to=orm['forum.Action']))
+
+        # Adding field 'Node.state_string'
+        db.add_column('forum_node', 'state_string', self.gf('django.db.models.fields.TextField')(default=''), keep_default=False)
+
+        # Changing field 'Flag.action'
+        db.alter_column('forum_flag', 'action_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, to=orm['forum.Action']))
+
+        # Changing field 'Vote.action'
+        db.alter_column('forum_vote', 'action_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, to=orm['forum.Action']))
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting model 'NodeState'
+        db.delete_table('forum_nodestate')
+
+        # Changing field 'Award.action'
+        db.alter_column('forum_award', 'action_id', self.gf('django.db.models.fields.related.ForeignKey')(unique=True, to=orm['forum.Action']))
+
+        # Deleting field 'Node.state_string'
+        db.delete_column('forum_node', 'state_string')
+
+        # Changing field 'Flag.action'
+        db.alter_column('forum_flag', 'action_id', self.gf('django.db.models.fields.related.ForeignKey')(unique=True, to=orm['forum.Action']))
+
+        # Changing field 'Vote.action'
+        db.alter_column('forum_vote', 'action_id', self.gf('django.db.models.fields.related.ForeignKey')(unique=True, to=orm['forum.Action']))
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},
+            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'award'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.Badge']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'object_name': 'Badge'},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'symmetrical': 'False', 'through': "orm['forum.Award']", 'to': "orm['forum.User']"}),
+            'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.flag': {
+            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},
+            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'in_moderation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'moderated_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'state_string': ('django.db.models.fields.TextField', [], {'default': "''"}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'symmetrical': 'False', 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.nodestate': {
+            'Meta': {'unique_together': "(('node', 'state_type'),)", 'object_name': 'NodeState'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'node_state'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'state'", 'to': "orm['forum.Node']"}),
+            'state_type': ('django.db.models.fields.CharField', [], {'max_length': '16'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 24, 12, 24, 54, 587000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag'},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'symmetrical': 'False', 'through': "orm['forum.MarkedTag']", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'symmetrical': 'False', 'through': "orm['forum.QuestionSubscription']", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 25, 12, 24, 54, 760000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},
+            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index 79ed9c901fde254a14a1720953006bf874b3e913..1143c46af236385967b428a37765d1fb58cf1a91 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import DataMigration\r
-from django.db import models\r
-from forum.migrations import ProgressBar\r
-\r
-class Migration(DataMigration):\r
-    \r
-    def forwards(self, orm):\r
-        n_count = orm.Node.objects.count()\r
-        print "\nConverting %s node states:" % n_count\r
-        progress = ProgressBar(n_count)\r
-\r
-        for n in orm.Node.objects.all():\r
-            ss = ""\r
-\r
-            if n.deleted:\r
-                s = orm.NodeState(\r
-                    node = n,\r
-                    action = n.deleted,\r
-                    state_type = "deleted"\r
-                )\r
-                s.save()\r
-                ss += "(deleted)"\r
-\r
-            if n.wiki:\r
-                try:\r
-                    action = orm.Action.objects.get(node=n, action_type="wikify")\r
-                    s = orm.NodeState(\r
-                        node = n,\r
-                        action = action,\r
-                        state_type = "wiki"\r
-                    )\r
-                    s.save()\r
-                    ss += "(wiki)"\r
-                except:\r
-                    pass\r
-\r
-            if n.node_type == "question" and n.extra_action:\r
-                s = orm.NodeState(\r
-                    node = n,\r
-                    action = n.extra_action,\r
-                    state_type = "closed"\r
-                )\r
-                s.save()\r
-                ss += "(closed)"\r
-\r
-            if n.node_type == "answer" and n.extra_action:\r
-                s = orm.NodeState(\r
-                    node = n,\r
-                    action = n.extra_action,\r
-                    state_type = "accepted"\r
-                )\r
-                s.save()\r
-                ss += "(accepted)"\r
-\r
-            if ss:\r
-                n.state_string = ss\r
-                n.save()\r
-\r
-            progress.update()\r
-\r
-        print "\n...done\n"\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        "Write your backwards methods here."\r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},\r
-            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'award'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.Badge']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'object_name': 'Badge'},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'symmetrical': 'False', 'through': "orm['forum.Award']", 'to': "orm['forum.User']"}),\r
-            'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.flag': {\r
-            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},\r
-            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'in_moderation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'moderated_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'state_string': ('django.db.models.fields.TextField', [], {'default': "''"}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'symmetrical': 'False', 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.nodestate': {\r
-            'Meta': {'unique_together': "(('node', 'state_type'),)", 'object_name': 'NodeState'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'node_state'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'state'", 'to': "orm['forum.Node']"}),\r
-            'state_type': ('django.db.models.fields.CharField', [], {'max_length': '16'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 24, 12, 26, 33, 742000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag'},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'symmetrical': 'False', 'through': "orm['forum.MarkedTag']", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'symmetrical': 'False', 'through': "orm['forum.QuestionSubscription']", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 25, 12, 26, 33, 797000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},\r
-            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+from forum.migrations import ProgressBar
+
+class Migration(DataMigration):
+    
+    def forwards(self, orm):
+        n_count = orm.Node.objects.count()
+        print "\nConverting %s node states:" % n_count
+        progress = ProgressBar(n_count)
+
+        for n in orm.Node.objects.all():
+            ss = ""
+
+            if n.deleted:
+                s = orm.NodeState(
+                    node = n,
+                    action = n.deleted,
+                    state_type = "deleted"
+                )
+                s.save()
+                ss += "(deleted)"
+
+            if n.wiki:
+                try:
+                    action = orm.Action.objects.get(node=n, action_type="wikify")
+                    s = orm.NodeState(
+                        node = n,
+                        action = action,
+                        state_type = "wiki"
+                    )
+                    s.save()
+                    ss += "(wiki)"
+                except:
+                    pass
+
+            if n.node_type == "question" and n.extra_action:
+                s = orm.NodeState(
+                    node = n,
+                    action = n.extra_action,
+                    state_type = "closed"
+                )
+                s.save()
+                ss += "(closed)"
+
+            if n.node_type == "answer" and n.extra_action:
+                s = orm.NodeState(
+                    node = n,
+                    action = n.extra_action,
+                    state_type = "accepted"
+                )
+                s.save()
+                ss += "(accepted)"
+
+            if ss:
+                n.state_string = ss
+                n.save()
+
+            progress.update()
+
+        print "\n...done\n"
+    
+    
+    def backwards(self, orm):
+        "Write your backwards methods here."
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},
+            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'award'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.Badge']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'object_name': 'Badge'},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'symmetrical': 'False', 'through': "orm['forum.Award']", 'to': "orm['forum.User']"}),
+            'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.flag': {
+            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},
+            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'in_moderation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'moderated_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'state_string': ('django.db.models.fields.TextField', [], {'default': "''"}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'symmetrical': 'False', 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.nodestate': {
+            'Meta': {'unique_together': "(('node', 'state_type'),)", 'object_name': 'NodeState'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'node_state'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'state'", 'to': "orm['forum.Node']"}),
+            'state_type': ('django.db.models.fields.CharField', [], {'max_length': '16'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 24, 12, 26, 33, 742000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag'},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'symmetrical': 'False', 'through': "orm['forum.MarkedTag']", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'symmetrical': 'False', 'through': "orm['forum.QuestionSubscription']", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 25, 12, 26, 33, 797000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},
+            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index c38e21f4f90db6bec6e2429ff80b3ee13b45e5cc..0b80f8cc828503b04cdd48ca71d7e59a32de1107 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Deleting field 'Node.wiki'\r
-        db.delete_column('forum_node', 'wiki')\r
-\r
-        # Deleting field 'Node.deleted'\r
-        db.delete_column('forum_node', 'deleted_id')\r
-\r
-        # Deleting field 'Node.extra_action'\r
-        db.delete_column('forum_node', 'extra_action_id')\r
-\r
-        # Deleting field 'Node.in_moderation'\r
-        db.delete_column('forum_node', 'in_moderation_id')\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Adding field 'Node.wiki'\r
-        db.add_column('forum_node', 'wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-\r
-        # Adding field 'Node.deleted'\r
-        db.add_column('forum_node', 'deleted', self.gf('django.db.models.fields.related.ForeignKey')(related_name='deleted_node', unique=True, null=True, to=orm['forum.Action']), keep_default=False)\r
-\r
-        # Adding field 'Node.extra_action'\r
-        db.add_column('forum_node', 'extra_action', self.gf('django.db.models.fields.related.ForeignKey')(related_name='extra_node', null=True, to=orm['forum.Action']), keep_default=False)\r
-\r
-        # Adding field 'Node.in_moderation'\r
-        db.add_column('forum_node', 'in_moderation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='moderated_node', unique=True, null=True, to=orm['forum.Action']), keep_default=False)\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},\r
-            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'award'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.Badge']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'object_name': 'Badge'},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'symmetrical': 'False', 'through': "orm['forum.Award']", 'to': "orm['forum.User']"}),\r
-            'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.flag': {\r
-            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},\r
-            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'state_string': ('django.db.models.fields.TextField', [], {'default': "''"}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'symmetrical': 'False', 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.nodestate': {\r
-            'Meta': {'unique_together': "(('node', 'state_type'),)", 'object_name': 'NodeState'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'node_state'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'states'", 'to': "orm['forum.Node']"}),\r
-            'state_type': ('django.db.models.fields.CharField', [], {'max_length': '16'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 24, 19, 29, 24, 232000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag'},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'symmetrical': 'False', 'through': "orm['forum.MarkedTag']", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'symmetrical': 'False', 'through': "orm['forum.QuestionSubscription']", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 25, 19, 29, 24, 443000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},\r
-            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Deleting field 'Node.wiki'
+        db.delete_column('forum_node', 'wiki')
+
+        # Deleting field 'Node.deleted'
+        db.delete_column('forum_node', 'deleted_id')
+
+        # Deleting field 'Node.extra_action'
+        db.delete_column('forum_node', 'extra_action_id')
+
+        # Deleting field 'Node.in_moderation'
+        db.delete_column('forum_node', 'in_moderation_id')
+    
+    
+    def backwards(self, orm):
+        
+        # Adding field 'Node.wiki'
+        db.add_column('forum_node', 'wiki', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Node.deleted'
+        db.add_column('forum_node', 'deleted', self.gf('django.db.models.fields.related.ForeignKey')(related_name='deleted_node', unique=True, null=True, to=orm['forum.Action']), keep_default=False)
+
+        # Adding field 'Node.extra_action'
+        db.add_column('forum_node', 'extra_action', self.gf('django.db.models.fields.related.ForeignKey')(related_name='extra_node', null=True, to=orm['forum.Action']), keep_default=False)
+
+        # Adding field 'Node.in_moderation'
+        db.add_column('forum_node', 'in_moderation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='moderated_node', unique=True, null=True, to=orm['forum.Action']), keep_default=False)
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},
+            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'award'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.Badge']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'object_name': 'Badge'},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'symmetrical': 'False', 'through': "orm['forum.Award']", 'to': "orm['forum.User']"}),
+            'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.flag': {
+            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},
+            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'state_string': ('django.db.models.fields.TextField', [], {'default': "''"}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'symmetrical': 'False', 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.nodestate': {
+            'Meta': {'unique_together': "(('node', 'state_type'),)", 'object_name': 'NodeState'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'node_state'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'states'", 'to': "orm['forum.Node']"}),
+            'state_type': ('django.db.models.fields.CharField', [], {'max_length': '16'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 24, 19, 29, 24, 232000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag'},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'symmetrical': 'False', 'through': "orm['forum.MarkedTag']", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'symmetrical': 'False', 'through': "orm['forum.QuestionSubscription']", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 25, 19, 29, 24, 443000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},
+            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index 4a91aa716fc76182072e694fa0d842453b213f01..1e8cf3a7c3dee61403a9939262bb84fff8c3bf48 100644 (file)
-# encoding: utf-8\r
-import datetime\r
-from south.db import db\r
-from south.v2 import SchemaMigration\r
-from django.db import models\r
-\r
-class Migration(SchemaMigration):\r
-    \r
-    def forwards(self, orm):\r
-        \r
-        # Deleting field 'Tag.deleted'\r
-        db.delete_column('forum_tag', 'deleted')\r
-\r
-        # Deleting field 'Tag.deleted_by'\r
-        db.delete_column('forum_tag', 'deleted_by_id')\r
-\r
-        # Deleting field 'Tag.deleted_at'\r
-        db.delete_column('forum_tag', 'deleted_at')\r
-    \r
-    \r
-    def backwards(self, orm):\r
-        \r
-        # Adding field 'Tag.deleted'\r
-        db.add_column('forum_tag', 'deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)\r
-\r
-        # Adding field 'Tag.deleted_by'\r
-        db.add_column('forum_tag', 'deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='deleted_tags', null=True, to=orm['forum.User'], blank=True), keep_default=False)\r
-\r
-        # Adding field 'Tag.deleted_at'\r
-        db.add_column('forum_tag', 'deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)\r
-    \r
-    \r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},\r
-            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'award'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.Badge']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'object_name': 'Badge'},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'symmetrical': 'False', 'through': "orm['forum.Award']", 'to': "orm['forum.User']"}),\r
-            'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.flag': {\r
-            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},\r
-            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'state_string': ('django.db.models.fields.TextField', [], {'default': "''"}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'symmetrical': 'False', 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.nodestate': {\r
-            'Meta': {'unique_together': "(('node', 'state_type'),)", 'object_name': 'NodeState'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'node_state'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'states'", 'to': "orm['forum.Node']"}),\r
-            'state_type': ('django.db.models.fields.CharField', [], {'max_length': '16'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 25, 0, 18, 31, 631000)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag'},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'symmetrical': 'False', 'through': "orm['forum.MarkedTag']", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'symmetrical': 'False', 'through': "orm['forum.QuestionSubscription']", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 26, 0, 18, 31, 914000)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},\r
-            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-    \r
-    complete_apps = ['forum']\r
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Deleting field 'Tag.deleted'
+        db.delete_column('forum_tag', 'deleted')
+
+        # Deleting field 'Tag.deleted_by'
+        db.delete_column('forum_tag', 'deleted_by_id')
+
+        # Deleting field 'Tag.deleted_at'
+        db.delete_column('forum_tag', 'deleted_at')
+    
+    
+    def backwards(self, orm):
+        
+        # Adding field 'Tag.deleted'
+        db.add_column('forum_tag', 'deleted', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Tag.deleted_by'
+        db.add_column('forum_tag', 'deleted_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='deleted_tags', null=True, to=orm['forum.User'], blank=True), keep_default=False)
+
+        # Adding field 'Tag.deleted_at'
+        db.add_column('forum_tag', 'deleted_at', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},
+            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'award'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.Badge']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'object_name': 'Badge'},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'symmetrical': 'False', 'through': "orm['forum.Award']", 'to': "orm['forum.User']"}),
+            'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.flag': {
+            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},
+            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'state_string': ('django.db.models.fields.TextField', [], {'default': "''"}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'symmetrical': 'False', 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.nodestate': {
+            'Meta': {'unique_together': "(('node', 'state_type'),)", 'object_name': 'NodeState'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'node_state'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'states'", 'to': "orm['forum.Node']"}),
+            'state_type': ('django.db.models.fields.CharField', [], {'max_length': '16'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 25, 0, 18, 31, 631000)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag'},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'symmetrical': 'False', 'through': "orm['forum.MarkedTag']", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'symmetrical': 'False', 'through': "orm['forum.QuestionSubscription']", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 26, 0, 18, 31, 914000)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},
+            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+    
+    complete_apps = ['forum']
index 01fd2df0f351f7385e6d5dc5d599dc3c224ab78e..99b09c177aa3061a349be187daa5a4c0aa59e6fd 100644 (file)
@@ -1,16 +1,16 @@
-import sys\r
-\r
-class ProgressBar(object):\r
-    def __init__(self, full):\r
-        self.full = full\r
-        self.count = 0\r
-\r
-        self.print_bar(0)\r
-\r
-    def print_bar(self, progress):\r
-        sys.stdout.write("[%s%s] %d%%\r" % ('=' * progress, ' ' * (100 - progress), progress))\r
-        sys.stdout.flush()\r
-\r
-    def update(self):\r
-        self.count += 1\r
+import sys
+
+class ProgressBar(object):
+    def __init__(self, full):
+        self.full = full
+        self.count = 0
+
+        self.print_bar(0)
+
+    def print_bar(self, progress):
+        sys.stdout.write("[%s%s] %d%%\r" % ('=' * progress, ' ' * (100 - progress), progress))
+        sys.stdout.flush()
+
+    def update(self):
+        self.count += 1
         self.print_bar(int((float(self.count) / float(self.full)) * 100))
\ No newline at end of file
index 11af9e3d1c4c1cd49e60b04db024a9344f7269f9..05af3a6014119b72e8741ed8c07515a760ecedcc 100644 (file)
-import inspect\r
-\r
-class DecoratableObject(object):\r
-    MODE_OVERRIDE = 0\r
-    MODE_PARAMS = 1\r
-    MODE_RESULT = 2\r
-\r
-    def __init__(self, fn, is_method=False):\r
-        self._callable = fn\r
-        self.is_method = is_method\r
-\r
-        self._params_decoration = None\r
-        self._result_decoration = None\r
-\r
-    def _decorate(self, fn, mode, **kwargs):\r
-        if mode == self.MODE_OVERRIDE:\r
-            self._decorate_full(fn, **kwargs)\r
-        elif mode == self.MODE_PARAMS:\r
-            self._decorate_params(fn)\r
-        elif mode == self.MODE_RESULT:\r
-            self._decorate_result(fn, **kwargs)\r
-\r
-    def _decorate_full(self, fn, needs_origin=True):\r
-        origin = self._callable\r
-\r
-        if needs_origin:\r
-            if self.is_method:\r
-                self._callable = lambda inst, *args, **kwargs: fn(inst, origin, *args, **kwargs)\r
-            else:\r
-                self._callable = lambda *args, **kwargs: fn(origin, *args, **kwargs)\r
-        else:\r
-            self._callable = fn\r
-\r
-    def _decorate_params(self, fn):\r
-        if not self._params_decoration:\r
-            self._params_decoration = []\r
-\r
-        self._params_decoration.append(fn)\r
-\r
-    def _decorate_result(self, fn, needs_params=False):\r
-        if not self._result_decoration:\r
-            self._result_decoration = []\r
-\r
-        fn._needs_params = needs_params\r
-        self._result_decoration.append(fn)\r
-\r
-    def __call__(self, *args, **kwargs):\r
-        if self._params_decoration:\r
-            for dec in self._params_decoration:\r
-                try:\r
-                    args, kwargs = dec(*args, **kwargs)\r
-                except ReturnImediatelyException, e:\r
-                    return e.ret\r
-\r
-        res = self._callable(*args, **kwargs)\r
-\r
-        if self._result_decoration:\r
-            for dec in self._result_decoration:\r
-                if dec._needs_params:\r
-                    res = dec(res, *args, **kwargs)\r
-                else:\r
-                    res = dec(res)\r
-\r
-        return res\r
-\r
-class ReturnImediatelyException(Exception):\r
-    def __init__(self, ret):\r
-        super(Exception, self).__init__()\r
-        self.ret = ret\r
-\r
-def _check_decoratable(origin, install=True):\r
-    if not hasattr(origin, '_decoratable_obj'):\r
-        if inspect.ismethod(origin) and not hasattr(origin, '_decoratable_obj'):\r
-            decoratable = DecoratableObject(origin)\r
-\r
-            def decoratable_method(self, *args, **kwargs):\r
-                return decoratable(self, *args, **kwargs)\r
-\r
-            decoratable_method._decoratable_obj = decoratable\r
-\r
-            def decoratable_decorate(fn, mode, **kwargs):\r
-                decoratable._decorate(fn, mode, **kwargs)\r
-\r
-            decoratable_method._decorate = decoratable_decorate\r
-\r
-            if install:\r
-                setattr(origin.im_class, origin.__name__, decoratable_method)\r
-\r
-            return decoratable_method\r
-                \r
-        elif inspect.isfunction(origin):\r
-            decoratable = DecoratableObject(origin)\r
-\r
-            def decorated(*args, **kwargs):\r
-                return decoratable(*args, **kwargs)\r
-\r
-            decorated._decoratable_obj = decoratable\r
-\r
-            if install:\r
-                setattr(inspect.getmodule(origin), origin.__name__, decorated)\r
-\r
-            decorated.__name__ = origin.__name__\r
-            decorated.__module__ = origin.__module__\r
-\r
-            return decorated\r
-\r
-    return origin\r
-\r
-\r
-def decorate(origin, needs_origin=True):\r
-    origin = _check_decoratable(origin)\r
-\r
-    def decorator(fn):\r
-        origin._decoratable_obj._decorate(fn, DecoratableObject.MODE_OVERRIDE, needs_origin=needs_origin)\r
-        \r
-    return decorator\r
-\r
-\r
-def _decorate_params(origin):\r
-    origin = _check_decoratable(origin)\r
-\r
-    def decorator(fn):\r
-        origin._decoratable_obj._decorate(fn, DecoratableObject.MODE_PARAMS)\r
-\r
-    return decorator\r
-\r
-decorate.params = _decorate_params\r
-\r
-def _decorate_result(origin, needs_params=False):\r
-    origin = _check_decoratable(origin)\r
-\r
-    def decorator(fn):\r
-        origin._decoratable_obj._decorate(fn, DecoratableObject.MODE_RESULT, needs_params=needs_params)\r
-\r
-    return decorator\r
-\r
-decorate.result = _decorate_result\r
-\r
-def _decorate_with(fn):\r
-    def decorator(origin):\r
-        origin = _check_decoratable(origin)\r
-        origin._decoratable_obj._decorate(fn, DecoratableObject.MODE_OVERRIDE, needs_origin=True)\r
-        return origin\r
-    return decorator\r
-\r
-decorate.withfn = _decorate_with\r
-\r
-def _decorate_result_with(fn, needs_params=False):\r
-    def decorator(origin):\r
-        origin = _check_decoratable(origin)\r
-        origin._decoratable_obj._decorate(fn, DecoratableObject.MODE_RESULT, needs_params=needs_params)\r
-        return origin\r
-    return decorator\r
-\r
-decorate.result.withfn = _decorate_result_with\r
-\r
-def _decorate_params_with(fn):\r
-    def decorator(origin):\r
-        origin = _check_decoratable(origin)\r
-        origin._decoratable_obj._decorate(fn, DecoratableObject.MODE_PARAMS)\r
-        return origin\r
-    return decorator\r
-\r
+import inspect
+
+class DecoratableObject(object):
+    MODE_OVERRIDE = 0
+    MODE_PARAMS = 1
+    MODE_RESULT = 2
+
+    def __init__(self, fn, is_method=False):
+        self._callable = fn
+        self.is_method = is_method
+
+        self._params_decoration = None
+        self._result_decoration = None
+
+    def _decorate(self, fn, mode, **kwargs):
+        if mode == self.MODE_OVERRIDE:
+            self._decorate_full(fn, **kwargs)
+        elif mode == self.MODE_PARAMS:
+            self._decorate_params(fn)
+        elif mode == self.MODE_RESULT:
+            self._decorate_result(fn, **kwargs)
+
+    def _decorate_full(self, fn, needs_origin=True):
+        origin = self._callable
+
+        if needs_origin:
+            if self.is_method:
+                self._callable = lambda inst, *args, **kwargs: fn(inst, origin, *args, **kwargs)
+            else:
+                self._callable = lambda *args, **kwargs: fn(origin, *args, **kwargs)
+        else:
+            self._callable = fn
+
+    def _decorate_params(self, fn):
+        if not self._params_decoration:
+            self._params_decoration = []
+
+        self._params_decoration.append(fn)
+
+    def _decorate_result(self, fn, needs_params=False):
+        if not self._result_decoration:
+            self._result_decoration = []
+
+        fn._needs_params = needs_params
+        self._result_decoration.append(fn)
+
+    def __call__(self, *args, **kwargs):
+        if self._params_decoration:
+            for dec in self._params_decoration:
+                try:
+                    args, kwargs = dec(*args, **kwargs)
+                except ReturnImediatelyException, e:
+                    return e.ret
+
+        res = self._callable(*args, **kwargs)
+
+        if self._result_decoration:
+            for dec in self._result_decoration:
+                if dec._needs_params:
+                    res = dec(res, *args, **kwargs)
+                else:
+                    res = dec(res)
+
+        return res
+
+class ReturnImediatelyException(Exception):
+    def __init__(self, ret):
+        super(Exception, self).__init__()
+        self.ret = ret
+
+def _check_decoratable(origin, install=True):
+    if not hasattr(origin, '_decoratable_obj'):
+        if inspect.ismethod(origin) and not hasattr(origin, '_decoratable_obj'):
+            decoratable = DecoratableObject(origin)
+
+            def decoratable_method(self, *args, **kwargs):
+                return decoratable(self, *args, **kwargs)
+
+            decoratable_method._decoratable_obj = decoratable
+
+            def decoratable_decorate(fn, mode, **kwargs):
+                decoratable._decorate(fn, mode, **kwargs)
+
+            decoratable_method._decorate = decoratable_decorate
+
+            if install:
+                setattr(origin.im_class, origin.__name__, decoratable_method)
+
+            return decoratable_method
+                
+        elif inspect.isfunction(origin):
+            decoratable = DecoratableObject(origin)
+
+            def decorated(*args, **kwargs):
+                return decoratable(*args, **kwargs)
+
+            decorated._decoratable_obj = decoratable
+
+            if install:
+                setattr(inspect.getmodule(origin), origin.__name__, decorated)
+
+            decorated.__name__ = origin.__name__
+            decorated.__module__ = origin.__module__
+
+            return decorated
+
+    return origin
+
+
+def decorate(origin, needs_origin=True):
+    origin = _check_decoratable(origin)
+
+    def decorator(fn):
+        origin._decoratable_obj._decorate(fn, DecoratableObject.MODE_OVERRIDE, needs_origin=needs_origin)
+        
+    return decorator
+
+
+def _decorate_params(origin):
+    origin = _check_decoratable(origin)
+
+    def decorator(fn):
+        origin._decoratable_obj._decorate(fn, DecoratableObject.MODE_PARAMS)
+
+    return decorator
+
+decorate.params = _decorate_params
+
+def _decorate_result(origin, needs_params=False):
+    origin = _check_decoratable(origin)
+
+    def decorator(fn):
+        origin._decoratable_obj._decorate(fn, DecoratableObject.MODE_RESULT, needs_params=needs_params)
+
+    return decorator
+
+decorate.result = _decorate_result
+
+def _decorate_with(fn):
+    def decorator(origin):
+        origin = _check_decoratable(origin)
+        origin._decoratable_obj._decorate(fn, DecoratableObject.MODE_OVERRIDE, needs_origin=True)
+        return origin
+    return decorator
+
+decorate.withfn = _decorate_with
+
+def _decorate_result_with(fn, needs_params=False):
+    def decorator(origin):
+        origin = _check_decoratable(origin)
+        origin._decoratable_obj._decorate(fn, DecoratableObject.MODE_RESULT, needs_params=needs_params)
+        return origin
+    return decorator
+
+decorate.result.withfn = _decorate_result_with
+
+def _decorate_params_with(fn):
+    def decorator(origin):
+        origin = _check_decoratable(origin)
+        origin._decoratable_obj._decorate(fn, DecoratableObject.MODE_PARAMS)
+        return origin
+    return decorator
+
 decorate.params.withfn = _decorate_params_with
\ No newline at end of file
index e897e4eebb486e917a75c776b004156a661bf1a8..24479b74ced3819747c45eab84f0a00abefbc798 100644 (file)
-import os\r
-import re\r
-import datetime\r
-import logging\r
-from forum.models import User, Question, Comment, QuestionSubscription, SubscriptionSettings, Answer\r
-from forum.utils.mail import send_template_email\r
-from django.utils.translation import ugettext as _\r
-from forum.actions import AskAction, AnswerAction, CommentAction, AcceptAnswerAction, UserJoinsAction, QuestionViewAction\r
-from forum import settings\r
-from django.db.models import Q, F\r
-\r
-def create_subscription_if_not_exists(question, user):\r
-    try:\r
-        subscription = QuestionSubscription.objects.get(question=question, user=user)\r
-    except:\r
-        subscription = QuestionSubscription(question=question, user=user)\r
-        subscription.save()\r
-\r
-def filter_subscribers(subscribers):\r
-    subscribers = subscribers.exclude(is_active=False)\r
-\r
-    if settings.DONT_NOTIFY_UNVALIDATED:\r
-        return subscribers.exclude(email_isvalid=False)\r
-    else:\r
-        return subscribers\r
-\r
-def question_posted(action, new):\r
-    question = action.node\r
-\r
-    subscribers = User.objects.filter(\r
-            Q(subscription_settings__enable_notifications=True, subscription_settings__new_question='i') |\r
-            (Q(subscription_settings__new_question_watched_tags='i') &\r
-              Q(marked_tags__name__in=question.tagnames.split(' ')) &\r
-              Q(tag_selections__reason='good'))\r
-    ).exclude(id=question.author.id).distinct()\r
-\r
-    subscribers = filter_subscribers(subscribers)\r
-\r
-    send_template_email(subscribers, "notifications/newquestion.html", {'question': question})\r
-\r
-    subscription = QuestionSubscription(question=question, user=question.author)\r
-    subscription.save()\r
-\r
-    new_subscribers = User.objects.filter(\r
-            Q(subscription_settings__all_questions=True) |\r
-            Q(subscription_settings__all_questions_watched_tags=True,\r
-                    marked_tags__name__in=question.tagnames.split(' '),\r
-                    tag_selections__reason='good'))\r
-\r
-    for user in new_subscribers:\r
-        create_subscription_if_not_exists(question, user)\r
-\r
-AskAction.hook(question_posted)\r
-\r
-\r
-def answer_posted(action, new):\r
-    answer = action.node\r
-    question = answer.question\r
-\r
-    subscribers = question.subscribers.filter(\r
-            subscription_settings__enable_notifications=True,\r
-            subscription_settings__notify_answers=True,\r
-            subscription_settings__subscribed_questions='i'\r
-    ).exclude(id=answer.author.id).distinct()\r
-\r
-    subscribers = filter_subscribers(subscribers)\r
-\r
-    send_template_email(subscribers, "notifications/newanswer.html", {'answer': answer})\r
-\r
-    create_subscription_if_not_exists(question, answer.author)\r
-\r
-AnswerAction.hook(answer_posted)\r
-\r
-\r
-def comment_posted(action, new):\r
-    comment = action.node\r
-    post = comment.parent\r
-\r
-    if post.__class__ == Question:\r
-        question = post\r
-    else:\r
-        question = post.question\r
-\r
-    q_filter = Q(subscription_settings__notify_comments=True) | Q(subscription_settings__notify_comments_own_post=True, id=post.author.id)\r
-\r
-    inreply = re.search('@\w+', comment.comment)\r
-    if inreply is not None:\r
-        q_filter = q_filter | Q(subscription_settings__notify_reply_to_comments=True,\r
-                                username__istartswith=inreply.group(0)[1:],\r
-                                nodes__parent=post, nodes__node_type="comment")\r
-\r
-    subscribers = question.subscribers.filter(\r
-            q_filter, subscription_settings__subscribed_questions='i', subscription_settings__enable_notifications=True\r
-    ).exclude(id=comment.user.id).distinct()\r
-\r
-    subscribers = filter_subscribers(subscribers)\r
-\r
-\r
-    send_template_email(subscribers, "notifications/newcomment.html", {'comment': comment})\r
-\r
-    create_subscription_if_not_exists(question, comment.user)\r
-\r
-CommentAction.hook(comment_posted)\r
-\r
-\r
-def answer_accepted(action, new):\r
-    question = action.node.question\r
-\r
-    subscribers = question.subscribers.filter(\r
-            subscription_settings__enable_notifications=True,\r
-            subscription_settings__subscribed_questions='i'\r
-    ).exclude(id=action.node.nstate.accepted.by.id).distinct()\r
-    \r
-    subscribers = filter_subscribers(subscribers)\r
-\r
-    send_template_email(subscribers, "notifications/answeraccepted.html", {'answer': action.node})\r
-\r
-AcceptAnswerAction.hook(answer_accepted)\r
-\r
-\r
-def member_joined(action, new):\r
-    subscribers = User.objects.filter(\r
-            subscription_settings__enable_notifications=True,\r
-            subscription_settings__member_joins='i'\r
-    ).exclude(id=action.user.id).distinct()\r
-\r
-    subscribers = filter_subscribers(subscribers)\r
-\r
-    send_template_email(subscribers, "notifications/newmember.html", {'newmember': action.user})\r
-\r
-UserJoinsAction.hook(member_joined)\r
-\r
-def question_viewed(action, new):\r
-    if not action.viewuser.is_authenticated():\r
-        return\r
-\r
-    try:\r
-        subscription = QuestionSubscription.objects.get(question=action.node, user=action.viewuser)\r
-        subscription.last_view = datetime.datetime.now()\r
-        subscription.save()\r
-    except:\r
-        if action.viewuser.subscription_settings.questions_viewed:\r
-            subscription = QuestionSubscription(question=action.node, user=action.viewuser)\r
-            subscription.save()\r
-\r
-QuestionViewAction.hook(question_viewed)\r
-\r
-\r
-#todo: translate this\r
-#record_answer_event_re = re.compile("You have received (a|\d+) .*new response.*")\r
-#def record_answer_event(instance, created, **kwargs):\r
-#    if created:\r
-#        q_author = instance.question.author\r
-#        found_match = False\r
-#        #print 'going through %d messages' % q_author.message_set.all().count()\r
-#        for m in q_author.message_set.all():\r
-##            #print m.message\r
-# #           match = record_answer_event_re.search(m.message)\r
-#            if match:\r
-#                found_match = True\r
-#                try:\r
-#                    cnt = int(match.group(1))\r
-#                except:\r
-#                    cnt = 1\r
-##                m.message = u"You have received %d <a href=\"%s?sort=responses\">new responses</a>."\\r
-# #                           % (cnt+1, q_author.get_profile_url())\r
-#\r
-#                m.save()\r
-#                break\r
-#        if not found_match:\r
-#            msg = u"You have received a <a href=\"%s?sort=responses\">new response</a>."\\r
-#                    % q_author.get_profile_url()\r
-#\r
-#            q_author.message_set.create(message=msg)\r
-#\r
-#post_save.connect(record_answer_event, sender=Answer)\r
+import os
+import re
+import datetime
+import logging
+from forum.models import User, Question, Comment, QuestionSubscription, SubscriptionSettings, Answer
+from forum.utils.mail import send_template_email
+from django.utils.translation import ugettext as _
+from forum.actions import AskAction, AnswerAction, CommentAction, AcceptAnswerAction, UserJoinsAction, QuestionViewAction
+from forum import settings
+from django.db.models import Q, F
+
+def create_subscription_if_not_exists(question, user):
+    try:
+        subscription = QuestionSubscription.objects.get(question=question, user=user)
+    except:
+        subscription = QuestionSubscription(question=question, user=user)
+        subscription.save()
+
+def filter_subscribers(subscribers):
+    subscribers = subscribers.exclude(is_active=False)
+
+    if settings.DONT_NOTIFY_UNVALIDATED:
+        return subscribers.exclude(email_isvalid=False)
+    else:
+        return subscribers
+
+def question_posted(action, new):
+    question = action.node
+
+    subscribers = User.objects.filter(
+            Q(subscription_settings__enable_notifications=True, subscription_settings__new_question='i') |
+            (Q(subscription_settings__new_question_watched_tags='i') &
+              Q(marked_tags__name__in=question.tagnames.split(' ')) &
+              Q(tag_selections__reason='good'))
+    ).exclude(id=question.author.id).distinct()
+
+    subscribers = filter_subscribers(subscribers)
+
+    send_template_email(subscribers, "notifications/newquestion.html", {'question': question})
+
+    subscription = QuestionSubscription(question=question, user=question.author)
+    subscription.save()
+
+    new_subscribers = User.objects.filter(
+            Q(subscription_settings__all_questions=True) |
+            Q(subscription_settings__all_questions_watched_tags=True,
+                    marked_tags__name__in=question.tagnames.split(' '),
+                    tag_selections__reason='good'))
+
+    for user in new_subscribers:
+        create_subscription_if_not_exists(question, user)
+
+AskAction.hook(question_posted)
+
+
+def answer_posted(action, new):
+    answer = action.node
+    question = answer.question
+
+    subscribers = question.subscribers.filter(
+            subscription_settings__enable_notifications=True,
+            subscription_settings__notify_answers=True,
+            subscription_settings__subscribed_questions='i'
+    ).exclude(id=answer.author.id).distinct()
+
+    subscribers = filter_subscribers(subscribers)
+
+    send_template_email(subscribers, "notifications/newanswer.html", {'answer': answer})
+
+    create_subscription_if_not_exists(question, answer.author)
+
+AnswerAction.hook(answer_posted)
+
+
+def comment_posted(action, new):
+    comment = action.node
+    post = comment.parent
+
+    if post.__class__ == Question:
+        question = post
+    else:
+        question = post.question
+
+    q_filter = Q(subscription_settings__notify_comments=True) | Q(subscription_settings__notify_comments_own_post=True, id=post.author.id)
+
+    inreply = re.search('@\w+', comment.comment)
+    if inreply is not None:
+        q_filter = q_filter | Q(subscription_settings__notify_reply_to_comments=True,
+                                username__istartswith=inreply.group(0)[1:],
+                                nodes__parent=post, nodes__node_type="comment")
+
+    subscribers = question.subscribers.filter(
+            q_filter, subscription_settings__subscribed_questions='i', subscription_settings__enable_notifications=True
+    ).exclude(id=comment.user.id).distinct()
+
+    subscribers = filter_subscribers(subscribers)
+
+
+    send_template_email(subscribers, "notifications/newcomment.html", {'comment': comment})
+
+    create_subscription_if_not_exists(question, comment.user)
+
+CommentAction.hook(comment_posted)
+
+
+def answer_accepted(action, new):
+    question = action.node.question
+
+    subscribers = question.subscribers.filter(
+            subscription_settings__enable_notifications=True,
+            subscription_settings__subscribed_questions='i'
+    ).exclude(id=action.node.nstate.accepted.by.id).distinct()
+    
+    subscribers = filter_subscribers(subscribers)
+
+    send_template_email(subscribers, "notifications/answeraccepted.html", {'answer': action.node})
+
+AcceptAnswerAction.hook(answer_accepted)
+
+
+def member_joined(action, new):
+    subscribers = User.objects.filter(
+            subscription_settings__enable_notifications=True,
+            subscription_settings__member_joins='i'
+    ).exclude(id=action.user.id).distinct()
+
+    subscribers = filter_subscribers(subscribers)
+
+    send_template_email(subscribers, "notifications/newmember.html", {'newmember': action.user})
+
+UserJoinsAction.hook(member_joined)
+
+def question_viewed(action, new):
+    if not action.viewuser.is_authenticated():
+        return
+
+    try:
+        subscription = QuestionSubscription.objects.get(question=action.node, user=action.viewuser)
+        subscription.last_view = datetime.datetime.now()
+        subscription.save()
+    except:
+        if action.viewuser.subscription_settings.questions_viewed:
+            subscription = QuestionSubscription(question=action.node, user=action.viewuser)
+            subscription.save()
+
+QuestionViewAction.hook(question_viewed)
+
+
+#todo: translate this
+#record_answer_event_re = re.compile("You have received (a|\d+) .*new response.*")
+#def record_answer_event(instance, created, **kwargs):
+#    if created:
+#        q_author = instance.question.author
+#        found_match = False
+#        #print 'going through %d messages' % q_author.message_set.all().count()
+#        for m in q_author.message_set.all():
+##            #print m.message
+# #           match = record_answer_event_re.search(m.message)
+#            if match:
+#                found_match = True
+#                try:
+#                    cnt = int(match.group(1))
+#                except:
+#                    cnt = 1
+##                m.message = u"You have received %d <a href=\"%s?sort=responses\">new responses</a>."\
+# #                           % (cnt+1, q_author.get_profile_url())
+#
+#                m.save()
+#                break
+#        if not found_match:
+#            msg = u"You have received a <a href=\"%s?sort=responses\">new response</a>."\
+#                    % q_author.get_profile_url()
+#
+#            q_author.message_set.create(message=msg)
+#
+#post_save.connect(record_answer_event, sender=Answer)
index 209f8e5cdc3f7aab1e170e043516848f274ed1eb..8e7a59eaff10a9aa1c65b226b3413a3b14416fb4 100644 (file)
@@ -1,13 +1,13 @@
-from forum.settings.base import Setting\r
-from forum.settings.extkeys import EXT_KEYS_SET\r
-from forum.settings.minrep import MIN_REP_SET\r
-from django.utils.translation import ugettext_lazy as _\r
-\r
-WORDPRESS_API_KEY = Setting('WORDPRESS_API_KEY', '', EXT_KEYS_SET, dict(\r
-label = _("WordPress API key"),\r
-help_text = _("Your WordPress API key. You can get one at <a href='http://wordpress.com/'>http://wordpress.com/</a>"),\r
-required=False))\r
-\r
-REP_FOR_NO_SPAM_CHECK = Setting('REP_FOR_NO_SPAM_CHECK', 750, MIN_REP_SET, dict(\r
-label = _("Minimum reputation to not have your posts checked"),\r
-help_text = _("The minimum reputation a user must have so that when they post a question, answer or comment it is not checked for spam.")))\r
+from forum.settings.base import Setting
+from forum.settings.extkeys import EXT_KEYS_SET
+from forum.settings.minrep import MIN_REP_SET
+from django.utils.translation import ugettext_lazy as _
+
+WORDPRESS_API_KEY = Setting('WORDPRESS_API_KEY', '', EXT_KEYS_SET, dict(
+label = _("WordPress API key"),
+help_text = _("Your WordPress API key. You can get one at <a href='http://wordpress.com/'>http://wordpress.com/</a>"),
+required=False))
+
+REP_FOR_NO_SPAM_CHECK = Setting('REP_FOR_NO_SPAM_CHECK', 750, MIN_REP_SET, dict(
+label = _("Minimum reputation to not have your posts checked"),
+help_text = _("The minimum reputation a user must have so that when they post a question, answer or comment it is not checked for spam.")))
index ff23c854c0b837d593f7756f8ac9144c9e2567b8..8dbd5b93e274f891438787dacba0c73f83186c35 100644 (file)
-from south.v2 import DataMigration\r
-from south.orm import FakeORM\r
-\r
-class Migration(DataMigration):\r
-    def forwards(self, orm):\r
-        pass\r
-\r
-\r
-    def backwards(self, orm):\r
-        "Write your backwards methods here."\r
-\r
-    models = {\r
-        'auth.group': {\r
-            'Meta': {'object_name': 'Group'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\r
-            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})\r
-        },\r
-        'auth.permission': {\r
-            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},\r
-            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\r
-        },\r
-        'auth.user': {\r
-            'Meta': {'object_name': 'User'},\r
-            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\r
-            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\r
-            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\r
-            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),\r
-            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\r
-        },\r
-        'contenttypes.contenttype': {\r
-            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},\r
-            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\r
-            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\r
-        },\r
-        'forum.action': {\r
-            'Meta': {'object_name': 'Action'},\r
-            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),\r
-            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'real_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'proxied_actions'", 'null': 'True', 'to': "orm['forum.User']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.actionrepute': {\r
-            'Meta': {'object_name': 'ActionRepute'},\r
-            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),\r
-            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.authkeyuserassociation': {\r
-            'Meta': {'object_name': 'AuthKeyUserAssociation'},\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.award': {\r
-            'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},\r
-            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'award'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.Badge']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.badge': {\r
-            'Meta': {'object_name': 'Badge'},\r
-            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'symmetrical': 'False', 'through': "orm['forum.Award']", 'to': "orm['forum.User']"}),\r
-            'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'type': ('django.db.models.fields.SmallIntegerField', [], {})\r
-        },\r
-        'forum.flag': {\r
-            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},\r
-            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.Node']"}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.keyvalue': {\r
-            'Meta': {'object_name': 'KeyValue'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})\r
-        },\r
-        'forum.markedtag': {\r
-            'Meta': {'object_name': 'MarkedTag'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.node': {\r
-            'Meta': {'object_name': 'Node'},\r
-            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),\r
-            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),\r
-            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\r
-            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),\r
-            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),\r
-            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),\r
-            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),\r
-            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),\r
-            'state_string': ('django.db.models.fields.TextField', [], {'default': "''"}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'symmetrical': 'False', 'to': "orm['forum.Tag']"}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.noderevision': {\r
-            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},\r
-            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),\r
-            'body': ('django.db.models.fields.TextField', [], {}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),\r
-            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),\r
-            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),\r
-            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),\r
-            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})\r
-        },\r
-        'forum.nodestate': {\r
-            'Meta': {'unique_together': "(('node', 'state_type'),)", 'object_name': 'NodeState'},\r
-            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'node_state'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'states'", 'to': "orm['forum.Node']"}),\r
-            'state_type': ('django.db.models.fields.CharField', [], {'max_length': '16'})\r
-        },\r
-        'forum.openidassociation': {\r
-            'Meta': {'object_name': 'OpenIdAssociation'},\r
-            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),\r
-            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'issued': ('django.db.models.fields.IntegerField', [], {}),\r
-            'lifetime': ('django.db.models.fields.IntegerField', [], {}),\r
-            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),\r
-            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})\r
-        },\r
-        'forum.openidnonce': {\r
-            'Meta': {'object_name': 'OpenIdNonce'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),\r
-            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),\r
-            'timestamp': ('django.db.models.fields.IntegerField', [], {})\r
-        },\r
-        'forum.questionsubscription': {\r
-            'Meta': {'object_name': 'QuestionSubscription'},\r
-            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 7, 1, 13, 6, 46, 789996)'}),\r
-            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.subscriptionsettings': {\r
-            'Meta': {'object_name': 'SubscriptionSettings'},\r
-            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),\r
-            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),\r
-            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'send_digest': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),\r
-            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),\r
-            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})\r
-        },\r
-        'forum.tag': {\r
-            'Meta': {'object_name': 'Tag'},\r
-            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'symmetrical': 'False', 'through': "orm['forum.MarkedTag']", 'to': "orm['forum.User']"}),\r
-            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})\r
-        },\r
-        'forum.user': {\r
-            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},\r
-            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\r
-            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\r
-            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),\r
-            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\r
-            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),\r
-            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),\r
-            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'symmetrical': 'False', 'through': "orm['forum.QuestionSubscription']", 'to': "orm['forum.Node']"}),\r
-            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),\r
-            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})\r
-        },\r
-        'forum.userproperty': {\r
-            'Meta': {'unique_together': "(('user', 'key'),)", 'object_name': 'UserProperty'},\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'key': ('django.db.models.fields.CharField', [], {'max_length': '16'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'properties'", 'to': "orm['forum.User']"}),\r
-            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})\r
-        },\r
-        'forum.validationhash': {\r
-            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},\r
-            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 7, 2, 13, 6, 46, 883626)'}),\r
-            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})\r
-        },\r
-        'forum.vote': {\r
-            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},\r
-            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),\r
-            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\r
-            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.Node']"}),\r
-            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),\r
-            'value': ('django.db.models.fields.SmallIntegerField', [], {}),\r
-            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})\r
-        }\r
-    }\r
-\r
-    complete_apps = ['forum']\r
-\r
-orm = FakeORM(Migration, "forum")\r
-\r
+from south.v2 import DataMigration
+from south.orm import FakeORM
+
+class Migration(DataMigration):
+    def forwards(self, orm):
+        pass
+
+
+    def backwards(self, orm):
+        "Write your backwards methods here."
+
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'forum.action': {
+            'Meta': {'object_name': 'Action'},
+            'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'real_user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'proxied_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
+        },
+        'forum.actionrepute': {
+            'Meta': {'object_name': 'ActionRepute'},
+            'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
+            'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
+        },
+        'forum.authkeyuserassociation': {
+            'Meta': {'object_name': 'AuthKeyUserAssociation'},
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
+        },
+        'forum.award': {
+            'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},
+            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'award'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.Badge']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.badge': {
+            'Meta': {'object_name': 'Badge'},
+            'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'symmetrical': 'False', 'through': "orm['forum.Award']", 'to': "orm['forum.User']"}),
+            'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.SmallIntegerField', [], {})
+        },
+        'forum.flag': {
+            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},
+            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.Node']"}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flags'", 'to': "orm['forum.User']"})
+        },
+        'forum.keyvalue': {
+            'Meta': {'object_name': 'KeyValue'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})
+        },
+        'forum.markedtag': {
+            'Meta': {'object_name': 'MarkedTag'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
+        },
+        'forum.node': {
+            'Meta': {'object_name': 'Node'},
+            'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
+            'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),
+            'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
+            'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
+            'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
+            'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'state_string': ('django.db.models.fields.TextField', [], {'default': "''"}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'symmetrical': 'False', 'to': "orm['forum.Tag']"}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.noderevision': {
+            'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
+            'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
+            'body': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
+            'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+            'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+        },
+        'forum.nodestate': {
+            'Meta': {'unique_together': "(('node', 'state_type'),)", 'object_name': 'NodeState'},
+            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'node_state'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'states'", 'to': "orm['forum.Node']"}),
+            'state_type': ('django.db.models.fields.CharField', [], {'max_length': '16'})
+        },
+        'forum.openidassociation': {
+            'Meta': {'object_name': 'OpenIdAssociation'},
+            'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
+            'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'issued': ('django.db.models.fields.IntegerField', [], {}),
+            'lifetime': ('django.db.models.fields.IntegerField', [], {}),
+            'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
+            'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
+        },
+        'forum.openidnonce': {
+            'Meta': {'object_name': 'OpenIdNonce'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+            'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'timestamp': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'forum.questionsubscription': {
+            'Meta': {'object_name': 'QuestionSubscription'},
+            'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 7, 1, 13, 6, 46, 789996)'}),
+            'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.subscriptionsettings': {
+            'Meta': {'object_name': 'SubscriptionSettings'},
+            'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
+            'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
+            'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'send_digest': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
+        },
+        'forum.tag': {
+            'Meta': {'object_name': 'Tag'},
+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'symmetrical': 'False', 'through': "orm['forum.MarkedTag']", 'to': "orm['forum.User']"}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        },
+        'forum.user': {
+            'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
+            'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+            'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'symmetrical': 'False', 'through': "orm['forum.QuestionSubscription']", 'to': "orm['forum.Node']"}),
+            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
+            'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'forum.userproperty': {
+            'Meta': {'unique_together': "(('user', 'key'),)", 'object_name': 'UserProperty'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'properties'", 'to': "orm['forum.User']"}),
+            'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})
+        },
+        'forum.validationhash': {
+            'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
+            'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 7, 2, 13, 6, 46, 883626)'}),
+            'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
+        },
+        'forum.vote': {
+            'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},
+            'action': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.Node']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
+            'value': ('django.db.models.fields.SmallIntegerField', [], {}),
+            'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
+        }
+    }
+
+    complete_apps = ['forum']
+
+orm = FakeORM(Migration, "forum")
+
index b2f249723bacbc40aa72e094aea5d8221d046005..4fc45afd790794daa78b174321f6caa83723a4a5 100644 (file)
@@ -1,3 +1,3 @@
-from forum.settings.base import Setting\r
-\r
+from forum.settings.base import Setting
+
 PG_FTSTRIGGERS_VERSION = Setting('PG_FTSTRIGGERS_VERSION', 0)
\ No newline at end of file
index d45019fc83e5ac984e9bb306ee704ba9cfdaf8bd..59990b5e4162e2932c8c0a4f1e277e4ace7fd300 100644 (file)
@@ -1,27 +1,27 @@
-import os\r
-from forum.models import KeyValue\r
-from django.db import connection, transaction\r
-import settings\r
-\r
-VERSION = 11\r
-\r
-if int(settings.PG_FTSTRIGGERS_VERSION) < VERSION:\r
-    f = open(os.path.join(os.path.dirname(__file__), 'pg_fts_install.sql'), 'r')\r
-\r
-    try:\r
-        cursor = connection.cursor()\r
-        cursor.execute(f.read())\r
-        transaction.commit_unless_managed()\r
-\r
-        settings.PG_FTSTRIGGERS_VERSION.set_value(VERSION)\r
-        \r
-    except Exception, e:\r
-        #import sys, traceback\r
-        #traceback.print_exc(file=sys.stdout)\r
-        pass\r
-    finally:\r
-        cursor.close()\r
-\r
-    f.close()\r
-\r
-import handlers\r
+import os
+from forum.models import KeyValue
+from django.db import connection, transaction
+import settings
+
+VERSION = 11
+
+if int(settings.PG_FTSTRIGGERS_VERSION) < VERSION:
+    f = open(os.path.join(os.path.dirname(__file__), 'pg_fts_install.sql'), 'r')
+
+    try:
+        cursor = connection.cursor()
+        cursor.execute(f.read())
+        transaction.commit_unless_managed()
+
+        settings.PG_FTSTRIGGERS_VERSION.set_value(VERSION)
+        
+    except Exception, e:
+        #import sys, traceback
+        #traceback.print_exc(file=sys.stdout)
+        pass
+    finally:
+        cursor.close()
+
+    f.close()
+
+import handlers