From 88a1465ae7c56090381eeb81aea4780a8d1a89a9 Mon Sep 17 00:00:00 2001 From: zhengxie Date: Wed, 26 Dec 2012 16:29:53 +0800 Subject: [PATCH] [api2] Sort dir entries by type and name --- api2/views.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/api2/views.py b/api2/views.py index 5c1b03bc39..6142588b93 100644 --- a/api2/views.py +++ b/api2/views.py @@ -343,13 +343,13 @@ def get_file_size (id): return size if size else 0 def get_dir_entrys_by_id(request, dir_id): - dentrys = [] try: dirs = seafserv_threaded_rpc.list_dir(dir_id) except SearpcError, e: return api_error(HTTP_520_OPERATION_FAILED, "Failed to list dir.") + dir_list, file_list = [], [] for dirent in dirs: dtype = "file" entry={} @@ -364,8 +364,15 @@ def get_dir_entrys_by_id(request, dir_id): entry["type"]=dtype entry["name"]=dirent.obj_name entry["id"]=dirent.obj_id - dentrys.append(entry) - #return Response(dentrys) + if dtype == 'dir': + 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, content_type=json_content_type) response["oid"] = dir_id