|
|
@@ -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)
|