diff options
| author | 2018-06-23 11:41:12 -0400 | |
|---|---|---|
| committer | 2018-06-23 11:41:12 -0400 | |
| commit | e155075acb2dce98331032a485364ebe8cdd09c8 (patch) | |
| tree | fcb8ff1911ebce4e7c9b0ed564817474e4722948 | |
| parent | Pluck 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 '')
| -rw-r--r-- | pysite/views/main/jams/index.py | 11 | ||||
| -rw-r--r-- | pysite/views/main/jams/team_edit_repo.py | 8 | ||||
| -rw-r--r-- | templates/main/jams/index.html | 8 | 
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>  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>  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>  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>  |