def create_group(request): if request.method == 'POST': name = request.POST['name'] desc = request.POST['desc'] try: image = request.FILES['group_image'] except: image = None user = request.user visibility = request.POST['visibility'] group = Group.objects.create( name = name, desc = desc, image = image, visibility = visibility, created_by = user ) role = Roles.objects.get(name='group_admin') GroupMembership.objects.create(user=user, group=group, role=role) #create ether id for the group create_group_ether(group) notify_remove_or_add_user(request.user, user, group, 'group_created') remove_or_add_user_feed(request.user, group, "group_created") return group
def group_unsubscribe(request): if request.user.is_authenticated: if request.method == 'POST': gid = request.POST['gid'] group = Group.objects.get(pk=gid) user = request.user if GroupMembership.objects.filter(user=user, group=group).exists(): remove_or_add_user_feed(user, group, 'left') notify_remove_or_add_user(user, user, group, 'left') obj = GroupMembership.objects.filter(user=user, group=group).delete() return redirect('group_view', pk=gid) return render(request, 'groupview.html') else: return redirect('login')
def community_unsubscribe(request): if request.user.is_authenticated: if request.method == 'POST': cid = request.POST['cid'] community=Community.objects.get(pk=cid) user = request.user if CommunityMembership.objects.filter(user=user, community=community).exists(): remove_or_add_user_feed(user,community,'left') notify_remove_or_add_user(user, user, community, 'left') obj = CommunityMembership.objects.filter(user=user, community=community).delete() #notify_subscribe_unsubscribe(request.user, community, 'unsubscribe') return redirect('community_view',pk=cid) return render(request, 'communityview.html') else: return redirect('login')
def handle_group_invitations(request): if request.method == 'POST': pk = int(request.POST['pk']) grpinivtation=GroupInvitations.objects.get(pk=pk) status = request.POST['status'] user = User.objects.get(username = request.user.username) if status=='Accept' and grpinivtation.status!='Accepted': grpmmbership = GroupMembership.objects.create(user=grpinivtation.user, group=grpinivtation.group, role=grpinivtation.role) grpinivtation.status = 'Accepted' grpinivtation.save() notify_remove_or_add_user(request.user, user, grpinivtation.group, 'added') if grpinivtation.role.name=='publisher' or grpinivtation.role.name=='group_admin': remove_or_add_user_feed(user, grpinivtation.group, 'added') if status=='Reject' and grpinivtation.status!='Rejected': grpinivtation.status = 'Rejected' grpinivtation.save() return redirect('user_dashboard')
def create_community(request): errormessage = '' if request.user.is_superuser: if request.method == 'POST': username = request.POST['username'] try: usr = User.objects.get(username=username) name = request.POST['name'] desc = request.POST['desc'] category = request.POST['category'] tag_line = request.POST['tag_line'] role = Roles.objects.get(name='community_admin') # Create Forum for this community from django.db import connection cursor = connection.cursor() cursor.execute( ''' select tree_id from forum_forum order by tree_id DESC limit 1''' ) tree_id = cursor.fetchone()[0] + 1 slug = "-".join(name.lower().split()) #return HttpResponse(str(tree_id)) insert_stmt = ( "INSERT INTO forum_forum (created,updated,name,slug,description,link_redirects,type,link_redirects_count,display_sub_forum_list,lft,rght,tree_id,level,direct_posts_count,direct_topics_count) " "VALUES (NOW(), NOW(), %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" ) data = (name, slug, desc, 0, 0, 0, 1, 1, 2, tree_id, 0, 0, 0) try: cursor.execute(insert_stmt, data) cursor.execute( ''' select id from forum_forum order by id desc limit 1''' ) forum_link = slug + '-' + str(cursor.fetchone()[0]) except: errormessage = 'Can not create default forum for this community' return render(request, 'new_community.html', {'errormessage': errormessage}) community = Community.objects.create( name=name, desc=desc, category=category, image=request.FILES['community_image'], tag_line=tag_line, created_by=usr, forum_link=forum_link) communitymembership = CommunityMembership.objects.create( user=usr, community=community, role=role) remove_or_add_user_feed(usr, community, 'community_created') notify_remove_or_add_user(request.user, usr, community, 'community_created') create_wiki_for_community(community) return redirect('community_view', community.pk) except User.DoesNotExist: errormessage = 'user does not exist' return render(request, 'new_community.html', {'errormessage': errormessage}) else: return render(request, 'new_community.html') else: return redirect('home')
def manage_community(request, pk): if request.user.is_authenticated: community = Community.objects.get(pk=pk) uid = request.user.id errormessage = '' membership = None try: membership = CommunityMembership.objects.get( user=uid, community=community.pk) if membership.role.name == 'community_admin': count = CommunityMembership.objects.filter( community=community.pk, role=membership.role).count() members = CommunityMembership.objects.filter( community=community.pk) if request.method == 'POST': try: username = request.POST['username'] rolename = request.POST['role'] user = User.objects.get(username=username) role = Roles.objects.get(name=rolename) status = request.POST['status'] if status == 'add': try: is_member = CommunityMembership.objects.get( user=user, community=community.pk) except CommunityMembership.DoesNotExist: obj = CommunityMembership.objects.create( user=user, community=community, role=role) #if rolename=='publisher': #create_community_feed(user,'New Publisher has been added',community) else: errormessage = 'user exists in community' if status == 'update': if count > 1 or count == 1 and username != request.user.username: try: update_role_feed(user, community, rolename) notify_update_role(request.user, user, community, rolename) is_member = CommunityMembership.objects.get( user=user, community=community.pk) is_member.role = role is_member.save() except CommunityMembership.DoesNotExist: errormessage = 'no such user in the community' else: errormessage = 'cannot update this user' if status == 'remove': if count > 1 or count == 1 and username != request.user.username: try: remove_or_add_user_feed( user, community, 'removed') notify_remove_or_add_user( request.user, user, community, 'removed') obj = CommunityMembership.objects.filter( user=user, community=community).delete() except CommunityMembership.DoesNotExist: errormessage = 'no such user in the community' else: errormessage = 'cannot remove this user' return render( request, 'managecommunity.html', { 'community': community, 'members': members, 'membership': membership, 'errormessage': errormessage }) # return redirect('manage_community',pk=pk) except User.DoesNotExist: errormessage = "no such user in the system" return render( request, 'managecommunity.html', { 'community': community, 'members': members, 'membership': membership, 'errormessage': errormessage }) else: return redirect('community_view', pk=pk) except CommunityMembership.DoesNotExist: return redirect('community_view', pk=pk) else: return redirect('login')
def manage_group(request,pk): if request.user.is_authenticated: group = Group.objects.get(pk=pk) community = CommunityGroups.objects.get(group=pk) uid = request.user.id errormessage = '' membership = None try: membership = GroupMembership.objects.get(user=uid, group=group.pk) if membership.role.name == 'group_admin': count = GroupMembership.objects.filter( group=group.pk, role=membership.role).count() members = GroupMembership.objects.filter(group=group.pk) if request.method == 'POST': try: username = request.POST['username'] rolename = request.POST['role'] user = User.objects.get(username = username) role = Roles.objects.get(name=rolename) status = request.POST['status'] if status == 'add': try: is_community_member = CommunityMembership.objects.get(user=user, community=community.community.pk) try: is_member = GroupMembership.objects.get(user=user, group=group.pk) errormessage = 'user exists in group' except GroupMembership.DoesNotExist: errormessage = inviteUser(request, group, user, role) except CommunityMembership.DoesNotExist: errormessage = 'user is not a part of the community' if status == 'update': if count > 1 or count == 1 and username != request.user.username: try: notify_update_role(request.user, user, group, rolename) update_role_feed(user, group, rolename) is_member = GroupMembership.objects.get(user=user, group=group.pk) is_member.role = role is_member.save() except GroupMembership.DoesNotExist: errormessage = 'no such user in the group' else: errormessage = 'cannot update this user' if status == 'remove': if count > 1 or count == 1 and username != request.user.username: try: notify_remove_or_add_user(request.user, user, group, 'removed') remove_or_add_user_feed(user, group, "removed") obj = GroupMembership.objects.filter(user=user, group=group).delete() except GroupMembership.DoesNotExist: errormessage = 'no such user in the group' else: errormessage = 'cannot remove this user' return render(request, 'managegroup.html', {'community':community, 'group':group, 'members':members, 'membership':membership, 'errormessage':errormessage}) #return redirect('manage_group',pk=pk) except User.DoesNotExist: errormessage = "no such user in the system" return render(request, 'managegroup.html', {'community':community, 'group':group, 'members':members, 'membership':membership, 'errormessage':errormessage}) else: return redirect('group_view',pk=pk) except GroupMembership.DoesNotExist: return redirect('group_view',pk=pk) else: return redirect('login')