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__/ api/__pycache__/
music/tests/__pycache__/ music/tests/__pycache__/
music/views/__pycache__/ music/views/__pycache__/
/db.sqlite3 db.sqlite3

View File

@ -54,3 +54,5 @@ class Relay(models.Model):
# comment the relay # comment the relay
comment = models.CharField(max_length=256, default=None, blank=True, null=True) 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 DriverSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Driver model = Driver
fields = ('id', 'short_name', 'first_name', 'last_name', 'order', 'ref_time') fields = ('id', 'short_name', 'first_name', 'last_name', 'order', 'ref_time')
@ -23,7 +22,6 @@ class DriverSerializer(serializers.ModelSerializer):
class KartSerializer(serializers.ModelSerializer): class KartSerializer(serializers.ModelSerializer):
drivers = DriverSerializer(many=True, read_only=True) drivers = DriverSerializer(many=True, read_only=True)
class Meta: class Meta:
@ -42,7 +40,6 @@ class KartSerializer(serializers.ModelSerializer):
class KartSimpleSerializer(serializers.ModelSerializer): class KartSimpleSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Kart model = Kart
fields = ('id', 'name', 'autonomy') fields = ('id', 'name', 'autonomy')
@ -59,10 +56,13 @@ class KartSimpleSerializer(serializers.ModelSerializer):
class RelaySerializer(serializers.ModelSerializer): class RelaySerializer(serializers.ModelSerializer):
drivers = DriverSerializer(many=True, read_only=True)
class Meta: class Meta:
model = Relay model = Relay
fields = ('id', 'relay_start', 'relay_end', 'has_refuel', 'driver_chrono', 'relay_autonomy', 'comment', fields = '__all__'
'kart_id', 'driver_id') depth = 1
def update(self, instance, validated_data): def update(self, instance, validated_data):
instance.relay_start = validated_data.get("relay_start", instance.relay_start) instance.relay_start = validated_data.get("relay_start", instance.relay_start)
@ -95,4 +95,3 @@ class ParamSerializer(serializers.ModelSerializer):
def create(self, validated_data): def create(self, validated_data):
return Params.objects.create(**validated_data) return Params.objects.create(**validated_data)

View File

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