views.py 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. from django.http import HttpResponse
  2. from django.shortcuts import render
  3. from django.contrib.auth.decorators import login_required
  4. from .models import Group
  5. from django.contrib.auth.models import User
  6. from folder.models import Folder
  7. import json
  8. import random
  9. import string
  10. # Create your views here.
  11. DEBUG = 1
  12. # 首先是 加入/退出 群组,客户端发送申请,把该用户直接 加入/删除 该群组的对象
  13. @login_required(login_url='/account/login/')
  14. def add_group(request):
  15. if request.method == 'POST':
  16. data = request.POST
  17. # 查找是否有此人
  18. user = User.objects.filter(username=data['username']).get()
  19. if user:
  20. # 查找此人是否已经在群组里
  21. group = Group.objects.filter(group_id=data['group_id']).get()
  22. if group.member.filter(username=user.username).count() > 0:
  23. # 此人已在群组里
  24. return HttpResponse(status=421)
  25. else:
  26. group.member.add(user)
  27. group.save()
  28. return HttpResponse(status=200)
  29. else:
  30. return HttpResponse(status=422)
  31. elif request.method == 'GET':
  32. if DEBUG:
  33. return render(request, 'add_group.html')
  34. else:
  35. return HttpResponse(status=400)
  36. @login_required(login_url='/account/login/')
  37. def create_group(request):
  38. if request.method == 'POST':
  39. data = request.POST
  40. # 查找是否有此人
  41. user = User.objects.filter(username=request.user.username)
  42. if user:
  43. group_id_random = ''.join(random.sample(string.digits, 8))
  44. folder_1 = Folder.objects.create(folder_id=group_id_random,
  45. folder_name=data['group_name'],
  46. father_folder=None)
  47. folder_1.save()
  48. group_1 = Group.objects.create(group_id=group_id_random,
  49. group_name=data['group_name'],
  50. creator=request.user.username,
  51. folder=folder_1,)
  52. group_1.member.set(user)
  53. group_1.save()
  54. return HttpResponse(status=200)
  55. else:
  56. return HttpResponse(status=422)
  57. elif request.method == 'GET':
  58. if DEBUG:
  59. return render(request, 'create_group.html')
  60. else:
  61. return HttpResponse(status=400)
  62. # value = ''.join(random.sample(string.ascii_letters + string.digits, 8))
  63. @login_required(login_url='/account/login/')
  64. def leave_group(request):
  65. if request.method == 'POST':
  66. data = request.POST
  67. # 查找是否有此人
  68. user = User.objects.filter(username=data['username']).get()
  69. if user:
  70. # 查找此人是否已经在群组里
  71. group = Group.objects.filter(group_id=data['group_id']).get()
  72. if group.member.filter(username=user.username).count() == 0:
  73. # 此人不在群组里
  74. return HttpResponse(status=421)
  75. else:
  76. group.member.remove(user)
  77. group.save()
  78. return HttpResponse(status=200)
  79. else:
  80. return HttpResponse(status=422)
  81. elif request.method == 'GET':
  82. if DEBUG:
  83. return render(request, 'leave_group.html')
  84. else:
  85. return HttpResponse(status=400)
  86. # 获取你所在的所有群组
  87. @login_required(login_url='/account/login/')
  88. def group_list(request):
  89. if request.method == 'POST':
  90. data = request.POST
  91. # 获取群组
  92. groups = Group.objects.filter(member__username=data['username'])
  93. response = []
  94. for i in groups:
  95. response.append(i.group_name)
  96. return HttpResponse(json.dumps(response), status=200)
  97. elif request.method == 'GET':
  98. if DEBUG:
  99. return render(request, 'group_list.html')
  100. else:
  101. return HttpResponse(status=400)
  102. # 删除群组