import random from django.db import models def random_string(): value = str(random.randint(1000, 9999)) return value class Zone(models.Model): ETATS = ( ('L', 'Libre'), ('A', 'Attibuée'), ('O', 'Occupée'), ) nom = models.CharField(max_length=50) etat = models.CharField(max_length=1, choices=ETATS, default = 'L') code = models.IntegerField(default = random_string, unique=True)#code pour accéder à la zone mdp = models.IntegerField(default = random_string, unique=True)#code pour valider la zone description = models.TextField(default = '') def __str__(self): return self.nom+" : "+self.get_etat_display()+" ("+str(self.code)+")" class Distance(models.Model): zone1 = models.ForeignKey(Zone, related_name='zone1',on_delete=models.CASCADE) zone2 = models.ForeignKey(Zone, related_name='zone2',on_delete=models.CASCADE) distance = models.IntegerField() class Meta: unique_together = (('zone1','zone2'),) def __str__(self): return self.zone1.nom+" -> "+self.zone2.nom+" : "+str(self.distance) class Equipe(models.Model): nom = models.CharField(max_length=50) code = models.IntegerField(default = random_string, unique=True) start_time = models.TimeField(null=True, blank=True) end_time = models.TimeField(null=True, blank=True) def __str__(self): return self.nom+" ("+str(self.code)+")" class Challenge(models.Model): equipe = models.ForeignKey(Equipe, on_delete=models.CASCADE) zone = models.ForeignKey(Zone, on_delete=models.CASCADE) rank = models.IntegerField(default = 1)#rang du challenge dans la liste start_time = models.TimeField(null=True, blank=True) end_time = models.TimeField(null=True, blank=True) def __str__(self): return self.equipe.nom+" -> salle : "+self.zone.nom+" rang : "+str(self.rank)