From e5c5719ea792bec5cb1fe558e2403e160aead6fa Mon Sep 17 00:00:00 2001 From: zhengxie Date: Fri, 24 Apr 2015 13:35:45 +0800 Subject: [PATCH] [api2] Fix group repos --- seahub/api2/views.py | 17 ++++++++++------- static/scripts/app/collections/group-repos.js | 2 +- tests/api/test_group_repos.py | 16 +++++++++++++++- 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/seahub/api2/views.py b/seahub/api2/views.py index 93cfe7348c..071b3fc508 100644 --- a/seahub/api2/views.py +++ b/seahub/api2/views.py @@ -3110,15 +3110,14 @@ class GroupRepos(APIView): repo = seafile_api.get_repo(repo_id) seafile_api.set_group_repo(repo.id, group.id, username, permission) - calculate_repos_last_modify([repo]) group_repo = { "id": repo.id, "name": repo.name, "desc": repo.desc, "size": repo.size, "size_formatted": filesizeformat(repo.size), - "mtime": repo.latest_modify, - "mtime_relative": translate_seahub_time(repo.latest_modify), + "mtime": repo.last_modified, + "mtime_relative": translate_seahub_time(repo.last_modified), "encrypted": repo.encrypted, "permission": 'rw', # Always have read-write permission to owned repo "owner": username, @@ -3147,17 +3146,21 @@ class GroupRepos(APIView): "desc": r.desc, "size": r.size, "size_formatted": filesizeformat(r.size), - "mtime": r.latest_modify, - "mtime_relative": translate_seahub_time(r.latest_modify), + "mtime": r.last_modified, + "mtime_relative": translate_seahub_time(r.last_modified), "encrypted": r.encrypted, - "permission": check_permission(r.id, username), + "permission": r.permission, "owner": r.user, "owner_nickname": email2nickname(r.user), "share_from_me": True if username == r.user else False, } repos_json.append(repo) - return Response({"is_staff": group.is_staff, "repos": repos_json}) + req_from = request.GET.get('from', "") + if req_from == 'web': + return Response({"is_staff": group.is_staff, "repos": repos_json}) + else: + return Response(repos_json) class GroupRepo(APIView): authentication_classes = (TokenAuthentication, SessionAuthentication) diff --git a/static/scripts/app/collections/group-repos.js b/static/scripts/app/collections/group-repos.js index 4df40c4076..3909606a5a 100644 --- a/static/scripts/app/collections/group-repos.js +++ b/static/scripts/app/collections/group-repos.js @@ -11,7 +11,7 @@ define([ comparator: -'mtime', url: function() { - return Common.getUrl({name: 'group_repos', group_id: this.group_id}); + return Common.getUrl({name: 'group_repos', group_id: this.group_id})+'?from=web'; }, parse: function(data) { diff --git a/tests/api/test_group_repos.py b/tests/api/test_group_repos.py index 263ed5dbae..7cd9a14467 100644 --- a/tests/api/test_group_repos.py +++ b/tests/api/test_group_repos.py @@ -18,7 +18,13 @@ class GroupRepoTest(ApiTestBase): resp = self.create_group_repo(group.group_id) assert resp.status_code == 200 - assert len(resp.json()) == 9 + resp_json = resp.json() + assert len(resp_json['id']) == 36 + assert resp_json['name'] == 'grepo-test' + assert resp_json['size'] >= 0 + assert resp_json['mtime'] > 0 + assert resp_json['permission'] == 'rw' + assert '' in resp_json['mtime_relative'] def test_add_with_wrong_perm(self): with self.get_tmp_group() as group: @@ -36,6 +42,14 @@ class GroupRepoTest(ApiTestBase): assert resp.status_code == 200 assert len(resp.json()) == 1 + resp_repo = resp.json()[0] + assert len(resp_repo['id']) == 36 + assert resp_repo['name'] == 'grepo-test' + assert resp_repo['size'] >= 0 + assert resp_repo['mtime'] > 0 + assert resp_repo['permission'] in ('r', 'rw') + assert '' in resp_repo['mtime_relative'] + def test_can_delete(self): with self.get_tmp_group() as group: resp = self.create_group_repo(group.group_id)