aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pysite/views/main/jams/index.py11
-rw-r--r--pysite/views/main/jams/team_edit_repo.py8
-rw-r--r--templates/main/jams/index.html8
3 files changed, 20 insertions, 7 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)
diff --git a/templates/main/jams/index.html b/templates/main/jams/index.html
index 03412311..3bd7a8c7 100644
--- a/templates/main/jams/index.html
+++ b/templates/main/jams/index.html
@@ -66,9 +66,11 @@
<i class="uk-icon fa-fw far fa-plus"></i> &nbsp;Join
</a>
{% else %}
- <a class="uk-button uk-button-primary" href="{{ url_for('main.jams.jam_team_list', jam_id=jam.number) }}">
- <i class="uk-icon fa-fw far fa-users"></i> &nbsp;Teams
- </a>
+ {% if jam.teams and jam.teams | length > 0 %}
+ <a class="uk-button uk-button-primary" href="{{ url_for('main.jams.jam_team_list', jam_id=jam.number) }}">
+ <i class="uk-icon fa-fw far fa-users"></i> &nbsp;Teams
+ </a>
+ {% endif %}
<a class="uk-button uk-button-default" target="_blank" href="{{ jam.repo }}">
<i class="uk-icon fa-fw fab fa-gitlab"></i>
</a>