aboutsummaryrefslogtreecommitdiffstats
path: root/pysite
diff options
context:
space:
mode:
authorGravatar momothereal <[email protected]>2018-06-23 11:41:12 -0400
committerGravatar momothereal <[email protected]>2018-06-23 11:41:12 -0400
commite155075acb2dce98331032a485364ebe8cdd09c8 (patch)
treefcb8ff1911ebce4e7c9b0ed564817474e4722948 /pysite
parentPluck team repo in team list (diff)
Some improvements
* Don't show teams button if jam has no teams * Fix some mistakes in team repo validation
Diffstat (limited to 'pysite')
-rw-r--r--pysite/views/main/jams/index.py11
-rw-r--r--pysite/views/main/jams/team_edit_repo.py8
2 files changed, 15 insertions, 4 deletions
diff --git a/pysite/views/main/jams/index.py b/pysite/views/main/jams/index.py
index 8d34fa50..abe2859f 100644
--- a/pysite/views/main/jams/index.py
+++ b/pysite/views/main/jams/index.py
@@ -9,10 +9,21 @@ class JamsIndexView(RouteView, DBMixin):
name = "jams.index"
table_name = "code_jams"
+ teams_table = "code_jam_teams"
+
def get(self):
query = (
self.db.query(self.table_name)
.filter(rethinkdb.row["state"] != "planning")
+ .merge(
+ lambda jam_obj: {
+ "teams":
+ self.db.query(self.teams_table)
+ .filter(lambda team_row: jam_obj["teams"].contains(team_row["id"]))
+ .pluck(["id"])
+ .coerce_to("array")
+ }
+ )
.order_by(rethinkdb.desc("number"))
.limit(5)
)
diff --git a/pysite/views/main/jams/team_edit_repo.py b/pysite/views/main/jams/team_edit_repo.py
index a69b9c9d..8830f799 100644
--- a/pysite/views/main/jams/team_edit_repo.py
+++ b/pysite/views/main/jams/team_edit_repo.py
@@ -86,6 +86,10 @@ class JamsTeamEditRepo(RouteView, DBMixin, OAuthMixin):
if query_response.status_code != 200:
raise BadRequest()
+ if "repo" not in team["jam"]:
+ return True
+ jam_repo = team["jam"]["repo"]
+
project_data = query_response.json()
if "forked_from_project" not in project_data:
raise BadRequest()
@@ -93,10 +97,6 @@ class JamsTeamEditRepo(RouteView, DBMixin, OAuthMixin):
# check if it's a fork for the right repo
forked_from_project = project_data["forked_from_project"]
- jam_repo = team["jam"]["repo"]
- if not jam_repo or jam_repo == "":
- return True
-
jam_repo_path = quote(parse_url(jam_repo).path.strip("/"), safe='')
jam_repo_response = self.request_project(jam_repo_path)