summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-08-07 10:59:22 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-08-07 10:59:22 -0400
commit922c704bee7c79d85eefdf8538edd7e17d02f137 (patch)
treef0177baa68f32695e6b0d2bf04f258fa65192ed6
parent6266d4e5087c0203e013912a568c08bad8b866d8 (diff)
downloadaskbot-922c704bee7c79d85eefdf8538edd7e17d02f137.tar.gz
askbot-922c704bee7c79d85eefdf8538edd7e17d02f137.tar.bz2
askbot-922c704bee7c79d85eefdf8538edd7e17d02f137.zip
made it impossible to leave the "everyone" group
-rw-r--r--askbot/models/__init__.py4
-rw-r--r--askbot/models/tag.py7
-rw-r--r--askbot/models/user.py5
-rw-r--r--askbot/skins/default/templates/macros.html2
-rw-r--r--askbot/views/commands.py4
-rw-r--r--askbot/views/users.py5
6 files changed, 21 insertions, 6 deletions
diff --git a/askbot/models/__init__.py b/askbot/models/__init__.py
index 4ccc2afd..ac610506 100644
--- a/askbot/models/__init__.py
+++ b/askbot/models/__init__.py
@@ -31,7 +31,9 @@ from askbot.models.question import QuestionView, AnonymousQuestion
from askbot.models.question import DraftQuestion
from askbot.models.question import FavoriteQuestion
from askbot.models.tag import Tag, MarkedTag
-from askbot.models.tag import get_group_names, get_groups
+from askbot.models.tag import get_global_group
+from askbot.models.tag import get_group_names
+from askbot.models.tag import get_groups
from askbot.models.user import EmailFeedSetting, ActivityAuditStatus, Activity
from askbot.models.user import GroupMembership, GroupProfile
from askbot.models.post import Post, PostRevision
diff --git a/askbot/models/tag.py b/askbot/models/tag.py
index 539d70f8..b0fd9aac 100644
--- a/askbot/models/tag.py
+++ b/askbot/models/tag.py
@@ -23,7 +23,8 @@ def get_global_group():
from askbot.models import get_admin
return Tag.group_tags.get_or_create(
group_name=group_name,
- user=get_admin()
+ user=get_admin(),
+ is_open=False
)
def delete_tags(tags):
@@ -307,7 +308,7 @@ class GroupTagManager(BaseQuerySetManager):
def get_query_set(self):
return GroupTagQuerySet(self.model)
- def get_or_create(self, group_name = None, user = None):
+ def get_or_create(self, group_name = None, user = None, is_open=True):
"""creates a group tag or finds one, if exists"""
#todo: here we might fill out the group profile
@@ -321,7 +322,7 @@ class GroupTagManager(BaseQuerySetManager):
tag = self.model(name = group_name, created_by = user)
tag.save()
from askbot.models.user import GroupProfile
- group_profile = GroupProfile(group_tag = tag)
+ group_profile = GroupProfile(group_tag = tag, is_open=is_open)
group_profile.save()
return tag
diff --git a/askbot/models/user.py b/askbot/models/user.py
index e4077ea5..14c1d189 100644
--- a/askbot/models/user.py
+++ b/askbot/models/user.py
@@ -11,6 +11,7 @@ from django.forms import EmailField, URLField
from django.utils.translation import ugettext as _
from django.utils.html import strip_tags
from askbot import const
+from askbot.conf import settings as askbot_settings
from askbot.utils import functions
from askbot.models.tag import Tag
from askbot.forms import DomainNameField
@@ -380,6 +381,10 @@ class GroupProfile(models.Model):
if user.is_anonymous():
return False
+ #a special case - automatic global group cannot be joined or left
+ if self.group_tag.name == askbot_settings.GLOBAL_GROUP_NAME:
+ return False
+
if self.is_open:
return True
diff --git a/askbot/skins/default/templates/macros.html b/askbot/skins/default/templates/macros.html
index a640cda9..c03980aa 100644
--- a/askbot/skins/default/templates/macros.html
+++ b/askbot/skins/default/templates/macros.html
@@ -232,7 +232,7 @@ poor design of the data or methods on data objects #}
{%- endmacro -%}
{%- macro group_join_button(group_id = None, can_join = False, is_member = False) -%}
- {% if can_join or is_member %}
+ {% if can_join %}
<button
class="group-join-btn follow-toggle {% if is_member %}on on-state{% endif %}"
data-group-id="{{group_id}}"
diff --git a/askbot/views/commands.py b/askbot/views/commands.py
index 797652a6..64bf8d37 100644
--- a/askbot/views/commands.py
+++ b/askbot/views/commands.py
@@ -24,6 +24,7 @@ from askbot import models
from askbot import forms
from askbot.conf import should_show_sort_by_relevance
from askbot.conf import settings as askbot_settings
+from askbot.models.tag import get_global_group
from askbot.utils import category_tree
from askbot.utils import decorators
from askbot.utils import url_utils
@@ -614,8 +615,11 @@ def add_tag_category(request):
def get_groups_list(request):
"""returns names of group tags
for the autocomplete function"""
+ global_group = get_global_group()
group_names = models.Tag.group_tags.get_all().filter(
deleted = False
+ ).exclude(
+ name=global_group.name
).values_list(
'name', flat = True
)
diff --git a/askbot/views/users.py b/askbot/views/users.py
index 9012a048..5fb581b8 100644
--- a/askbot/views/users.py
+++ b/askbot/views/users.py
@@ -37,6 +37,7 @@ from askbot.conf import settings as askbot_settings
from askbot import models
from askbot import exceptions
from askbot.models.badges import award_badges_signal
+from askbot.models.tag import get_global_group
from askbot.skins.loaders import render_into_skin
from askbot.templatetags import extra_tags
from askbot.search.state_manager import SearchState
@@ -56,7 +57,7 @@ def owner_or_moderator_required(f):
return f(request, profile_owner, context)
return wrapped_func
-def show_users(request, by_group = False, group_id = None, group_slug = None):
+def show_users(request, by_group=False, group_id=None, group_slug=None):
"""Users view, including listing of users by group"""
users = models.User.objects.exclude(status = 'b')
group = None
@@ -442,6 +443,8 @@ def user_stats(request, user, context):
badges.sort(key=operator.itemgetter(1), reverse=True)
user_groups = models.Tag.group_tags.get_for_user(user = user)
+ global_group = get_global_group()
+ user_groups = user_groups.exclude(name=global_group.name)
if request.user == user:
groups_membership_info = user.get_groups_membership_info(user_groups)