feat(noita): death counter + ranking display

This commit is contained in:
2026-05-15 02:15:00 +02:00
parent 7cfab20826
commit 3e04f8312a
5 changed files with 120 additions and 139 deletions
+8 -1
View File
@@ -16,7 +16,7 @@ from ninja.files import UploadedFile
from noita.schemas import ResultsOut, LeaderboardOut
from noita.services.objectives import parse_objectives_and_store
from .models import LogfileSubmission, Objectiv, ObjectivPoint
from .models import LogfileSubmission, Objectiv, ObjectivPoint, DeathCounter
from .schemas import NoitaSubmissionOut
@@ -103,8 +103,12 @@ def get_results(request: HttpRequest):
)
total_score += points
# Count deaths for the user
deaths_count = DeathCounter.objects.filter(user=request.user).count()
data = {
"total_score": total_score,
"deaths_count": deaths_count,
"objectives": objectives_with_points,
}
@@ -187,12 +191,14 @@ def get_leaderboard(request: HttpRequest):
.distinct()
.count()
)
deaths_count = DeathCounter.objects.filter(user_id=user_id).count()
users_with_scores.append(
{
"user_id": user_id,
"username": user.username,
"total_score": total_score,
"objectives_count": objectives_count,
"deaths_count": deaths_count,
}
)
@@ -204,6 +210,7 @@ def get_leaderboard(request: HttpRequest):
"username": entry["username"],
"total_score": entry["total_score"],
"objectives_count": entry["objectives_count"],
"deaths_count": entry["deaths_count"],
}
for idx, entry in enumerate(users_with_scores)
]
+2
View File
@@ -23,6 +23,7 @@ class ObjectivResultOut(Schema):
class ResultsOut(Schema):
total_score: int
deaths_count: int
objectives: list[ObjectivResultOut]
@@ -31,6 +32,7 @@ class LeaderboardEntryOut(Schema):
username: str
total_score: int
objectives_count: int
deaths_count: int
class LeaderboardOut(Schema):