1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-02 15:38:15 +00:00

[api2] Add file last modifyied time

This commit is contained in:
poetwang
2013-04-06 17:38:13 +08:00
parent 6b5e0e0c2d
commit 34d3c70b22
2 changed files with 11 additions and 5 deletions

View File

@@ -25,6 +25,7 @@ from share.models import FileShare
from seahub.views import access_to_repo, validate_owner
from seahub.utils import gen_file_get_url, gen_token, gen_file_upload_url, \
check_filename_with_rename, get_starred_files, get_ccnetapplet_root, \
get_dir_files_last_modified, \
get_ccnet_server_addr_port, star_file, unstar_file, string2list
try:
from seahub.settings import CLOUD_MODE
@@ -376,13 +377,15 @@ def get_file_size (id):
size = seafserv_threaded_rpc.get_file_size(id)
return size if size else 0
def get_dir_entrys_by_id(request, dir_id):
def get_dir_entrys_by_id(request, repo_id, path, dir_id):
try:
dirs = seafserv_threaded_rpc.list_dir(dir_id)
except SearpcError, e:
return api_error(HTTP_520_OPERATION_FAILED,
"Failed to list dir.")
mtimes = get_dir_files_last_modified (repo_id, path, dir_id)
dir_list, file_list = [], []
for dirent in dirs:
dtype = "file"
@@ -398,11 +401,13 @@ def get_dir_entrys_by_id(request, dir_id):
entry["type"]=dtype
entry["name"]=dirent.obj_name
entry["id"]=dirent.obj_id
entry["mtime"]=mtimes.get(dirent.obj_name, None)
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
@@ -471,7 +476,7 @@ def reloaddir(request, repo_id, parent_dir):
if not dir_id:
return api_error(status.HTTP_404_NOT_FOUND, "Path does not exist")
return get_dir_entrys_by_id(request, dir_id)
return get_dir_entrys_by_id(request, repo_id, parent_dir, dir_id)
def reloaddir_if_neccessary (request, repo_id, parent_dir):
@@ -841,7 +846,7 @@ class DirView(APIView):
response["oid"] = dir_id
return response
else:
return get_dir_entrys_by_id(request, dir_id)
return get_dir_entrys_by_id(request, repo_id, path, dir_id)
def post(self, request, repo_id, format=None):
# new dir