from random import choice from django.db import models from django.utils import timezone from Main.models import Solution, Set def generate_token(): letters = '1234567890qwertyuiopasdfghjklzxcvbnm!@#$%^&*()QWERTYUIOPASDFGHJKLZXCVBNM' return ''.join([choice(letters) for _ in range(30)]) 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'