timelaps-api/timelaps/serializers.py
2019-04-18 21:43:22 +02:00

98 lines
3.7 KiB
Python

from rest_framework import serializers
from .models import Driver, Kart, Params, Relay
class DriverSerializer(serializers.ModelSerializer):
class Meta:
model = Driver
fields = ('id', 'first_name', 'last_name', 'order', 'ref_time')
def update(self, instance, validated_data):
instance.first_name = validated_data.get("first_name", instance.first_name)
instance.last_name = validated_data.get("last_name", instance.last_name)
instance.order = validated_data.get("order", instance.order)
instance.ref_time = validated_data.get("ref_time", instance.ref_time)
instance.save()
return instance
def create(self, validated_data):
return Driver.objects.create(**validated_data)
class KartSerializer(serializers.ModelSerializer):
drivers = DriverSerializer(many=True, read_only=True)
class Meta:
model = Kart
fields = ('id', 'name', 'autonomy', 'drivers')
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 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
fields = ('id', 'relay_start', 'relay_end', 'has_refuel', 'driver_chrono', 'relay_autonomy', 'comment',
'kart_id', 'driver_id')
def update(self, instance, validated_data):
instance.relay_start = validated_data.get("relay_start", instance.relay_start)
instance.relay_end = validated_data.get("relay_end", instance.relay_end)
instance.has_refuel = validated_data.get("has_refuel", instance.has_refuel)
instance.driver_chrono = validated_data.get("driver_chrono", instance.driver_chrono)
instance.relay_autonomy = validated_data.get("relay_autonomy", instance.relay_autonomy)
instance.comment = validated_data.get("comment", instance.comment)
instance.kart_id = validated_data.get("kart_id", instance.kart_id)
instance.driver_id = validated_data.get("driver_id", instance.driver_id)
instance.save()
return instance
def create(self, validated_data):
return Relay.objects.create(**validated_data)
class ParamSerializer(serializers.ModelSerializer):
class Meta:
model = Params
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
def create(self, validated_data):
return Params.objects.create(**validated_data)