Skip to content

Commit

Permalink
Remove sqlalchemy 2.0 deprecation from freezing-web
Browse files Browse the repository at this point in the history
  • Loading branch information
merlinorg committed Jan 22, 2025
1 parent 69483fd commit 8a8955e
Show file tree
Hide file tree
Showing 12 changed files with 287 additions and 212 deletions.
2 changes: 1 addition & 1 deletion freezing/web/templates/authorization_success.html
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ <h1>
</li>
{% endif %}
<li>
See <a href="/people">other folks who have registered for the event</a>.
See <a href="/people/">other folks who have registered for the event</a>.
</li>
<li>
View your <a href={{ rides_url }}>personal rides page</a>.
Expand Down
18 changes: 10 additions & 8 deletions freezing/web/templates/leaderboard/indiv_text.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,21 @@ <h1>
</p>
<ol>
{% for indiv_row in indiv_rows[:10] %}
<li class="bigly {{ indiv_row['athlete_id'] | myself }}">
<li class="bigly {{ indiv_row._mapping['athlete_id'] | myself }}">
<h4 class="mb-0">
<a href="/people/{{ indiv_row['athlete_id'] }}" class="hover-underline">{{ indiv_row['athlete_name'] }}</a>
{{ indiv_row['total_score']|round|int|groupnum }} points
<a href="/people/{{ indiv_row._mapping['athlete_id'] }}"
class="hover-underline">{{ indiv_row._mapping['athlete_name'] }}</a>
{{ indiv_row._mapping['total_score']|round|int|groupnum }} points
</h4>
({{ indiv_row['days_ridden'] }} days, {{ indiv_row['total_distance']|round|int|groupnum }} miles) {{ indiv_row['team_name'] }}
({{ indiv_row._mapping['days_ridden'] }} days, {{ indiv_row._mapping['total_distance']|round|int|groupnum }} miles) {{ indiv_row._mapping['team_name'] }}
</li>
{% endfor %}
{% for indiv_row in indiv_rows[10:] %}
<li class="{{ indiv_row['athlete_id'] | myself }}">
<a href="/people/{{ indiv_row['athlete_id'] }}" class="hover-underline">{{ indiv_row['athlete_name'] }}</a>
<strong>{{ indiv_row['total_score']|round|int|groupnum }}</strong> points
({{ indiv_row['days_ridden'] }} days, {{ indiv_row['total_distance']|round|int|groupnum }} miles) {{ indiv_row['team_name'] }}
<li class="{{ indiv_row._mapping['athlete_id'] | myself }}">
<a href="/people/{{ indiv_row._mapping['athlete_id'] }}"
class="hover-underline">{{ indiv_row._mapping['athlete_name'] }}</a>
<strong>{{ indiv_row._mapping['total_score']|round|int|groupnum }}</strong> points
({{ indiv_row._mapping['days_ridden'] }} days, {{ indiv_row._mapping['total_distance']|round|int|groupnum }} miles) {{ indiv_row._mapping['team_name'] }}
</li>
{% endfor %}
</ol>
Expand Down
15 changes: 8 additions & 7 deletions freezing/web/templates/leaderboard/team_text.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,18 @@ <h1>
</p>
<ol class="people-list">
{% for team_row in team_rows %}
<li class="mb-2{{ ' my-team' if team_row['team_id'] == my_team else '' }}">
<li class="mb-2{{ ' my-team' if team_row._mapping['team_id'] == my_team else '' }}">
<h4 class="mb-0">
<a href="https://www.strava.com/clubs/{{ team_row['team_id'] }}"
class="hover-underline">{{ team_row['team_name'] }}</a>:
<strong>{{ team_row['total_score']|round|int|groupnum }}</strong> points ({{ team_row['total_distance']|round|int|groupnum }} miles)
<a href="https://www.strava.com/clubs/{{ team_row._mapping['team_id'] }}"
class="hover-underline">{{ team_row._mapping['team_name'] }}</a>:
<strong>{{ team_row._mapping['total_score']|round|int|groupnum }}</strong> points ({{ team_row._mapping['total_distance']|round|int|groupnum }} miles)
</h4>
<ol class="people d-none">
{% for member_row in team_members[team_row['team_id']] %}
{% for member_row in team_members[team_row._mapping['team_id']] %}
<li>
<a href="/people/{{ member_row['athlete_id'] }}" class="hover-underline">{{ member_row['athlete_name'] }}</a>:
{{ member_row['total_score']|round|int|groupnum }} points ({{ member_row['days_ridden'] }} days, {{ member_row['total_distance']|round|int|groupnum }} miles)
<a href="/people/{{ member_row._mapping['athlete_id'] }}"
class="hover-underline">{{ member_row._mapping['athlete_name'] }}</a>:
{{ member_row._mapping['total_score']|round|int|groupnum }} points ({{ member_row._mapping['days_ridden'] }} days, {{ member_row._mapping['total_distance']|round|int|groupnum }} miles)
</li>
{% endfor %}
</ol>
Expand Down
10 changes: 5 additions & 5 deletions freezing/web/templates/people/friends.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,21 +28,21 @@ <h1>
</th>
</tr>
{% for indiv_row in indiv_rows %}
<tr class="{{ indiv_row['id'] | myself }}">
<tr class="{{ indiv_row._mapping['id'] | myself }}">
<td class="number rank">
{{ loop.index }}
</td>
<td>
<a href="/people/{{ indiv_row['id'] }}" class="hover-underline">{{ indiv_row['athlete_name'] }}</a>
<a href="/people/{{ indiv_row._mapping['id'] }}" class="hover-underline">{{ indiv_row._mapping['athlete_name'] }}</a>
</td>
<td class="number">
{{ indiv_row['total_score']|round|int|groupnum }}
{{ indiv_row._mapping['total_score']|round|int|groupnum }}
</td>
<td class="number">
{{ indiv_row['days_ridden']|round|int|groupnum }}
{{ indiv_row._mapping['days_ridden']|round|int|groupnum }}
</td>
<td class="number">
{{ indiv_row['total_distance']|round|int|groupnum }}
{{ indiv_row._mapping['total_distance']|round|int|groupnum }}
</td>
</tr>
{% endfor %}
Expand Down
7 changes: 4 additions & 3 deletions freezing/web/utils/genericboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from freezing.model import meta
from freezing.model.msg import BaseMessage, BaseSchema
from marshmallow import fields
from sqlalchemy import text

