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:
@ -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')
|
||||
|
Reference in New Issue
Block a user