mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-03 07:55:36 +00:00
update repo commit dir field
This commit is contained in:
@@ -15,6 +15,7 @@ from seahub.api2.authentication import TokenAuthentication
|
|||||||
from seahub.api2.utils import api_error
|
from seahub.api2.utils import api_error
|
||||||
from seahub.views import check_folder_permission
|
from seahub.views import check_folder_permission
|
||||||
from seaserv import seafile_api
|
from seaserv import seafile_api
|
||||||
|
from seahub.utils import normalize_dir_path
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -24,20 +25,21 @@ class RepoCommitDirView(APIView):
|
|||||||
permission_classes = (IsAuthenticated,)
|
permission_classes = (IsAuthenticated,)
|
||||||
throttle_classes = (UserRateThrottle,)
|
throttle_classes = (UserRateThrottle,)
|
||||||
|
|
||||||
def _get_item_info(self, item, path):
|
def _get_item_info(self, dirent, path):
|
||||||
|
|
||||||
item_info = {
|
# # seahub/seahub/api2/views get_dir_file_recursively
|
||||||
'parent_dir': path,
|
entry = {}
|
||||||
'name': item.obj_name,
|
if stat.S_ISDIR(dirent.mode):
|
||||||
}
|
entry['type'] = 'dir'
|
||||||
|
|
||||||
if stat.S_ISDIR(item.mode):
|
|
||||||
item_info['type'] = 'dir'
|
|
||||||
else:
|
else:
|
||||||
item_info['type'] = 'file'
|
entry['type'] = 'file'
|
||||||
item_info['size'] = item.size
|
entry['size'] = dirent.size
|
||||||
|
|
||||||
return item_info
|
entry['parent_dir'] = path
|
||||||
|
entry['obj_id'] = dirent.obj_id
|
||||||
|
entry['name'] = dirent.obj_name
|
||||||
|
|
||||||
|
return entry
|
||||||
|
|
||||||
def get(self, request, repo_id, commit_id, format=None):
|
def get(self, request, repo_id, commit_id, format=None):
|
||||||
""" List dir by commit
|
""" List dir by commit
|
||||||
@@ -49,6 +51,7 @@ class RepoCommitDirView(APIView):
|
|||||||
|
|
||||||
# argument check
|
# argument check
|
||||||
path = request.GET.get('path', '/')
|
path = request.GET.get('path', '/')
|
||||||
|
path = normalize_dir_path(path)
|
||||||
|
|
||||||
# resource check
|
# resource check
|
||||||
repo = seafile_api.get_repo(repo_id)
|
repo = seafile_api.get_repo(repo_id)
|
||||||
|
@@ -5,7 +5,7 @@ from django.core.urlresolvers import reverse
|
|||||||
|
|
||||||
from seaserv import seafile_api
|
from seaserv import seafile_api
|
||||||
from seahub.test_utils import BaseTestCase
|
from seahub.test_utils import BaseTestCase
|
||||||
|
from seahub.utils import normalize_dir_path
|
||||||
from tests.common.utils import randstring
|
from tests.common.utils import randstring
|
||||||
|
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ class RepoCommitDirTest(BaseTestCase):
|
|||||||
assert json_resp['dirent_list'][0]
|
assert json_resp['dirent_list'][0]
|
||||||
assert json_resp['dirent_list'][0]['type'] == 'file'
|
assert json_resp['dirent_list'][0]['type'] == 'file'
|
||||||
assert json_resp['dirent_list'][0]['name'] == self.inner_file_name
|
assert json_resp['dirent_list'][0]['name'] == self.inner_file_name
|
||||||
assert json_resp['dirent_list'][0]['parent_dir'] == self.folder_path
|
assert json_resp['dirent_list'][0]['parent_dir'] == normalize_dir_path(self.folder_path)
|
||||||
assert json_resp['dirent_list'][0]['size'] == 0
|
assert json_resp['dirent_list'][0]['size'] == 0
|
||||||
|
|
||||||
# test can get without path
|
# test can get without path
|
||||||
@@ -74,11 +74,13 @@ class RepoCommitDirTest(BaseTestCase):
|
|||||||
assert json_resp['dirent_list'][0]['type'] == 'dir'
|
assert json_resp['dirent_list'][0]['type'] == 'dir'
|
||||||
assert json_resp['dirent_list'][0]['name'] == self.folder_name
|
assert json_resp['dirent_list'][0]['name'] == self.folder_name
|
||||||
assert json_resp['dirent_list'][0]['parent_dir'] == '/'
|
assert json_resp['dirent_list'][0]['parent_dir'] == '/'
|
||||||
assert json_resp['dirent_list'][0].get('size') is None
|
assert json_resp['dirent_list'][0]['obj_id']
|
||||||
|
|
||||||
assert json_resp['dirent_list'][1]
|
assert json_resp['dirent_list'][1]
|
||||||
assert json_resp['dirent_list'][1]['type'] == 'file'
|
assert json_resp['dirent_list'][1]['type'] == 'file'
|
||||||
assert json_resp['dirent_list'][1]['name'] == self.file_name
|
assert json_resp['dirent_list'][1]['name'] == self.file_name
|
||||||
assert json_resp['dirent_list'][1]['parent_dir'] == '/'
|
assert json_resp['dirent_list'][1]['parent_dir'] == '/'
|
||||||
|
assert json_resp['dirent_list'][0]['obj_id']
|
||||||
assert json_resp['dirent_list'][1]['size'] == 0
|
assert json_resp['dirent_list'][1]['size'] == 0
|
||||||
|
|
||||||
# test_can_not_get_with_invalid_path_parameter
|
# test_can_not_get_with_invalid_path_parameter
|
||||||
|
Reference in New Issue
Block a user