summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-08-27 23:08:33 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-08-27 23:08:33 -0400
commitc3cd75e92d07f38502c35b485db9cb982b4d83d9 (patch)
tree6f0206b74547b906c00270c8960e6a9e8a76b0d6
parent97ca457c3fd8f030ff898ad24d49bd9368118240 (diff)
downloadaskbot-c3cd75e92d07f38502c35b485db9cb982b4d83d9.tar.gz
askbot-c3cd75e92d07f38502c35b485db9cb982b4d83d9.tar.bz2
askbot-c3cd75e92d07f38502c35b485db9cb982b4d83d9.zip
removed old askbot group models
-rw-r--r--askbot/migrations/0138_del__old_group_models.py69
-rw-r--r--askbot/models/__init__.py7
-rw-r--r--askbot/models/post.py17
-rw-r--r--askbot/models/question.py5
-rw-r--r--askbot/models/tag.py9
-rw-r--r--askbot/models/user.py38
6 files changed, 80 insertions, 65 deletions
diff --git a/askbot/migrations/0138_del__old_group_models.py b/askbot/migrations/0138_del__old_group_models.py
new file mode 100644
index 00000000..a91eccb1
--- /dev/null
+++ b/askbot/migrations/0138_del__old_group_models.py
@@ -0,0 +1,69 @@
+# -*- coding: 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):
+ # Removing unique constraint on 'GroupMembership', fields ['group', 'user']
+ db.delete_unique('askbot_groupmembership', ['group_id', 'user_id'])
+
+ # Removing unique constraint on 'PostToGroup', fields ['post', 'tag']
+ db.delete_unique('askbot_post_groups_old', ['post_id', 'tag_id'])
+ # Removing M2M table for field groups on 'Post'
+ db.delete_table('askbot_post_groups_old')
+
+ # Deleting model 'GroupProfile'
+ db.delete_table('askbot_groupprofile')
+
+ # Deleting model 'GroupMembership'
+ db.delete_table('askbot_groupmembership')
+
+ # Removing M2M table for field new_groups on 'Thread'
+ db.delete_unique('askbot_thread_groups_old', ['thread_id', 'tag_id'])
+ db.delete_table('askbot_thread_groups_old')
+
+ def backwards(self, orm):
+ # Adding model 'GroupProfile'
+ db.create_table('askbot_groupprofile', (
+ ('preapproved_emails', self.gf('django.db.models.fields.TextField')(default='', null=True, blank=True)),
+ ('is_open', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ('preapproved_email_domains', self.gf('django.db.models.fields.TextField')(default='', null=True, blank=True)),
+ ('moderate_email', self.gf('django.db.models.fields.BooleanField')(default=True)),
+ ('logo_url', self.gf('django.db.models.fields.URLField')(max_length=200, null=True)),
+ ('group_tag', self.gf('django.db.models.fields.related.OneToOneField')(related_name='group_profile', unique=True, to=orm['askbot.Tag'])),
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ))
+ db.send_create_signal('askbot', ['GroupProfile'])
+
+ # Adding model 'GroupMembership'
+ db.create_table('askbot_groupmembership', (
+ ('group', self.gf('django.db.models.fields.related.ForeignKey')(related_name='user_memberships', to=orm['askbot.Tag'])),
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='group_memberships', to=orm['auth.User'])),
+ ))
+ db.send_create_signal('askbot', ['GroupMembership'])
+
+ # Adding unique constraint on 'GroupMembership', fields ['group', 'user']
+ db.create_unique('askbot_groupmembership', ['group_id', 'user_id'])
+
+ # Adding M2M table for field groups on 'Post'
+ db.create_table('askbot_post_groups_old', (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('post', models.ForeignKey(orm['askbot.post'], null=False)),
+ ('tag', models.ForeignKey(orm['askbot.tag'], null=False))
+ ))
+ db.create_unique('askbot_post_groups_old', ['post_id', 'tag_id'])
+
+ # Adding M2M table for field new_groups on 'Thread'
+ db.create_table('askbot_thread_groups_old', (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('thread', models.ForeignKey(orm['askbot.thread'], null=False)),
+ ('group', models.ForeignKey(orm['auth.group'], null=False))
+ ))
+ db.create_unique('askbot_thread_groups_old', ['thread_id', 'group_id'])
+
+ complete_apps = ['askbot']
diff --git a/askbot/models/__init__.py b/askbot/models/__init__.py
index 549f3277..d5758b67 100644
--- a/askbot/models/__init__.py
+++ b/askbot/models/__init__.py
@@ -43,10 +43,11 @@ from askbot.models.tag import get_group_names
from askbot.models.tag import get_groups
from askbot.models.tag import format_personal_group_name
from askbot.models.user import EmailFeedSetting, ActivityAuditStatus, Activity
-from askbot.models.user import GroupMembership, GroupProfile
+from askbot.models.user import AuthUserGroups as GroupMembership
+from askbot.models.user import Group
from askbot.models.post import Post, PostRevision
from askbot.models.post import PostFlagReason, AnonymousAnswer
-from askbot.models.post import PostToGroup
+from askbot.models.post import PostToGroup2 as PostToGroup
from askbot.models.post import DraftAnswer
from askbot.models.reply_by_email import ReplyAddress
from askbot.models import signals
@@ -3530,7 +3531,7 @@ __all__ = [
'ActivityAuditStatus',
'EmailFeedSetting',
'GroupMembership',
- 'GroupProfile',
+ 'Group',
'User',
diff --git a/askbot/models/post.py b/askbot/models/post.py
index 9c24637e..8b14a845 100644
--- a/askbot/models/post.py
+++ b/askbot/models/post.py
@@ -27,7 +27,7 @@ from askbot.utils.slug import slugify
from askbot import const
from askbot.models.user import Activity
from askbot.models.user import EmailFeedSetting
-from askbot.models.user import GroupMembership
+#from askbot.models.user import Group
from askbot.models.tag import Tag, MarkedTag
from askbot.models.tag import get_groups, tags_match_some_wildcard
from askbot.models.tag import get_global_group
@@ -42,19 +42,6 @@ from askbot.utils.diff import textDiff as htmldiff
from askbot.utils import mysql
-class PostToGroup(models.Model):
- """the "trough" table for the
- relation of groups to posts
- """
- post = models.ForeignKey('Post')
- tag = models.ForeignKey('Tag')
-
- class Meta:
- unique_together = ('post', 'tag')
- db_table = 'askbot_post_groups'
- app_label = 'askbot'
-
-
class PostToGroup2(models.Model):
post = models.ForeignKey('Post')
group = models.ForeignKey(Group)
@@ -62,6 +49,7 @@ class PostToGroup2(models.Model):
class Meta:
unique_together = ('post', 'group')
app_label = 'askbot'
+ db_table = 'askbot_post_groups'
class PostQuerySet(models.query.QuerySet):
@@ -333,7 +321,6 @@ class Post(models.Model):
parent = models.ForeignKey('Post', blank=True, null=True, related_name='comments') # Answer or Question for Comment
thread = models.ForeignKey('Thread', blank=True, null=True, default = None, related_name='posts')
- groups = models.ManyToManyField('Tag', through='PostToGroup', related_name = 'group_posts')#used for group-private posts
new_groups = models.ManyToManyField(Group, through='PostToGroup2')
author = models.ForeignKey(User, related_name='posts')
diff --git a/askbot/models/question.py b/askbot/models/question.py
index 17e334f4..d1af1224 100644
--- a/askbot/models/question.py
+++ b/askbot/models/question.py
@@ -24,7 +24,7 @@ from askbot.models.tag import delete_tags, separate_unused_tags
from askbot.models.base import DraftContent, BaseQuerySetManager
from askbot.models.tag import Tag, get_groups
from askbot.models.post import Post, PostRevision
-from askbot.models.post import PostToGroup
+from askbot.models.post import PostToGroup2 as PostToGroup
from askbot.models import signals
from askbot import const
from askbot.utils.lists import LazyList
@@ -442,8 +442,7 @@ class Thread(models.Model):
title = models.CharField(max_length=300)
tags = models.ManyToManyField('Tag', related_name='threads')
- groups = models.ManyToManyField('Tag', related_name='group_threads')
- new_groups = models.ManyToManyField(Group, db_table='askbot_thread_groups')
+ groups = models.ManyToManyField(Group, db_table='askbot_thread_groups')
# Denormalised data, transplanted from Question
tagnames = models.CharField(max_length=125)
diff --git a/askbot/models/tag.py b/askbot/models/tag.py
index 7c5d8d97..5b6d7076 100644
--- a/askbot/models/tag.py
+++ b/askbot/models/tag.py
@@ -192,11 +192,7 @@ class TagManager(BaseQuerySetManager):
def get_content_tags(self):
"""temporary function that filters out the group tags"""
- return self.annotate(
- member_count = models.Count('user_memberships')
- ).filter(
- member_count = 0
- )
+ return self.all()
def create(self, name = None, created_by = None, **kwargs):
"""Creates a new tag"""
@@ -392,7 +388,8 @@ class MarkedTag(models.Model):
app_label = 'askbot'
def get_groups():
- return Tag.group_tags.get_all()
+ from askbot.models import Group
+ return Group.objects.all()
def get_group_names():
#todo: cache me
diff --git a/askbot/models/user.py b/askbot/models/user.py
index a6ff72a2..e93ce06e 100644
--- a/askbot/models/user.py
+++ b/askbot/models/user.py
@@ -356,19 +356,6 @@ class AuthUserGroups(models.Model):
managed = False
-class GroupMembership(models.Model):
- """an explicit model to link users and the groups
- that by being recorded with this relation automatically
- become group tags
- """
- group = models.ForeignKey(Tag, related_name = 'user_memberships')
- user = models.ForeignKey(User, related_name = 'group_memberships')
-
- class Meta:
- app_label = 'askbot'
- unique_together = ('group', 'user')
-
-
class Group(AuthGroup):
"""group profile for askbot"""
logo_url = models.URLField(null = True)
@@ -388,31 +375,6 @@ class Group(AuthGroup):
app_label = 'askbot'
db_table = 'askbot_group'
-
-class GroupProfile(models.Model):
- """stores group profile data"""
- group_tag = models.OneToOneField(
- Tag,
- unique = True,
- related_name = 'group_profile'
- )
- logo_url = models.URLField(null = True)
- moderate_email = models.BooleanField(default = True)
- is_open = models.BooleanField(default = False)
- #preapproved email addresses and domain names to auto-join groups
- #trick - the field is padded with space and all tokens are space separated
- preapproved_emails = models.TextField(
- null = True, blank = True, default = ''
- )
- #only domains - without the '@' or anything before them
- preapproved_email_domains = models.TextField(
- null = True, blank = True, default = ''
- )
-
- class Meta:
- #added to make account merges work properly
- app_label = 'askbot'
-
def can_accept_user(self, user):
"""True if user is preapproved to join the group"""
if user.is_anonymous():