mirror of
https://github.com/iritmaximus/timetrials.git
synced 2026-10-12 19:13:48 +03:00
fix: courses can be clicked :)
This commit is contained in:
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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
@@ -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}")
|
||||
|
||||
Reference in New Issue
Block a user