Adding relaysbykart route

This commit is contained in:
bglacial 2019-04-21 17:22:04 +02:00
parent 72f38a2473
commit 8976e97ee2
5 changed files with 30 additions and 9 deletions

2
.gitignore vendored
View File

@ -7,4 +7,4 @@ music/migrations/__pycache__/
api/__pycache__/
music/tests/__pycache__/
music/views/__pycache__/
/db.sqlite3
db.sqlite3

View File

@ -54,3 +54,5 @@ class Relay(models.Model):
# comment the relay
comment = models.CharField(max_length=256, default=None, blank=True, null=True)
class Meta:
ordering = ['relay_start']

View File

@ -4,7 +4,6 @@ from .models import Driver, Kart, Params, Relay
class DriverSerializer(serializers.ModelSerializer):
class Meta:
model = Driver
fields = ('id', 'short_name', 'first_name', 'last_name', 'order', 'ref_time')
@ -23,7 +22,6 @@ class DriverSerializer(serializers.ModelSerializer):
class KartSerializer(serializers.ModelSerializer):
drivers = DriverSerializer(many=True, read_only=True)
class Meta:
@ -42,7 +40,6 @@ class KartSerializer(serializers.ModelSerializer):
class KartSimpleSerializer(serializers.ModelSerializer):
class Meta:
model = Kart
fields = ('id', 'name', 'autonomy')
@ -59,10 +56,13 @@ class KartSimpleSerializer(serializers.ModelSerializer):
class RelaySerializer(serializers.ModelSerializer):
drivers = DriverSerializer(many=True, read_only=True)
class Meta:
model = Relay
fields = ('id', 'relay_start', 'relay_end', 'has_refuel', 'driver_chrono', 'relay_autonomy', 'comment',
'kart_id', 'driver_id')
fields = '__all__'
depth = 1
def update(self, instance, validated_data):
instance.relay_start = validated_data.get("relay_start", instance.relay_start)
@ -95,4 +95,3 @@ class ParamSerializer(serializers.ModelSerializer):
def create(self, validated_data):
return Params.objects.create(**validated_data)

View File

@ -1,6 +1,6 @@
from django.urls import path
from .views import ListCreateDriversView, DriversDetailView, KartsDetailView, ListCreateKartsView, \
ParamsDetailView, ListCreateRelaysView, RelaysDetailView
ParamsDetailView, ListCreateRelaysView, RelaysDetailView, RelaysByKartDetailView
# , ListCreateRulesView, RulesDetailView, \
# ListCreateKartsView, KartsDetailView, ListCreateRelaysView, RelaysDetailView, ListCreateRacesView, \
# RacesDetailView
@ -14,7 +14,7 @@ urlpatterns = [
# path('rules/', ListCreateRulesView.as_view(), name="rules-list-create"),
path('params/<int:pk>/', ParamsDetailView.as_view(), name="rules-detail"),
path('relays/', ListCreateRelaysView.as_view(), name="relays-list-create"),
# path('relaysbykart/<int:pk>/', RelaysDetailView.as_view(), name="relays-detail"),
path('relaysbykart/<int:kart>/', RelaysByKartDetailView.as_view(), name="relays-detail"),
path('relays/<int:pk>/', RelaysDetailView.as_view(), name="relays-detail"),
# path('races/', ListCreateRacesView.as_view(), name="races-list-create"),
# path('races/<int:pk>/', RacesDetailView.as_view(), name="races-detail"),

View File

@ -264,3 +264,23 @@ class RelaysDetailView(generics.ListAPIView):
},
status=status.HTTP_404_NOT_FOUND
)
class RelaysByKartDetailView(generics.ListAPIView):
"""
Provides a get method handler.
"""
serializer_class = RelaySerializer
def get_queryset(self):
try:
kart = self.kwargs['kart']
a_relay = Relay.objects.filter(kart=kart)
return a_relay
except Relay.DoesNotExist:
return Response(
data={
"message": "Relay with id: {} does not exist".format(self.kwargs["kart"])
},
status=status.HTTP_404_NOT_FOUND
)