# -*- coding: utf-8 -*- from rest_framework import viewsets from rest_framework.decorators import action from rest_framework.response import Response from core import models from . import serializers, filters from .mixins import TimerFieldSupportMixin class ChildViewSet(viewsets.ModelViewSet): queryset = models.Child.objects.all() serializer_class = serializers.ChildSerializer lookup_field = 'slug' filterset_fields = ('first_name', 'last_name', 'slug', 'birth_date') class DiaperChangeViewSet(viewsets.ModelViewSet): queryset = models.DiaperChange.objects.all() serializer_class = serializers.DiaperChangeSerializer filterset_class = filters.DiaperChangeFilter class FeedingViewSet(TimerFieldSupportMixin, viewsets.ModelViewSet): queryset = models.Feeding.objects.all() serializer_class = serializers.FeedingSerializer filterset_class = filters.FeedingFilter class NoteViewSet(viewsets.ModelViewSet): queryset = models.Note.objects.all() serializer_class = serializers.NoteSerializer filterset_class = filters.NoteFilter class SleepViewSet(TimerFieldSupportMixin, viewsets.ModelViewSet): queryset = models.Sleep.objects.all() serializer_class = serializers.SleepSerializer filterset_class = filters.SleepFilter class TemperatureViewSet(viewsets.ModelViewSet): queryset = models.Temperature.objects.all() serializer_class = serializers.TemperatureSerializer filterset_class = filters.TemperatureFilter class TimerViewSet(viewsets.ModelViewSet): queryset = models.Timer.objects.all() serializer_class = serializers.TimerSerializer filterset_class = filters.TimerFilter @action(detail=True, methods=['patch']) def stop(self, request, pk=None): timer = self.get_object() timer.stop() return Response(self.serializer_class(timer).data) @action(detail=True, methods=['patch']) def restart(self, request, pk=None): timer = self.get_object() timer.restart() return Response(self.serializer_class(timer).data) class TummyTimeViewSet(TimerFieldSupportMixin, viewsets.ModelViewSet): queryset = models.TummyTime.objects.all() serializer_class = serializers.TummyTimeSerializer filterset_class = filters.TummyTimeFilter class WeightViewSet(viewsets.ModelViewSet): queryset = models.Weight.objects.all() serializer_class = serializers.WeightSerializer filterset_fields = ('child', 'date') class HeightViewSet(viewsets.ModelViewSet): queryset = models.Height.objects.all() serializer_class = serializers.HeightSerializer filterset_fields = ('child', 'date') class HeadCircumferenceViewSet(viewsets.ModelViewSet): queryset = models.HeadCircumference.objects.all() serializer_class = serializers.HeadCircumferenceSerializer filterset_fields = ('child', 'date') class BMIViewSet(viewsets.ModelViewSet): queryset = models.BMI.objects.all() serializer_class = serializers.BMISerializer filterset_fields = ('child', 'date')