Fix time code sorting.
Event lists show 00:XX codes after 23:XX codes.
This commit is contained in:
@@ -37,6 +37,19 @@ def timedelta_to_str(data: timedelta) -> str:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def by_time(e):
|
||||||
|
"""
|
||||||
|
Custom sort key for sorting by time codes in the format HH:MM
|
||||||
|
This version sorts codes with hour '00' after '23'
|
||||||
|
"""
|
||||||
|
if not hasattr(e, "time") or isinstance(e.time, time):
|
||||||
|
return id(e)
|
||||||
|
|
||||||
|
if e.time.hour == 0:
|
||||||
|
return f"24{e.time.minute}"
|
||||||
|
return f"{e.time.hour}{e.time.minute}"
|
||||||
|
|
||||||
|
|
||||||
def compute_timedelta(start: time, end: time) -> float:
|
def compute_timedelta(start: time, end: time) -> float:
|
||||||
if not start or not end:
|
if not start or not end:
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ from flask import render_template, request, redirect, url_for
|
|||||||
|
|
||||||
from estusshots import app
|
from estusshots import app
|
||||||
from estusshots import forms, orm
|
from estusshots import forms, orm
|
||||||
from estusshots.util import authorize
|
from estusshots.util import authorize, by_time
|
||||||
from estusshots.orm import Season, Episode, Player
|
from estusshots.orm import Season, Episode, Player
|
||||||
|
|
||||||
|
|
||||||
@@ -18,8 +18,8 @@ def episode_detail(season_id: int, episode_id: int):
|
|||||||
"episode": episode,
|
"episode": episode,
|
||||||
"season": episode.season,
|
"season": episode.season,
|
||||||
"players": episode.players,
|
"players": episode.players,
|
||||||
"deaths": sorted(deaths, key=lambda x: x.time),
|
"deaths": sorted(deaths, key=by_time),
|
||||||
"victories": sorted(victories, key=lambda x: x.time)
|
"victories": sorted(victories, key=by_time)
|
||||||
}
|
}
|
||||||
|
|
||||||
return render_template("episode_details.html", model=model)
|
return render_template("episode_details.html", model=model)
|
||||||
|
|||||||
Reference in New Issue
Block a user