diff options
| -rw-r--r-- | pysite/views/main/jams/index.py | 16 | ||||
| -rw-r--r-- | templates/main/jams/index.html | 12 | 
2 files changed, 24 insertions, 4 deletions
| diff --git a/pysite/views/main/jams/index.py b/pysite/views/main/jams/index.py index abe2859f..652779b2 100644 --- a/pysite/views/main/jams/index.py +++ b/pysite/views/main/jams/index.py @@ -29,4 +29,18 @@ class JamsIndexView(RouteView, DBMixin):          )          jams = self.db.run(query, coerce=list) -        return self.render("main/jams/index.html", jams=jams) +        return self.render("main/jams/index.html", jams=jams, has_applied_to_jam=self.has_applied_to_jam) + +    def get_jam_response(self, jam, user_id): +        query = self.db.query("code_jam_responses").filter({"jam": jam, "snowflake": user_id}) +        result = self.db.run(query, coerce=list) + +        if result: +            return result[0] +        return None + +    def has_applied_to_jam(self, jam): +        # whether the user has applied to this jam +        if not self.logged_in: +            return False +        return self.get_jam_response(jam, self.user_data["user_id"]) diff --git a/templates/main/jams/index.html b/templates/main/jams/index.html index b2ffa1af..9a228b74 100644 --- a/templates/main/jams/index.html +++ b/templates/main/jams/index.html @@ -62,9 +62,15 @@                          Code Jam {{ jam.number }}: {{ jam.title }}                          <span class="uk-float-right">                              {% if jam.state == "announced" %} -                                <a class="uk-button uk-button-primary" href="{{ url_for("main.jams.join", jam=jam.number) }}"> -                                    <i class="uk-icon fa-fw far fa-plus"></i>  Join -                                </a> +                                {% if has_applied_to_jam(jam) %} +                                    <a class="uk-button uk-button-default uk-disabled" href="#"> +                                        <i class="uk-icon fa-fw far fa-check"></i>  Applied +                                    </a> +                                {% else %} +                                    <a class="uk-button uk-button-primary" href="{{ url_for("main.jams.join", jam=jam.number) }}"> +                                        <i class="uk-icon fa-fw far fa-plus"></i>  Join +                                    </a> +                                {% endif %}                              {% else %}                                  {% 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) }}"> | 
