diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2012-08-27 23:08:33 -0400 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2012-08-27 23:08:33 -0400 |
commit | c3cd75e92d07f38502c35b485db9cb982b4d83d9 (patch) | |
tree | 6f0206b74547b906c00270c8960e6a9e8a76b0d6 | |
parent | 97ca457c3fd8f030ff898ad24d49bd9368118240 (diff) | |
download | askbot-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.py | 69 | ||||
-rw-r--r-- | askbot/models/__init__.py | 7 | ||||
-rw-r--r-- | askbot/models/post.py | 17 | ||||
-rw-r--r-- | askbot/models/question.py | 5 | ||||
-rw-r--r-- | askbot/models/tag.py | 9 | ||||
-rw-r--r-- | askbot/models/user.py | 38 |
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(): |