mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-26 07:22:34 +00:00
[api2] Sort dir entries by type and name
This commit is contained in:
@@ -343,13 +343,13 @@ def get_file_size (id):
|
|||||||
return size if size else 0
|
return size if size else 0
|
||||||
|
|
||||||
def get_dir_entrys_by_id(request, dir_id):
|
def get_dir_entrys_by_id(request, dir_id):
|
||||||
dentrys = []
|
|
||||||
try:
|
try:
|
||||||
dirs = seafserv_threaded_rpc.list_dir(dir_id)
|
dirs = seafserv_threaded_rpc.list_dir(dir_id)
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return api_error(HTTP_520_OPERATION_FAILED,
|
return api_error(HTTP_520_OPERATION_FAILED,
|
||||||
"Failed to list dir.")
|
"Failed to list dir.")
|
||||||
|
|
||||||
|
dir_list, file_list = [], []
|
||||||
for dirent in dirs:
|
for dirent in dirs:
|
||||||
dtype = "file"
|
dtype = "file"
|
||||||
entry={}
|
entry={}
|
||||||
@@ -364,8 +364,15 @@ def get_dir_entrys_by_id(request, dir_id):
|
|||||||
entry["type"]=dtype
|
entry["type"]=dtype
|
||||||
entry["name"]=dirent.obj_name
|
entry["name"]=dirent.obj_name
|
||||||
entry["id"]=dirent.obj_id
|
entry["id"]=dirent.obj_id
|
||||||
dentrys.append(entry)
|
if dtype == 'dir':
|
||||||
#return Response(dentrys)
|
dir_list.append(entry)
|
||||||
|
else:
|
||||||
|
file_list.append(entry)
|
||||||
|
|
||||||
|
dir_list.sort(lambda x, y : cmp(x['name'].lower(),y['name'].lower()))
|
||||||
|
file_list.sort(lambda x, y : cmp(x['name'].lower(),y['name'].lower()))
|
||||||
|
dentrys = dir_list + file_list
|
||||||
|
|
||||||
response = HttpResponse(json.dumps(dentrys), status=200,
|
response = HttpResponse(json.dumps(dentrys), status=200,
|
||||||
content_type=json_content_type)
|
content_type=json_content_type)
|
||||||
response["oid"] = dir_id
|
response["oid"] = dir_id
|
||||||
|
Reference in New Issue
Block a user