sprint/Checker/models.py
2022-02-23 23:27:35 +03:00

25 lines
908 B
Python

from random import choice
from django.db import models
from django.utils import timezone
from Main.models import Solution, Set
from SprintLib.utils import generate_token
class Checker(models.Model):
token = models.CharField(max_length=30, default=generate_token, db_index=True, unique=True)
dynamic_token = models.CharField(max_length=30, default=generate_token, db_index=True, unique=True)
testing_solution = models.ForeignKey(Solution, on_delete=models.SET_NULL, null=True)
set = models.ForeignKey(Set, on_delete=models.CASCADE, related_name="checkers")
last_request = models.DateTimeField()
name = models.CharField(max_length=50, default='')
@property
def status(self):
if self.testing_solution is not None:
return 'Testing'
if (timezone.now() - self.last_request).total_seconds() > 3:
return 'Disabled'
return 'Active'