From f7ff31f74243b3c9448d55997717d210e0f69371 Mon Sep 17 00:00:00 2001 From: Walter Date: Sun, 16 Feb 2025 04:25:13 +0100 Subject: [PATCH] Fixed some ORM bugs --- app/bloonsa_api/views.py | 10 +++++----- app/bloonsa_game/models.py | 2 +- app/users/admin.py | 1 + 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/bloonsa_api/views.py b/app/bloonsa_api/views.py index 4237695..54175dc 100644 --- a/app/bloonsa_api/views.py +++ b/app/bloonsa_api/views.py @@ -82,14 +82,14 @@ class CompleteLevel(CSRFexemptTemplateView): level=level).first() if prevScore is None \ or pops > prevScore.pops \ - or pops == prevScore.pops and darts_left > prevScore.darts_left: + or pops == prevScore.pops and darts_left + int(dart_glitch) > prevScore.darts_left: score = LevelScore.objects.create(level=level, - clear=True, - darts_left=darts_left, + clear=True, + darts_left=darts_left, dart_glitch=dart_glitch, - pops=pops) + pops=pops) if prevScore: - player.bloonsa_level_scores.remove(prevScore) + prevScore.delete() player.bloonsa_level_scores.add(score) score.save() diff --git a/app/bloonsa_game/models.py b/app/bloonsa_game/models.py index 8feaa80..499f636 100644 --- a/app/bloonsa_game/models.py +++ b/app/bloonsa_game/models.py @@ -59,7 +59,7 @@ class LevelRating(models.Model): # There should only be 1 score per player # Highest popcount wins class LevelScore(models.Model): - player = models.ForeignKey(Player, on_delete=models.CASCADE, related_name="bloonsa_level_scores") + player = models.ForeignKey(Player, on_delete=models.CASCADE, related_name="bloonsa_level_scores", null=True) level = models.ForeignKey(Level, on_delete=models.CASCADE) clear = models.BooleanField(default=True) # This is for if we ever submit scores for failed attempts darts_left = models.PositiveSmallIntegerField() diff --git a/app/users/admin.py b/app/users/admin.py index bcb6cc0..3e2fc6c 100644 --- a/app/users/admin.py +++ b/app/users/admin.py @@ -4,3 +4,4 @@ from django.contrib.auth.admin import UserAdmin from .models import Player, Log admin.site.register(Log) +admin.site.register(Player) \ No newline at end of file