summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--askbot/models/__init__.py12
-rw-r--r--askbot/models/user.py6
-rw-r--r--askbot/tests/user_model_tests.py22
3 files changed, 33 insertions, 7 deletions
diff --git a/askbot/models/__init__.py b/askbot/models/__init__.py
index 751bbce6..acc59568 100644
--- a/askbot/models/__init__.py
+++ b/askbot/models/__init__.py
@@ -3551,11 +3551,13 @@ def add_missing_tag_subscriptions(sender, instance, created, **kwargs):
and MarkedTags.
'''
if created:
- user_groups = instance.get_groups()
- for subscription in BulkTagSubscription.objects.filter(groups__in = user_groups):
- tag_list = subscription.tag_list()
- instance.mark_tags(tagnames = tag_list,
- reason='subscribed', action='add')
+ if askbot_settings.SUBSCRIBED_TAG_SELECTOR_ENABLED and \
+ askbot_settings.GROUPS_ENABLED:
+ user_groups = instance.get_groups()
+ for subscription in BulkTagSubscription.objects.filter(groups__in = user_groups):
+ tag_list = subscription.tag_list()
+ instance.mark_tags(tagnames = tag_list,
+ reason='subscribed', action='add')
def post_anonymous_askbot_content(
sender,
diff --git a/askbot/models/user.py b/askbot/models/user.py
index d9ee1965..c27c8759 100644
--- a/askbot/models/user.py
+++ b/askbot/models/user.py
@@ -603,8 +603,10 @@ class BulkTagSubscriptionManager(BaseQuerySetManager):
tag_name_list = []
if tag_names:
- assert(tag_author)
tags, new_tag_names = get_tags_by_names(tag_names)
+ if new_tag_names:
+ assert(tag_author)
+
tags_id_list= [tag.id for tag in tags]
tag_name_list = [tag.name for tag in tags]
@@ -627,7 +629,7 @@ class BulkTagSubscriptionManager(BaseQuerySetManager):
if group_list:
group_ids = []
- for group in group:
+ for group in group_list:
#TODO: do the group marked tag thing here
group_ids.append(group.id)
new_object.groups.add(*group_ids)
diff --git a/askbot/tests/user_model_tests.py b/askbot/tests/user_model_tests.py
index e46cdb77..42c040b0 100644
--- a/askbot/tests/user_model_tests.py
+++ b/askbot/tests/user_model_tests.py
@@ -1,6 +1,7 @@
from askbot.tests.utils import AskbotTestCase
from django.contrib.auth.models import User
from askbot import models
+from askbot.conf import settings
from askbot.models.tag import format_personal_group_name
class UserModelTests(AskbotTestCase):
@@ -16,6 +17,27 @@ class UserModelTests(AskbotTestCase):
)
self.assertEqual(memberships.count(), 1)
+ def test_new_user_has_subscriptions(self):
+ old_value = settings.SUBSCRIBED_TAG_SELECTOR_ENABLED
+ old_group_value = settings.GROUPS_ENABLED
+ settings.SUBSCRIBED_TAG_SELECTOR_ENABLED = True
+ settings.GROUPS_ENABLED = True
+ one_tag = self.create_tag('one-tag')
+ another_tag = self.create_tag('another_tag')
+
+ global_group = models.Group.objects.get_global_group()
+
+ bulk_subscription = models.BulkTagSubscription.objects.create(
+ tag_names=[one_tag.name, another_tag.name],
+ group_list = [global_group]
+ )
+ user = User.objects.create_user('someone', 'someone@example.com')
+ marked_tags = user.get_marked_tags('subscribed')
+ self.assertTrue(one_tag in marked_tags)
+ self.assertTrue(another_tag in marked_tags)
+ settings.SUBSCRIBED_TAG_SELECTOR_ENABLED = old_value
+ settings.GROUPS_ENABLED = old_group_value
+
def test_delete_user(self):
user = self.create_user('user')
user.delete()