1
0
mirror of https://gitlab.crans.org/bde/nk20 synced 2025-07-24 01:36:47 +02:00

Added valid field and logic for Achievement

This commit is contained in:
Ehouarn
2025-07-22 01:30:47 +02:00
parent db4d0dd83a
commit c66cc14576
9 changed files with 152 additions and 31 deletions

View File

@ -45,9 +45,9 @@ class Family(models.Model):
return self.name
def update_score(self, *args, **kwargs):
challenge_set = Challenge.objects.select_for_update().filter(achievement__family=self)
challenge_set = Challenge.objects.select_for_update().filter(achievement__family=self, achievement__valid=True)
points_sum = challenge_set.aggregate(models.Sum("points"))
self.score = points_sum["points__sum"]
self.score = points_sum["points__sum"] if points_sum["points__sum"] else 0
self.save()
self.update_ranking()
@ -86,7 +86,7 @@ class FamilyMembership(models.Model):
family = models.ForeignKey(
Family,
on_delete=models.PROTECT,
related_name=_('members'),
related_name=_('memberships'),
verbose_name=_('family'),
)
@ -157,6 +157,11 @@ class Achievement(models.Model):
default=timezone.now,
)
valid = models.BooleanField(
verbose_name=_('valid'),
default=False,
)
class Meta:
verbose_name = _('achievement')
verbose_name_plural = _('achievements')