first commit
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,14 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.contrib import admin
|
||||
from .models import *
|
||||
|
||||
# Register your models here.
|
||||
|
||||
admin.site.register(Driver)
|
||||
admin.site.register(Race)
|
||||
admin.site.register(Relay)
|
||||
admin.site.register(Rules)
|
||||
admin.site.register(Team)
|
||||
admin.site.register(TeamPilot)
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class TimelapsConfig(AppConfig):
|
||||
name = 'timelaps'
|
||||
@@ -0,0 +1,82 @@
|
||||
# Generated by Django 2.1.5 on 2019-01-12 08:54
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Driver',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('first_name', models.CharField(max_length=30)),
|
||||
('last_name', models.CharField(max_length=30)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Race',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=30)),
|
||||
('start_date', models.DateField()),
|
||||
('end_date', models.DateField(null=True)),
|
||||
('duration', models.IntegerField()),
|
||||
('comment', models.CharField(max_length=256)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Relay',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('relay_start', models.DateField()),
|
||||
('relay_end', models.DateField(null=True)),
|
||||
('has_refuel', models.BooleanField(default=False)),
|
||||
('pilot_chrono', models.IntegerField(null=True)),
|
||||
('comment', models.CharField(max_length=256, null=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Rule',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('min_stand_duration', models.IntegerField()),
|
||||
('max_autonomy_dry', models.IntegerField()),
|
||||
('max_autonomy_wet', models.IntegerField()),
|
||||
('max_driving_duration', models.IntegerField(null=True)),
|
||||
('relay_default_duration', models.IntegerField(null=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Team',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=30)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='TeamPilot',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('pilot', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='timelaps.Driver')),
|
||||
('race', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='timelaps.Race')),
|
||||
('team', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='timelaps.Team')),
|
||||
],
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='relay',
|
||||
name='team',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='timelaps.Team'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='race',
|
||||
name='fk_rules',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='timelaps.Rule'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
# Generated by Django 2.1.5 on 2019-01-12 08:58
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('timelaps', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameModel(
|
||||
old_name='Rule',
|
||||
new_name='Rules',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,29 @@
|
||||
# Generated by Django 2.1.5 on 2019-01-12 09:03
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('timelaps', '0002_auto_20190112_0858'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='relay',
|
||||
name='team',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='relay',
|
||||
name='team_pilot_id',
|
||||
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='timelaps.TeamPilot'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='teampilot',
|
||||
name='order',
|
||||
field=models.IntegerField(null=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 2.1.5 on 2019-01-12 09:06
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('timelaps', '0003_auto_20190112_0903'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='race',
|
||||
name='comment',
|
||||
field=models.CharField(max_length=256, null=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 2.1.5 on 2019-01-12 09:07
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('timelaps', '0004_auto_20190112_0906'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='driver',
|
||||
old_name='last_name',
|
||||
new_name='name',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,28 @@
|
||||
# Generated by Django 2.1.5 on 2019-01-12 09:12
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('timelaps', '0005_auto_20190112_0907'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='teampilot',
|
||||
old_name='pilot',
|
||||
new_name='pilot_id',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='teampilot',
|
||||
old_name='race',
|
||||
new_name='race_id',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='teampilot',
|
||||
old_name='team',
|
||||
new_name='team_id',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,27 @@
|
||||
# Generated by Django 2.1.5 on 2019-01-12 09:30
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('timelaps', '0006_auto_20190112_0912'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='driver',
|
||||
old_name='name',
|
||||
new_name='last_name',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='relay',
|
||||
name='team_pilot_id',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='relay',
|
||||
name='team_pilot_id',
|
||||
field=models.ManyToManyField(to='timelaps.TeamPilot'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,24 @@
|
||||
# Generated by Django 2.1.5 on 2019-01-12 09:34
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('timelaps', '0007_auto_20190112_0930'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='relay',
|
||||
name='team_pilot_id',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='relay',
|
||||
name='team_pilot_id',
|
||||
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='timelaps.TeamPilot'),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,33 @@
|
||||
# Generated by Django 2.1.5 on 2019-01-12 09:38
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('timelaps', '0008_auto_20190112_0934'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='race',
|
||||
name='end_date',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='race',
|
||||
name='start_date',
|
||||
field=models.DateTimeField(),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='relay',
|
||||
name='relay_end',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='relay',
|
||||
name='relay_start',
|
||||
field=models.DateTimeField(),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,28 @@
|
||||
# Generated by Django 2.1.5 on 2019-01-12 10:05
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('timelaps', '0009_auto_20190112_0938'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='teampilot',
|
||||
old_name='pilot_id',
|
||||
new_name='pilot',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='teampilot',
|
||||
old_name='race_id',
|
||||
new_name='race',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='teampilot',
|
||||
old_name='team_id',
|
||||
new_name='team',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 2.1.5 on 2019-01-12 10:17
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('timelaps', '0010_auto_20190112_1005'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='relay',
|
||||
old_name='team_pilot_id',
|
||||
new_name='team_pilot',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,83 @@
|
||||
# Generated by Django 2.1.5 on 2019-01-12 10:19
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('timelaps', '0011_auto_20190112_1017'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='driver',
|
||||
name='first_name',
|
||||
field=models.CharField(blank=True, default=None, max_length=30, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='driver',
|
||||
name='last_name',
|
||||
field=models.CharField(blank=True, default=None, max_length=30, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='race',
|
||||
name='comment',
|
||||
field=models.CharField(blank=True, default=None, max_length=256, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='race',
|
||||
name='end_date',
|
||||
field=models.DateTimeField(blank=True, default=None, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='race',
|
||||
name='name',
|
||||
field=models.CharField(blank=True, default=None, max_length=30, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='race',
|
||||
name='start_date',
|
||||
field=models.DateTimeField(blank=True, default=None, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='relay',
|
||||
name='comment',
|
||||
field=models.CharField(blank=True, default=None, max_length=256, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='relay',
|
||||
name='pilot_chrono',
|
||||
field=models.IntegerField(blank=True, default=None, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='relay',
|
||||
name='relay_end',
|
||||
field=models.DateTimeField(blank=True, default=None, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='rules',
|
||||
name='max_driving_duration',
|
||||
field=models.IntegerField(blank=True, default=None, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='rules',
|
||||
name='min_stand_duration',
|
||||
field=models.IntegerField(blank=True, default=None, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='rules',
|
||||
name='relay_default_duration',
|
||||
field=models.IntegerField(blank=True, default=None, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='team',
|
||||
name='name',
|
||||
field=models.CharField(blank=True, default=None, max_length=30, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='teampilot',
|
||||
name='order',
|
||||
field=models.IntegerField(blank=True, default=None, null=True),
|
||||
),
|
||||
]
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,72 @@
|
||||
# -*- 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)
|
||||
|
||||
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 TeamPilot(models.Model):
|
||||
# Foreign keys to the team pilot and race
|
||||
team = models.ForeignKey(Team, on_delete=models.CASCADE)
|
||||
pilot = models.ForeignKey(Driver, on_delete=models.CASCADE)
|
||||
race = models.ForeignKey(Race, 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(TeamPilot, 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)
|
||||
Binary file not shown.
@@ -0,0 +1,38 @@
|
||||
from rest_framework import serializers
|
||||
from .models import *
|
||||
|
||||
class DriverSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Driver
|
||||
fields = '__all__'
|
||||
|
||||
class RaceSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Race
|
||||
fields = '__all__'
|
||||
|
||||
class RelaySerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Relay
|
||||
fields = '__all__'
|
||||
|
||||
class RulesSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Rules
|
||||
fields = '__all__'
|
||||
|
||||
class TeamSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Team
|
||||
fields = '__all__'
|
||||
|
||||
class TeamPilotSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = TeamPilot
|
||||
fields = '__all__'
|
||||
|
||||
class RelayPilotSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Relay
|
||||
fields = ('relay_start','relay_end','has_refuel','pilot_chrono','comment','team_pilot','race')
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
||||
from django.urls import reverse
|
||||
from rest_framework.test import APITestCase, APIClient
|
||||
from rest_framework.views import status
|
||||
from .models import *
|
||||
from .serializers import DriverSerializer
|
||||
|
||||
"""
|
||||
# tests for views
|
||||
class BaseViewTest(APITestCase):
|
||||
client = APIClient()
|
||||
|
||||
@staticmethod
|
||||
def create_song(title="", artist=""):
|
||||
if title != "" and artist != "":
|
||||
Songs.objects.create(title=title, artist=artist)
|
||||
|
||||
def setUp(self):
|
||||
# add test data
|
||||
self.create_song("like glue", "sean paul")
|
||||
self.create_song("simple song", "konshens")
|
||||
self.create_song("love is wicked", "brick and lace")
|
||||
self.create_song("jam rock", "damien marley")
|
||||
|
||||
|
||||
class GetAllSongsTest(BaseViewTest):
|
||||
|
||||
def test_get_all_songs(self):
|
||||
|
||||
#This test ensures that all songs added in the setUp method
|
||||
#exist when we make a GET request to the songs/ endpoint
|
||||
|
||||
# hit the API endpoint
|
||||
response = self.client.get(
|
||||
reverse("songs-all", kwargs={"version": "v1"})
|
||||
)
|
||||
# fetch the data from db
|
||||
expected = Songs.objects.all()
|
||||
serialized = SongsSerializer(expected, many=True)
|
||||
self.assertEqual(response.data, serialized.data)
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
|
||||
"""
|
||||
Binary file not shown.
@@ -0,0 +1,13 @@
|
||||
from django.urls import path
|
||||
from django.conf.urls import url
|
||||
from .views import *
|
||||
|
||||
urlpatterns = [
|
||||
path('drivers/', ListDriverView.as_view()),
|
||||
path('races/', ListRaceView.as_view()),
|
||||
path('relays/', ListRelayView.as_view()),
|
||||
path('rules/', ListRulesView.as_view()),
|
||||
path('teams/', ListTeamView.as_view()),
|
||||
path('teampilots/', ListTeamPilotView.as_view()),
|
||||
url('race/(?P<raceid>\d+)/team/(?P<teamid>\d+)/relays', ListRelaysByRaceView.as_view()),
|
||||
]
|
||||
@@ -0,0 +1,71 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.shortcuts import render
|
||||
from rest_framework import generics
|
||||
from .models import *
|
||||
from .serializers import *
|
||||
|
||||
|
||||
# Create your views here.
|
||||
|
||||
class ListDriverView(generics.ListAPIView):
|
||||
"""
|
||||
Provides a get method handler.
|
||||
"""
|
||||
queryset = Driver.objects.all()
|
||||
serializer_class = DriverSerializer
|
||||
|
||||
class ListRaceView(generics.ListAPIView):
|
||||
"""
|
||||
Provides a get method handler.
|
||||
"""
|
||||
queryset = Race.objects.all()
|
||||
serializer_class = RaceSerializer
|
||||
|
||||
class ListRelayView(generics.ListAPIView):
|
||||
"""
|
||||
Provides a get method handler.
|
||||
"""
|
||||
queryset = Relay.objects.all()
|
||||
serializer_class = RelaySerializer
|
||||
|
||||
class ListRulesView(generics.ListAPIView):
|
||||
"""
|
||||
Provides a get method handler.
|
||||
"""
|
||||
queryset = Rules.objects.all()
|
||||
serializer_class = RulesSerializer
|
||||
|
||||
class ListTeamView(generics.ListAPIView):
|
||||
"""
|
||||
Provides a get method handler.
|
||||
"""
|
||||
queryset = Team.objects.all()
|
||||
serializer_class = TeamSerializer
|
||||
|
||||
class ListTeamPilotView(generics.ListAPIView):
|
||||
"""
|
||||
Provides a get method handler.
|
||||
"""
|
||||
queryset = TeamPilot.objects.all()
|
||||
serializer_class = TeamPilotSerializer
|
||||
|
||||
class ListRelaysByRaceView(generics.ListAPIView):
|
||||
|
||||
queryset = Relay.objects.select_related('team_pilot').all()
|
||||
serializer_class = RelayPilotSerializer
|
||||
|
||||
'''
|
||||
serializer_class = RelayPilotSerializer
|
||||
lookup_url_raceid = "raceid"
|
||||
lookup_url_teamid = "teamid"
|
||||
|
||||
def get_queryset(self):
|
||||
raceid = self.kwargs.get(self.lookup_url_raceid)
|
||||
teamid = self.kwargs.get(self.lookup_url_teamid)
|
||||
relays = Relay.objects.filter(team_pilot__team=teamid).filter(team_pilot__race=raceid)
|
||||
|
||||
return relays
|
||||
|
||||
'''
|
||||
Reference in New Issue
Block a user