From b56bb928013dad854b2538e5228484bd7c9b7fba Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Mon, 4 Nov 2013 16:51:25 -0500 Subject: [PATCH] Work in progress: Continue on org view --- data/model.py | 3 +-- endpoints/api.py | 7 +++++-- static/js/controllers.js | 4 ++++ static/partials/org-view.html | 9 ++++++++- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/data/model.py b/data/model.py index 533984428..b0204c521 100644 --- a/data/model.py +++ b/data/model.py @@ -279,8 +279,7 @@ def get_organization_team_members(teamid): def get_teams_within_org(organization): - joined = Team.select().join(TeamMember) - return joined.where(Team.organization == organization) + return Team.select().where(Team.organization == organization) def get_user_teams_within_org(username, organization): diff --git a/endpoints/api.py b/endpoints/api.py index 5d9628df0..941f33496 100644 --- a/endpoints/api.py +++ b/endpoints/api.py @@ -244,17 +244,20 @@ def get_organization(orgname): user = current_user.db_user() def team_view(t): + view_permission = ViewTeamPermission(orgname, t.name) return { 'id': t.id, 'name': t.name, - 'is_member': False + 'can_view': view_permission.can() } def org_view(o, teams): + admin_org = AdministerOrganizationPermission(orgname) return { 'name': o.username, 'gravatar': compute_hash(o.email), - 'teams': [team_view(t) for t in teams] + 'teams': [team_view(t) for t in teams], + 'is_admin': admin_org.can() } if current_user.is_anonymous(): diff --git a/static/js/controllers.js b/static/js/controllers.js index cd7eb74b8..6d3ebff7a 100644 --- a/static/js/controllers.js +++ b/static/js/controllers.js @@ -1238,6 +1238,8 @@ function TeamViewCtrl($rootScope, $scope, Restangular, $routeParams) { $scope.organization = resp; $scope.loading = !$scope.organization || !$scope.members; }, function() { + $scope.organization = null; + $scope.members = null; $scope.loading = false; }); }; @@ -1250,6 +1252,8 @@ function TeamViewCtrl($rootScope, $scope, Restangular, $routeParams) { $scope.loading = !$scope.organization || !$scope.members; $rootScope.title = teamname + ' (' + orgname + ')'; }, function() { + $scope.organization = null; + $scope.members = null; $scope.loading = false; }); }; diff --git a/static/partials/org-view.html b/static/partials/org-view.html index ca4e63f14..fc373e528 100644 --- a/static/partials/org-view.html +++ b/static/partials/org-view.html @@ -11,6 +11,13 @@
- {{ team.name }} + + + {{ team.name }} + + + + {{ team.name }} +