You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.8 KiB
47 lines
1.8 KiB
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)
|
|
|