First commit of the V2.

New base, new info.
This commit is contained in:
2019-04-18 00:58:13 +02:00
parent 798ddf40e8
commit 698b6dd865
53 changed files with 394 additions and 5723 deletions

View File

@ -1,73 +1,55 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
# Create your models here.
class Team(models.Model):
class Kart(models.Model):
# Name of the team
name = models.CharField(max_length=30, default=None, blank=True, null=True)
autonomy = models.IntegerField()
comment = models.CharField(max_length=256, default=None, blank=True, null=True)
def __str__(self):
return self.name
class Driver(models.Model):
# Name of the pilot
kart = models.ForeignKey(Kart, related_name='drivers', on_delete=models.CASCADE)
short_name = models.CharField(max_length=10, default=None, blank=True, null=True)
first_name = models.CharField(max_length=30, default=None, blank=True, null=True)
last_name = models.CharField(max_length=30, default=None, blank=True, null=True)
last_name = models.CharField(max_length=30, default=None, blank=True, null=True)
order = models.IntegerField()
ref_time = models.IntegerField()
class Meta:
ordering = ['order']
def __str__(self):
return self.last_name
class Rules(models.Model):
#Minimum time in the pitlane
min_stand_duration = models.IntegerField(default=None, blank=True, null=True)
#Maximum autonomy of the kart in dry condition (In seconds)
max_autonomy_dry = models.IntegerField()
#Maximum autonomy of the kart in wet condition (In seconds)
max_autonomy_wet = models.IntegerField()
#Maximum driving time by driver(In seconds)
max_driving_duration = models.IntegerField(default=None, blank=True, null=True)
#Start and end date of the race
relay_default_duration = models.IntegerField(default=None, blank=True, null=True)
class Race(models.Model):
# Name of the race
name = models.CharField(max_length=30, default=None, blank=True, null=True)
#Start and end date of the race
start_date = models.DateTimeField(default=None, blank=True, null=True)
end_date = models.DateTimeField(default=None, blank=True, null=True)
#Lenth of th race in seconds
duration = models.IntegerField()
#Link to the rules of the race
fk_rules = models.ForeignKey(Rules, on_delete=models.CASCADE)
#Comment the race
comment = models.CharField(max_length=256, default=None, blank=True, null=True)
return '%d: %s' % (self.first_name, self.last_name)
def __str__(self):
return self.name
class EngagedPilot(models.Model):
# Foreign keys to the team pilot and race
team = models.ForeignKey(Team, related_name='team', on_delete=models.CASCADE)
pilot = models.ForeignKey(Driver, related_name='pilot', on_delete=models.CASCADE)
race = models.ForeignKey(Race, related_name='engagedpilots', on_delete=models.CASCADE)
order = models.IntegerField(default=None, blank=True, null=True)
class Params(models.Model):
# Name of the pilot
autonomy = models.IntegerField()
default_relay = models.IntegerField()
stand_minimum_time = models.IntegerField()
class Relay(models.Model):
# Name of the team
team_pilot = models.ForeignKey(EngagedPilot, related_name='relays', on_delete=models.CASCADE)
# Fk driver
driver = models.ForeignKey(Driver, on_delete=models.CASCADE)
# Fk kart
kart = models.ForeignKey(Kart, on_delete=models.CASCADE)
#Starting timestamp for the relay
relay_start = models.DateTimeField()
#ending timestamp for the relay
relay_end = models.DateTimeField(default=None, blank=True, null=True)
#Does the pilot did refuel
#Does the previous pilot refuel
has_refuel = models.BooleanField(default=False)
#Average chrono for the pulot on this relay
pilot_chrono = models.IntegerField(default=None, blank=True, null=True)
driver_chrono = models.IntegerField(default=None, blank=True, null=True)
#ending timestamp for the relay
relay_autonomy = models.IntegerField(default=None, blank=True, null=True)
#comment the relay
comment = models.CharField(max_length=256, default=None, blank=True, null=True)