fix: courses can be clicked :)

This commit is contained in:
iritmaximus
2023-03-04 19:31:55 +02:00
parent 80d3a882de
commit 3cf0cccc36
4 changed files with 54 additions and 2 deletions
+29
View File
@@ -0,0 +1,29 @@
<h1>{{course_name}}</h1>
<style>
table, tr, td {
border: 1px solid black;
border-collapse: collapse;
padding: 5px;
}
</style>
<h2>Times</h2>
<table>
<tr>
<td>Game</td>
<td>Cup</td>
<td>Time</td>
<td>User</td>
</tr>
{% for time in times %}
<tr>
<td>{{time[0]}}</td>
<td>{{time[1]}}</td>
<td>{{time[2]}}</td>
<td>{{time[3]}}</td>
</tr>
{% endfor %}
</table>
<a href="/games">Go back</a>
+1 -1
View File
@@ -17,7 +17,7 @@ table, tr, td {
</tr>
{% for item in courses %}
<tr>
<td><a href="/courses/{{item[0].replace(' ', '%20')}}">{{item[0]}}</a></td>
<td><a href="/api/course/{{item[0].replace(' ', '%20')}}">{{item[0]}}</a></td>
<td><a href="/api/game/{{item[1].replace(' ', '%20')}}">{{item[1]}}</a></td>
<td><a href="/api/cup/{{item[2].replace(' ', '%20')}}">{{item[2]}}</a></td>
</tr>
+13
View File
@@ -5,3 +5,16 @@ def query_courses():
sql = "SELECT courses.name, games.name, cups.name FROM courses JOIN games ON games.id=courses.game_id JOIN cups ON cups.id=courses.cup_id"
result = db.session.execute(sql).fetchall()
return result
def query_course_by_name(course_name: str):
sql = """
SELECT games.name, cups.name, times.timems, users.username
FROM times
JOIN games ON games.id=times.game_id
JOIN cups ON cups.id=times.cup_id
JOIN users ON users.id=times.user_id
WHERE times.course_id in (SELECT id FROM courses WHERE name=:course_name)
"""
result = db.session.execute(sql, {"course_name": course_name}).fetchall()
return result
+11 -1
View File
@@ -1,7 +1,7 @@
from flask import render_template
from flaskr import app
from flaskr.utils.courses import query_courses
from flaskr.utils.courses import query_courses, query_course_by_name
@app.route("/courses")
@@ -18,3 +18,13 @@ def get_course_by_id(course_id: int):
course_id = int(course_id)
except ValueError as e:
return render_template("error.html", message=f"Incorrect id, {e}")
@app.route("/api/course/<string:course_name>")
def get_course_by_name(course_name: str):
try:
course_name = str(course_name).replace("%20", " ")
times = query_course_by_name(course_name)
return render_template("course_name.html", course_name=course_name, times=times)
except ValueError as e:
return render_template("error.html", message=f"Failed to fetch course, {e}")