mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-22 22:07:10 +00:00
feat: added state to competition response
This commit is contained in:
@@ -8,6 +8,14 @@ from apps.competition.models import Competition, State
|
||||
|
||||
class CompetitionOut(ModelSchema):
|
||||
id: UUID
|
||||
state: Literal["not_started", "started", "finished"]
|
||||
|
||||
@staticmethod
|
||||
def resolve_state(self, context) -> Literal["not_started", "started", "finished"]:
|
||||
if not (state := State.objects.filter(user=context.get("request").auth, competition=self).first()):
|
||||
return "not_started"
|
||||
return state.state
|
||||
|
||||
|
||||
class Meta:
|
||||
model = Competition
|
||||
|
||||
@@ -60,5 +60,5 @@ class State(BaseModel):
|
||||
|
||||
user = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||
competition = models.ForeignKey(Competition, on_delete=models.CASCADE)
|
||||
state = models.CharField(choices=StateChoices.choices, max_length=11)
|
||||
state = models.CharField(choices=StateChoices.choices, max_length=11, default=StateChoices.NOT_STARTED.value)
|
||||
changed_at = models.DateTimeField(default=datetime.now)
|
||||
|
||||
Reference in New Issue
Block a user