zoe 4 лет назад
Родитель
Сommit
8f2314c02a
2 измененных файлов с 74 добавлено и 17 удалено
  1. 58 3
      folder/views.py
  2. 16 14
      group/views.py

+ 58 - 3
folder/views.py

@@ -1,12 +1,67 @@
+from django.http import HttpResponse
 from django.shortcuts import render
+from django.contrib.auth.decorators import login_required
+from models import Folder
+from file.models import File
+from django.contrib.auth.models import User
+import json
 
 # Create your views here.
+DEBUG = 1
 
 
 # 在根目录下列出所有文件夹与文件
+@login_required(login_url='/account/login/')
+def folder_list(request):
+    if request.method == 'POST':
+        # 获取所有文件夹
+        folders = Folder.objects.filter(father_folder=request.Folder).get()
+        files = File.objects.filter(folder=request.Folder).get()
+        response = []
+        for i in folders:
+            response.append(i)
+        for i in files:
+            response.append(i)
+        return HttpResponse(json.dumps(response), status=200)
+    elif request.method == 'GET':
+        if DEBUG:
+            return render(request, 'folder_list.html')
+    else:
+        return HttpResponse(status=400)
 
 
-# 请求查看文件夹内容,进入下一层文件夹,并列出所有文件,包含文件夹
+# 增文件夹
+@login_required(login_url='/account/login/')
+def add_folder(request):
+    if request.method == 'post':
+        folder = Folder.objects.filter(father_folder__folder_id=request.Folder.folder_id).get()
+        if not folder:
+            # 查无此文件夹
+            return HttpResponse(status=421)
+        else:
+            Folder.objects.create(folder_id=request.Folder.folder_id,
+                                  folder_name=request.Folder.folder_name,
+                                  father_folder=folder)
+            return HttpResponse(status=200)
+    elif request.method == 'GET':
+        if DEBUG:
+            return render(request, 'add_folder.html')
+    else:
+        return HttpResponse(status=400)
 
-
-# 增删文件夹
+# 删除文件夹
+@login_required(login_url='/account/login/')
+def delete_folder(request):
+    if request.method == 'post':
+        folder = Folder.objects.filter(folder_id=request.Folder.folder_id).get()
+        if not folder:
+            # 查无此文件夹
+            return HttpResponse(status=421)
+        else:
+            folder.delete()
+            return HttpResponse(status=200)
+    elif request.method == 'GET':
+        if DEBUG:
+            return render(request, 'delete_folder.html')
+    else:
+        return HttpResponse(status=400)

+ 16 - 14
group/views.py

@@ -17,14 +17,13 @@ def add_group(request):
         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:
+            group = Group.objects.filter(group_id=request.Group.group_id).get()
+            if user in group.member:
                 # 此人已在群组里
                 return HttpResponse(status=421)
             else:
-                groups = Group.objects.filter(group_id=request.Group.group_id)
-                groups.member.add(user)
-                groups.save()
+                group.member.add(user)
+                group.save()
                 return HttpResponse(status=200)
         else:
             return HttpResponse(status=422)
@@ -36,19 +35,19 @@ def add_group(request):
 
 
 @login_required(login_url='/account/login/')
-def leave_group(request):
-    if request == 'post':
+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:
+            group = Group.objects.filter(group_id=request.Group.group_id).get()
+            if user in group.member:
                 # 此人已在群组里
                 return HttpResponse(status=421)
             else:
-                groups = Group.objects.filter(group_id=request.Group.group_id)
-                groups.member.delete(user)
-                groups.save()
+                group.member.delete(user)
+                group.save()
                 return HttpResponse(status=200)
         else:
             return HttpResponse(status=422)
@@ -64,11 +63,14 @@ def leave_group(request):
 def group_list(request):
     if request.method == 'POST':
         # 获取群组
-        groups = Group.objects.filter(group_id__member=request.user.username)
-        response = groups
+        groups = Group.objects.filter(member__username=request.user.username)
+        response = []
+        for i in groups:
+            response.append(i)
         return HttpResponse(json.dumps(response), status=200)
     elif request.method == 'GET':
         if DEBUG:
             return render(request, 'group_list.html')
     else:
         return HttpResponse(status=400)
+