|
@@ -1,4 +1,74 @@
|
|
|
|
|
+from django.http import HttpResponse
|
|
|
from django.shortcuts import render
|
|
from django.shortcuts import render
|
|
|
|
|
+from django.contrib.auth.decorators import login_required
|
|
|
|
|
+from models import Group
|
|
|
|
|
+from django.contrib.auth.models import User
|
|
|
|
|
+import json
|
|
|
|
|
|
|
|
# Create your views here.
|
|
# Create your views here.
|
|
|
-#
|
|
|
|
|
|
|
+DEBUG = 1
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+# 首先是 加入/退出 群组,客户端发送申请,把该用户直接 加入/删除 该群组的对象
|
|
|
|
|
+@login_required(login_url='/account/login/')
|
|
|
|
|
+def add_group(request):
|
|
|
|
|
+ if request.method == 'post':
|
|
|
|
|
+ # 查找是否有此人
|
|
|
|
|
+ user = User.objects.filter(username=request.user.username)
|
|
|
|
|
+ if user:
|
|
|
|
|
+ # 查找此人是否已经在群组里
|
|
|
|
|
+ group_members = Group.objects.filter(member__group_id=request.Group.group_id)
|
|
|
|
|
+ if user.username in group_members:
|
|
|
|
|
+ # 此人已在群组里
|
|
|
|
|
+ return HttpResponse(status=421)
|
|
|
|
|
+ else:
|
|
|
|
|
+ groups = Group.objects.filter(group_id=request.Group.group_id)
|
|
|
|
|
+ groups.member.add(user)
|
|
|
|
|
+ groups.save()
|
|
|
|
|
+ return HttpResponse(status=200)
|
|
|
|
|
+ else:
|
|
|
|
|
+ return HttpResponse(status=422)
|
|
|
|
|
+ elif request.method == 'GET':
|
|
|
|
|
+ if DEBUG:
|
|
|
|
|
+ return render(request, 'add_group.html')
|
|
|
|
|
+ else:
|
|
|
|
|
+ return HttpResponse(status=400)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@login_required(login_url='/account/login/')
|
|
|
|
|
+def leave_group(request):
|
|
|
|
|
+ if request == 'post':
|
|
|
|
|
+ user = User.objects.filter(username=request.user.username)
|
|
|
|
|
+ if user:
|
|
|
|
|
+ # 查找此人是否已经在群组里
|
|
|
|
|
+ group_members = Group.objects.filter(member__group_id=request.Group.group_id)
|
|
|
|
|
+ if user.username in group_members:
|
|
|
|
|
+ # 此人已在群组里
|
|
|
|
|
+ return HttpResponse(status=421)
|
|
|
|
|
+ else:
|
|
|
|
|
+ groups = Group.objects.filter(group_id=request.Group.group_id)
|
|
|
|
|
+ groups.member.delete(user)
|
|
|
|
|
+ groups.save()
|
|
|
|
|
+ return HttpResponse(status=200)
|
|
|
|
|
+ else:
|
|
|
|
|
+ return HttpResponse(status=422)
|
|
|
|
|
+ elif request.method == 'GET':
|
|
|
|
|
+ if DEBUG:
|
|
|
|
|
+ return render(request, 'add_group.html')
|
|
|
|
|
+ else:
|
|
|
|
|
+ return HttpResponse(status=400)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+# 获取你所在的所有群组
|
|
|
|
|
+@login_required(login_url='/account/login/')
|
|
|
|
|
+def group_list(request):
|
|
|
|
|
+ if request.method == 'POST':
|
|
|
|
|
+ # 获取群组
|
|
|
|
|
+ groups = Group.objects.filter(group_id__member=request.user.username)
|
|
|
|
|
+ response = groups
|
|
|
|
|
+ return HttpResponse(json.dumps(response), status=200)
|
|
|
|
|
+ elif request.method == 'GET':
|
|
|
|
|
+ if DEBUG:
|
|
|
|
|
+ return render(request, 'group_list.html')
|
|
|
|
|
+ else:
|
|
|
|
|
+ return HttpResponse(status=400)
|