from freezing.web.config import config
from freezing.web.exc import ObjectNotFound
Expand All @@ -23,7 +24,7 @@ class GenericBoardField(BaseMessage):
def format_value(self, v, row):
if isinstance(v, str):
if self.format:
return self.format.format(**dict(row))
return self.format.format(**dict(row._mapping))
else:
return v

Expand Down Expand Up @@ -89,7 +90,7 @@ def load_board_and_data(leaderboard) -> Tuple[GenericBoard, List[Dict[str, Any]]
board = load_board(leaderboard)

with meta.transaction_context(read_only=True) as session:
rs = session.execute(board.query)
rs = session.execute(text(board.query))

if not board.fields:
board.fields = [GenericBoardField(name=k, label=k) for k in rs.keys()]
Expand Down Expand Up @@ -118,7 +119,7 @@ def load_board(leaderboard) -> GenericBoard:
def format_rows(rows, board) -> List[Dict[str, Any]]:
try:
formatted = [
{f.name: f.format_value(row[f.name], row) for f in board.fields}
{f.name: f.format_value(row._mapping[f.name], row) for f in board.fields}
for row in rows
]
rank_by = next(iter([f.name for f in board.fields if f.rank_by]), None)
Expand Down
23 changes: 13 additions & 10 deletions freezing/web/views/alt_scoring.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ def team_riders():
"""
)
team_riders = [
(x["name"], x["ride_days"]) for x in meta.scoped_session().execute(q).fetchall()
(x._mapping["name"], x._mapping["ride_days"])
for x in meta.scoped_session().execute(q).fetchall()
]
return render_template(
"alt_scoring/team_riders.html",
Expand All @@ -34,7 +35,7 @@ def team_daily():
group by a.ride_date, b.name order by a.ride_date, team_score;"""
)
temp = [
(x["ride_date"], x["team_name"])
(x._mapping["ride_date"], x._mapping["team_name"])
for x in meta.scoped_session().execute(q).fetchall()
]
temp = groupby(temp, lambda x: x[0])
Expand Down Expand Up @@ -68,7 +69,9 @@ def indiv_worst_day_points():
select count(distinct(athlete_id)) as riders from rides group by date(start_date)
"""
)
riders = [x["riders"] for x in meta.scoped_session().execute(ridersq).fetchall()]
riders = [
x._mapping["riders"] for x in meta.scoped_session().execute(ridersq).fetchall()
]
median_riders = 0 if len(riders) == 0 else median(riders)
q = text(
f"""
Expand All @@ -85,13 +88,13 @@ def indiv_worst_day_points():
)
data = [
(
x["athlete_id"],
x["athlete_name"],
x["team_name"],
x["total_distance"],
x["total_score"],
x["total_adjusted"],
x["days_ridden"],
x._mapping["athlete_id"],
x._mapping["athlete_name"],
x._mapping["team_name"],
x._mapping["total_distance"],
x._mapping["total_score"],
x._mapping["total_adjusted"],
x._mapping["days_ridden"],
)
for x in meta.scoped_session().execute(q).fetchall()
]
Expand Down
24 changes: 12 additions & 12 deletions freezing/web/views/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ def stats_general():
q = text("""select count(*) as num_contestants from lbd_athletes""")

