diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2012-09-05 12:16:43 -0400 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2012-09-05 12:16:43 -0400 |
commit | 3f6ee303f6df25fad5618d113b5b401e707c4fe8 (patch) | |
tree | ac54052a64301d70adfbf97fd950154c5916aea6 /askbot/views/users.py | |
parent | a11da46b667d619c55d41294fed12f5b1b9e3c8f (diff) | |
download | askbot-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.py | 34 |
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 |