summaryrefslogtreecommitdiffstats
path: root/askbot/views/users.py
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-09-05 12:16:43 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-09-05 12:16:43 -0400
commit3f6ee303f6df25fad5618d113b5b401e707c4fe8 (patch)
treeac54052a64301d70adfbf97fd950154c5916aea6 /askbot/views/users.py
parenta11da46b667d619c55d41294fed12f5b1b9e3c8f (diff)
downloadaskbot-3f6ee303f6df25fad5618d113b5b401e707c4fe8.tar.gz
askbot-3f6ee303f6df25fad5618d113b5b401e707c4fe8.tar.bz2
askbot-3f6ee303f6df25fad5618d113b5b401e707c4fe8.zip
a part of "ask to join group" moderation
Diffstat (limited to 'askbot/views/users.py')
-rw-r--r--askbot/views/users.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/askbot/views/users.py b/askbot/views/users.py
index e55c0cc3..357ec4f5 100644
--- a/askbot/views/users.py
+++ b/askbot/views/users.py
@@ -671,6 +671,38 @@ def user_recent(request, user, context):
context.update(data)
return render_into_skin('user_profile/user_recent.html', context, request)
+#not a view - no direct url route here, called by `user_responses`
+def show_group_join_requests(request, user, context):
+ """show group join requests to admins who belong to the group"""
+ if request.user.is_administrator_or_moderator() is False:
+ raise Http404
+
+ #get group to which user belongs
+ groups = request.user.get_groups()
+ #construct a dictionary group id --> group object
+ #to avoid loading group via activity content object
+ groups_dict = dict([(group.id, group) for group in groups])
+
+ #get join requests for those groups
+ group_content_type = ContentType.objects.get_for_model(models.Group)
+ join_requests = models.Activity.objects.filter(
+ activity_type=const.TYPE_ACTIVITY_ASK_TO_JOIN_GROUP,
+ content_type=group_content_type,
+ object_id__in=groups_dict.keys()
+ ).order_by('-active_at')
+ data = {
+ 'active_tab':'users',
+ 'page_class': 'user-profile-page',
+ 'tab_name' : 'join_requests',
+ 'tab_description' : _('group joining requests'),
+ 'page_title' : _('profile - moderation'),
+ 'groups_dict': groups_dict,
+ 'join_requests': join_requests
+ }
+ context.update(data)
+ return render_into_skin('user_profile/group_join_requests.html', context, request)
+
+
@owner_or_moderator_required
def user_responses(request, user, context):
"""
@@ -700,6 +732,8 @@ def user_responses(request, user, context):
const.TYPE_ACTIVITY_MODERATED_NEW_POST,
const.TYPE_ACTIVITY_MODERATED_POST_EDIT
)
+ elif section == 'join_requests':
+ return show_group_join_requests(request, user, context)
else:
raise Http404