aboutsummaryrefslogtreecommitdiffstats
path: root/pysite
diff options
context:
space:
mode:
authorGravatar momothereal <[email protected]>2018-06-19 20:47:51 -0400
committerGravatar momothereal <[email protected]>2018-06-19 20:47:51 -0400
commit56870405fd25710e21d95cdd43093bbfed778ed4 (patch)
treeeb82805cdd605420b75da64aa59ededd4faf195b /pysite
parentMerge branch 'momo/fix-jam-question-add' into 'master' (diff)
Start work on team list page
Diffstat (limited to 'pysite')
-rw-r--r--pysite/views/main/jams/team.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/pysite/views/main/jams/team.py b/pysite/views/main/jams/team.py
new file mode 100644
index 00000000..8cc2a8c2
--- /dev/null
+++ b/pysite/views/main/jams/team.py
@@ -0,0 +1,42 @@
+from pysite.base_route import RouteView
+from pysite.mixins import OAuthMixin, DBMixin
+
+
+class JamsTeamView(RouteView, DBMixin, OAuthMixin):
+ path = "/jams/teams"
+ name = "jams.teams_list"
+
+ def get(self):
+ # list teams a user is (or was) a part of
+ if not self.user_data:
+ return self.redirect_login()
+
+ query = self.db.query("code_jam_teams").filter(
+ lambda team: team["members"].contains(self.user_data["user_id"])
+ ).merge(
+ lambda team: {
+ "members":
+ self.db.query("users")
+ .filter(lambda user: team["members"].contains(user["user_id"]))
+ .coerce_to("array")
+ }
+ )
+ teams = self.db.run(query)
+
+ entries = []
+
+ for team in teams:
+ # find the jam for this team
+ query = self.db.query("code_jams").filter(
+ lambda jam: jam["teams"].contains(team["id"])
+ )
+ jam = self.db.run(query).next()
+ entries.append({
+ "team": team,
+ "jam": jam
+ })
+
+ return self.render(
+ "main/jams/teams_list.html",
+ entries=entries
+ )