views.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. from django.http import HttpResponse
  2. from django.shortcuts import render
  3. from account.decorators import login_required
  4. from .models import Group
  5. from account.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
  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
  37. def create_group(request):
  38. if request.method == 'POST':
  39. data = request.POST
  40. # 查找是否有此人
  41. username = data.get('username', '')
  42. user = User.objects.filter(username=username)
  43. if user:
  44. group_id_random = ''.join(random.sample(string.digits, 8))
  45. folder_1 = Folder.objects.create(folder_id=group_id_random,
  46. folder_name=data['group_name'],
  47. father_folder=None)
  48. folder_1.save()
  49. group_1 = Group.objects.create(group_id=group_id_random,
  50. group_name=data['group_name'],
  51. creator=username,
  52. folder=folder_1,)
  53. group_1.member.set(user)
  54. group_1.save()
  55. return HttpResponse(status=200)
  56. else:
  57. return HttpResponse(status=422)
  58. elif request.method == 'GET':
  59. if DEBUG:
  60. return render(request, 'create_group.html')
  61. else:
  62. return HttpResponse(status=400)
  63. # value = ''.join(random.sample(string.ascii_letters + string.digits, 8))
  64. @login_required
  65. def leave_group(request):
  66. if request.method == 'POST':
  67. data = request.POST
  68. # 查找是否有此人
  69. user = User.objects.filter(username=data['username']).get()
  70. if user:
  71. # 查找此人是否已经在群组里
  72. group = Group.objects.filter(group_id=data['group_id']).get()
  73. if group.member.filter(username=user.username).count() == 0:
  74. # 此人不在群组里
  75. return HttpResponse(status=421)
  76. else:
  77. group.member.remove(user)
  78. group.save()
  79. return HttpResponse(status=200)
  80. else:
  81. return HttpResponse(status=422)
  82. elif request.method == 'GET':
  83. if DEBUG:
  84. return render(request, 'leave_group.html')
  85. else:
  86. return HttpResponse(status=400)
  87. # 获取你所在的所有群组
  88. @login_required
  89. def group_list(request):
  90. if request.method == 'POST':
  91. data = request.POST
  92. # 获取群组
  93. groups = Group.objects.filter(member__username=data['username'])
  94. response = []
  95. for i in groups:
  96. response.append(i.group_name)
  97. return HttpResponse(json.dumps(response), status=200)
  98. elif request.method == 'GET':
  99. if DEBUG:
  100. return render(request, 'group_list.html')
  101. else:
  102. return HttpResponse(status=400)
  103. # 删除群组