Пример #1
0
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
Пример #2
0
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')
Пример #3
0
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')
Пример #4
0
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 handle_community_creation_requests(request):

    if request.user.is_superuser:
        if request.method == 'POST':
            pk = request.POST['pk']
            rcommunity = RequestCommunityCreation.objects.get(pk=pk)
            user = rcommunity.requestedby
            status = request.POST['status']
            if status == 'approve' and rcommunity.status != 'approved':

                # 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(rcommunity.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 = (rcommunity.name, slug, rcommunity.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})

                communitycreation = Community.objects.create(
                    name=rcommunity.name,
                    desc=rcommunity.desc,
                    tag_line=rcommunity.tag_line,
                    category=rcommunity.category,
                    created_by=rcommunity.requestedby,
                    forum_link=forum_link)

                create_wiki_for_community(communitycreation)
                communityadmin = Roles.objects.get(name='community_admin')
                communitymembership = CommunityMembership.objects.create(
                    user=rcommunity.requestedby,
                    community=communitycreation,
                    role=communityadmin)
                remove_or_add_user_feed(rcommunity.requestedby,
                                        communitycreation, 'community_created')
                rcommunity.status = 'approved'
                rcommunity.save()

            if status == 'reject' and rcommunity.status != 'rejected':
                rcommunity.status = 'rejected'
                rcommunity.save()

        requestcommunitycreation = RequestCommunityCreation.objects.filter(
            status='Request')
        return render(request, 'community_creation_requests.html',
                      {'requestcommunitycreation': requestcommunitycreation})
    else:
        return redirect('login')
Пример #8
0
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')