Skip to content

Commit 8b867f0

Browse files
committed
update milestones when leaderboard gets updated
1 parent d4ded47 commit 8b867f0

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

src/kernelbot/cogs/admin_cog.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -807,7 +807,7 @@ async def _create_update_plan( # noqa: C901
807807

808808
return update_list, create_list
809809

810-
async def update_competition(
810+
async def update_competition( # noqa: C901
811811
self, interaction: discord.Interaction, spec_file: Path, force: bool = False
812812
):
813813
try:
@@ -857,6 +857,21 @@ async def update_competition(
857857
entry["name"], self._parse_deadline(entry["deadline"]), task
858858
)
859859
new_lb: LeaderboardItem = db.get_leaderboard(entry["name"])
860+
# delete old milestones
861+
db.delete_milestones(new_lb["id"])
862+
# and (re)-create new ones
863+
for milestone in task.milestones:
864+
db.create_milestone(
865+
new_lb["id"],
866+
milestone.name,
867+
milestone.code,
868+
description=milestone.description,
869+
exclude_gpus=milestone.exclude_gpus,
870+
)
871+
872+
# and finally trigger re-run
873+
if task.milestones:
874+
await self._submit_milestones(interaction, new_lb["name"])
860875

861876
forum_id = new_lb["forum_id"]
862877
try:

src/libkernelbot/leaderboard_db.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,16 @@ def delete_milestone_runs(self, leaderboard_name: str):
313313
)
314314
self.connection.commit()
315315

316+
def delete_milestones(self, leaderboard_id: int):
317+
self.cursor.execute(
318+
"""
319+
DELETE FROM leaderboard.milestones
320+
WHERE leaderboard_id = %s;
321+
""",
322+
(leaderboard_id,),
323+
)
324+
self.connection.commit()
325+
316326
def get_runs_generic(
317327
self, *, milestone_id: Optional[int] = None, submission_id: Optional[int] = None
318328
) -> List["RunItem"]:

0 commit comments

Comments
 (0)