Add routes and custom serialiser
Add requirements
This commit is contained in:
parent
31d5f7ade4
commit
1b1a19ae9d
BIN
db.sqlite3
BIN
db.sqlite3
Binary file not shown.
@ -1,6 +1,8 @@
|
||||
Django==2.0.3
|
||||
django-cors-headers==2.5.2
|
||||
djangorestframework==3.7.7
|
||||
djangorestframework-jwt==1.11.0
|
||||
djangorestframework-stubs==0.4.2
|
||||
gunicorn==19.7.1
|
||||
PyJWT==1.6.1
|
||||
pytz==2018.3
|
||||
|
@ -33,6 +33,7 @@ class Params(models.Model):
|
||||
autonomy = models.IntegerField()
|
||||
default_relay = models.IntegerField()
|
||||
stand_minimum_time = models.IntegerField()
|
||||
comment = models.CharField(max_length=250)
|
||||
|
||||
|
||||
class Relay(models.Model):
|
||||
@ -40,16 +41,16 @@ class Relay(models.Model):
|
||||
driver = models.ForeignKey(Driver, on_delete=models.CASCADE)
|
||||
# Fk kart
|
||||
kart = models.ForeignKey(Kart, on_delete=models.CASCADE)
|
||||
#Starting timestamp for the relay
|
||||
# Starting timestamp for the relay
|
||||
relay_start = models.DateTimeField()
|
||||
#ending timestamp for the relay
|
||||
# ending timestamp for the relay
|
||||
relay_end = models.DateTimeField(default=None, blank=True, null=True)
|
||||
#Does the previous pilot refuel
|
||||
# Does the previous pilot refuel
|
||||
has_refuel = models.BooleanField(default=False)
|
||||
#Average chrono for the pulot on this relay
|
||||
# Average chrono for the pulot on this relay
|
||||
driver_chrono = models.IntegerField(default=None, blank=True, null=True)
|
||||
#ending timestamp for the relay
|
||||
# ending timestamp for the relay
|
||||
relay_autonomy = models.IntegerField(default=None, blank=True, null=True)
|
||||
#comment the relay
|
||||
# comment the relay
|
||||
comment = models.CharField(max_length=256, default=None, blank=True, null=True)
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
from rest_framework import serializers
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
from .models import Driver, Kart, Params, Relay
|
||||
|
||||
@ -41,6 +40,23 @@ class KartSerializer(serializers.ModelSerializer):
|
||||
return Kart.objects.create(**validated_data)
|
||||
|
||||
|
||||
class KartSimpleSerializer(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = Kart
|
||||
fields = ('id', 'name', 'autonomy')
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
instance.name = validated_data.get("name", instance.name)
|
||||
instance.autonomy = validated_data.get("autonomy", instance.autonomy)
|
||||
instance.comment = validated_data.get("comment", instance.comment)
|
||||
instance.save()
|
||||
return instance
|
||||
|
||||
def create(self, validated_data):
|
||||
return Kart.objects.create(**validated_data)
|
||||
|
||||
|
||||
class RelaySerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Relay
|
||||
@ -66,12 +82,13 @@ class RelaySerializer(serializers.ModelSerializer):
|
||||
class ParamSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Params
|
||||
fields = ('id', 'default_relay', 'autonomy', 'stand_minimum_time')
|
||||
fields = ('id', 'default_relay', 'autonomy', 'stand_minimum_time', 'comment')
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
instance.default_relay = validated_data.get("default_relay", instance.default_relay)
|
||||
instance.autonomy = validated_data.get("autonomy", instance.autonomy)
|
||||
instance.stand_minimum_time = validated_data.get("stand_minimum_time", instance.stand_minimum_time)
|
||||
instance.comment = validated_data.get("comment", instance.comment)
|
||||
instance.save()
|
||||
return instance
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
from django.urls import path
|
||||
from .views import ListCreateDriversView, DriversDetailView, KartsDetailView, ListCreateKartsView#, ListCreateRulesView, RulesDetailView, \
|
||||
from .views import ListCreateDriversView, DriversDetailView, KartsDetailView, ListCreateKartsView, ParamsDetailView#, ListCreateRulesView, RulesDetailView, \
|
||||
#ListCreateKartsView, KartsDetailView, ListCreateRelaysView, RelaysDetailView, ListCreateRacesView, \
|
||||
#RacesDetailView
|
||||
|
||||
@ -8,11 +8,11 @@ urlpatterns = [
|
||||
path('drivers/<int:pk>/', DriversDetailView.as_view(), name="drivers-detail"),
|
||||
path('karts/', ListCreateKartsView.as_view(), name="karts-list-create"),
|
||||
path('karts/<int:pk>/', KartsDetailView.as_view(), name="drivers-detail"),
|
||||
# path('karts/<int:pk>/', KartsDetailView.as_view(), name="karts-detail"),
|
||||
# path('rules/', ListCreateRulesView.as_view(), name="rules-list-create"),
|
||||
# path('rules/<int:pk>/', RulesDetailView.as_view(), name="rules-detail"),
|
||||
# path('relays/', ListCreateRelaysView.as_view(), name="relays-list-create"),
|
||||
# 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"),
|
||||
# path('karts/<int:pk>/', KartsDetailView.as_view(), name="karts-detail"),
|
||||
# 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('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"),
|
||||
]
|
||||
|
@ -9,7 +9,7 @@ from rest_framework.views import status
|
||||
from .decorators import validate_request_driver_data
|
||||
|
||||
from .models import Driver, Kart, Params, Relay
|
||||
from .serializers import DriverSerializer, RelaySerializer, ParamSerializer, KartSerializer
|
||||
from .serializers import DriverSerializer, RelaySerializer, ParamSerializer, KartSerializer, KartSimpleSerializer
|
||||
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
@ -113,6 +113,42 @@ class KartsDetailView(generics.ListAPIView):
|
||||
)
|
||||
|
||||
|
||||
class ParamsDetailView(generics.ListAPIView):
|
||||
"""
|
||||
Provides a get method handler.
|
||||
"""
|
||||
queryset = Params.objects.all()
|
||||
serializer_class = ParamSerializer
|
||||
#permission_classes = (permissions.IsAuthenticated,)
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
try:
|
||||
a_param = self.queryset.get(pk=kwargs["pk"])
|
||||
return Response(ParamSerializer(a_param).data)
|
||||
except Params.DoesNotExist:
|
||||
return Response(
|
||||
data={
|
||||
"message": "Param with id: {} does not exist".format(kwargs["pk"])
|
||||
},
|
||||
status=status.HTTP_404_NOT_FOUND
|
||||
)
|
||||
|
||||
#@validate_request_driver_data
|
||||
def put(self, request, *args, **kwargs):
|
||||
try:
|
||||
a_param = self.queryset.get(pk=kwargs["pk"])
|
||||
serializer = ParamSerializer(instance=a_param, data=request.data, partial=True)
|
||||
updated_param = serializer.update(a_param, request.data)
|
||||
return Response(ParamSerializer(updated_param).data)
|
||||
except Params.DoesNotExist:
|
||||
return Response(
|
||||
data={
|
||||
"message": "Param with id: {} does not exist".format(kwargs["pk"])
|
||||
},
|
||||
status=status.HTTP_404_NOT_FOUND
|
||||
)
|
||||
|
||||
|
||||
class ListCreateDriversView(generics.ListCreateAPIView):
|
||||
"""
|
||||
GET songs/
|
||||
@ -145,20 +181,16 @@ class ListCreateKartsView(generics.ListCreateAPIView):
|
||||
"""
|
||||
queryset = Kart.objects.all()
|
||||
serializer_class = KartSerializer
|
||||
#permission_classes = (permissions.IsAuthenticated,)
|
||||
|
||||
#@validate_request_driver_data
|
||||
def post(self, request, *args, **kwargs):
|
||||
logger.error('ListCreateKartsView => post')
|
||||
a_song = Kart.objects.create(
|
||||
first_name=request.data["first_name"],
|
||||
last_name=request.data["last_name"],
|
||||
order=request.data["order"],
|
||||
ref_time=request.data["ref_time"],
|
||||
kart_id=request.data["kart_id"]
|
||||
a_kart = Kart.objects.create(
|
||||
name=request.data["name"],
|
||||
autonomy=request.data["last_name"],
|
||||
comment=request.data["order"]
|
||||
)
|
||||
return Response(
|
||||
data=DriverSerializer(a_song).data,
|
||||
data=DriverSerializer(a_kart).data,
|
||||
status=status.HTTP_201_CREATED
|
||||
)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user