views.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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. # 查找是否有此人
  17. user = User.objects.filter(username=request.user.username).get()
  18. if user:
  19. # 查找此人是否已经在群组里
  20. group = Group.objects.filter(group_id=request.Group.group_id).get()
  21. if user in group.member:
  22. # 此人已在群组里
  23. return HttpResponse(status=421)
  24. else:
  25. group.member.add(user)
  26. group.save()
  27. return HttpResponse(status=200)
  28. else:
  29. return HttpResponse(status=422)
  30. elif request.method == 'GET':
  31. if DEBUG:
  32. return render(request, 'add_group.html')
  33. else:
  34. return HttpResponse(status=400)
  35. @login_required(login_url='/account/login/')
  36. def create_group(request):
  37. if request.method == 'post':
  38. # 查找是否有此人
  39. user = User.objects.filter(username=request.user.username).get()
  40. if user:
  41. # 查找此群是否有人注册
  42. group = Group.objects.filter(group_id=request.Group.group_id).get()
  43. if group:
  44. # 此群有人注册
  45. return HttpResponse(status=421)
  46. else:
  47. group_id_random = ''.join(random.sample(string.ascii_letters + string.digits, 8))
  48. while Group.objects.filter(group_id=group_id_random) is not None:
  49. group_id_random = ''.join(random.sample(string.ascii_letters + string.digits, 8))
  50. folder_1 = Folder.objects.create(folder_id=group_id_random,
  51. folder_name=request.Group.group_name,
  52. father_folder=None)
  53. folder_1.save()
  54. group_1 = Group.objects.create(group_id=group_id_random,
  55. group_name=request.Group.group_name,
  56. creator=request.user.username,
  57. folder=folder_1,
  58. member=user)
  59. group_1.save()
  60. return HttpResponse(status=200)
  61. else:
  62. return HttpResponse(status=422)
  63. elif request.method == 'GET':
  64. if DEBUG:
  65. return render(request, 'add_group.html')
  66. else:
  67. return HttpResponse(status=400)
  68. # value = ''.join(random.sample(string.ascii_letters + string.digits, 8))
  69. @login_required(login_url='/account/login/')
  70. def leave_group(request):
  71. if request.method == 'post':
  72. # 查找是否有此人
  73. user = User.objects.filter(username=request.user.username).get()
  74. if user:
  75. # 查找此人是否已经在群组里
  76. group = Group.objects.filter(group_id=request.Group.group_id).get()
  77. if user in group.member:
  78. # 此人已在群组里
  79. return HttpResponse(status=421)
  80. else:
  81. group.member.delete(user)
  82. group.save()
  83. return HttpResponse(status=200)
  84. else:
  85. return HttpResponse(status=422)
  86. elif request.method == 'GET':
  87. if DEBUG:
  88. return render(request, 'leave_group.html')
  89. else:
  90. return HttpResponse(status=400)
  91. # 获取你所在的所有群组
  92. @login_required(login_url='/account/login/')
  93. def group_list(request):
  94. if request.method == 'POST':
  95. # 获取群组
  96. groups = Group.objects.filter(member__username=request.user.username)
  97. response = []
  98. for i in groups:
  99. response.append(i)
  100. return HttpResponse(json.dumps(response), status=200)
  101. elif request.method == 'GET':
  102. if DEBUG:
  103. return render(request, 'group_list.html')
  104. else:
  105. return HttpResponse(status=400)
  106. # 删除群组