Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

# -*- coding: utf-8 -*- 

from __future__ import unicode_literals 

 

from django.db import models 

 

# Create your models here. 

 

class Team(models.Model): 

# Name of the team 

name = models.CharField(max_length=30, default=None, blank=True, null=True) 

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 

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) 

 

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) 

 

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 Relay(models.Model): 

# Name of the team 

team_pilot = models.ForeignKey(EngagedPilot, related_name='relays', 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 

has_refuel = models.BooleanField(default=False) 

#Average chrono for the pulot on this relay 

pilot_chrono = models.IntegerField(default=None, blank=True, null=True) 

#comment the relay 

comment = models.CharField(max_length=256, default=None, blank=True, null=True)