mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-23 03:57:09 +00:00
refactor
This commit is contained in:
@@ -7,4 +7,4 @@ class CompetitionsConfig(AppConfig):
|
||||
verbose_name = "Соревнование"
|
||||
|
||||
def ready(self):
|
||||
import apps.competition.signals
|
||||
pass
|
||||
|
||||
@@ -3,15 +3,23 @@ from django.dispatch import receiver
|
||||
|
||||
from apps.achievement.models import Achievement, UserAchievement
|
||||
from apps.competition.models import State
|
||||
from apps.user.models import User
|
||||
|
||||
|
||||
@receiver(post_save, sender=State)
|
||||
def assign_start_competition_achievement(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
if State.objects.filter(user=instance.user, state=State.StateChoices.STARTED.value).count() == 1 \
|
||||
and not State.objects.filter(user=instance.user, state=State.StateChoices.FINISHED.value).exists():
|
||||
start_competition_achievement = Achievement.objects.get(slug="start_competition")
|
||||
if (
|
||||
State.objects.filter(
|
||||
user=instance.user, state=State.StateChoices.STARTED.value
|
||||
).count()
|
||||
== 1
|
||||
and not State.objects.filter(
|
||||
user=instance.user, state=State.StateChoices.FINISHED.value
|
||||
).exists()
|
||||
):
|
||||
start_competition_achievement = Achievement.objects.get(
|
||||
slug="start_competition"
|
||||
)
|
||||
UserAchievement.objects.create(
|
||||
user=instance.user, achievement=start_competition_achievement
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user