indiv_count_res = meta.scoped_session().execute(q).fetchone() # @UndefinedVariable
contestant_count = indiv_count_res["num_contestants"]
contestant_count = indiv_count_res._mapping["num_contestants"]

q = text(
"""
Expand All @@ -61,9 +61,9 @@ def stats_general():
)

all_res = meta.scoped_session().execute(q).fetchone() # @UndefinedVariable
total_miles = int(all_res["distance"])
total_hours = int(all_res["moving_time"]) / 3600
total_rides = all_res["num_rides"]
total_miles = int(all_res._mapping["distance"])
total_hours = int(all_res._mapping["moving_time"]) / 3600
total_rides = all_res._mapping["num_rides"]

q = text(
"""
Expand All @@ -76,7 +76,7 @@ def stats_general():
)

sub32_res = meta.scoped_session().execute(q).fetchone() # @UndefinedVariable
sub_freezing_hours = int(sub32_res["moving_time"]) / 3600
sub_freezing_hours = int(sub32_res._mapping["moving_time"]) / 3600

q = text(
"""
Expand All @@ -89,7 +89,7 @@ def stats_general():
)

rain_res = meta.scoped_session().execute(q).fetchone() # @UndefinedVariable
rain_hours = int(rain_res["moving_time"]) / 3600
rain_hours = int(rain_res._mapping["moving_time"]) / 3600

q = text(
"""
Expand All @@ -102,7 +102,7 @@ def stats_general():
)

snow_res = meta.scoped_session().execute(q).fetchone() # @UndefinedVariable
snow_hours = int(snow_res["moving_time"]) / 3600
snow_hours = int(snow_res._mapping["moving_time"]) / 3600

return jsonify(
team_count=len(config.COMPETITION_TEAMS),
Expand Down Expand Up @@ -189,15 +189,15 @@ def team_leaderboard():
"total_distance": member["total_distance"],
"days_ridden": member["days_ridden"],
}
for member in team_members.get(res["team_id"], [])
for member in team_members.get(res._mapping["team_id"], [])
]

rows.append(
{
"team_name": res["team_name"],
"total_score": res["total_score"],
"total_distance": res["total_distance"],
"team_id": res["team_id"],
"team_name": res._mapping["team_name"],
"total_score": res._mapping["total_score"],
"total_distance": res._mapping["total_distance"],
"team_id": res._mapping["team_id"],
"rank": place,
"team_members": members,
}
Expand Down
Loading

0 comments on commit 8a8955e

Please sign in to comment.