2017-08-13 13:44:48 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
2022-01-11 23:25:22 +00:00
|
|
|
from rest_framework import viewsets
|
2022-01-10 14:44:48 +00:00
|
|
|
from rest_framework.decorators import action
|
|
|
|
from rest_framework.response import Response
|
2017-08-13 13:44:48 +00:00
|
|
|
|
2017-11-10 02:15:09 +00:00
|
|
|
from core import models
|
2017-08-16 22:33:02 +00:00
|
|
|
|
2021-10-31 13:13:38 +00:00
|
|
|
from . import serializers, filters
|
2020-03-14 20:15:14 +00:00
|
|
|
from .mixins import TimerFieldSupportMixin
|
2017-08-13 14:48:16 +00:00
|
|
|
|
2017-08-16 12:49:58 +00:00
|
|
|
class ChildViewSet(viewsets.ModelViewSet):
|
2017-11-10 02:15:09 +00:00
|
|
|
queryset = models.Child.objects.all()
|
|
|
|
serializer_class = serializers.ChildSerializer
|
2022-02-10 00:00:30 +00:00
|
|
|
lookup_field = "slug"
|
|
|
|
filterset_fields = ("first_name", "last_name", "slug", "birth_date")
|
2017-08-13 20:15:57 +00:00
|
|
|
|
2017-08-13 14:48:16 +00:00
|
|
|
|
2017-08-13 19:51:25 +00:00
|
|
|
class DiaperChangeViewSet(viewsets.ModelViewSet):
|
2017-11-10 02:15:09 +00:00
|
|
|
queryset = models.DiaperChange.objects.all()
|
|
|
|
serializer_class = serializers.DiaperChangeSerializer
|
2021-10-31 13:13:38 +00:00
|
|
|
filterset_class = filters.DiaperChangeFilter
|
2017-08-13 20:15:57 +00:00
|
|
|
|
2017-08-13 19:51:25 +00:00
|
|
|
|
2020-03-14 20:15:14 +00:00
|
|
|
class FeedingViewSet(TimerFieldSupportMixin, viewsets.ModelViewSet):
|
2017-11-10 02:15:09 +00:00
|
|
|
queryset = models.Feeding.objects.all()
|
|
|
|
serializer_class = serializers.FeedingSerializer
|
2021-10-31 13:34:45 +00:00
|
|
|
filterset_class = filters.FeedingFilter
|
2017-08-13 20:15:57 +00:00
|
|
|
|
2017-08-13 15:59:14 +00:00
|
|
|
|
2017-08-13 20:48:16 +00:00
|
|
|
class NoteViewSet(viewsets.ModelViewSet):
|
2017-11-10 02:15:09 +00:00
|
|
|
queryset = models.Note.objects.all()
|
|
|
|
serializer_class = serializers.NoteSerializer
|
2021-10-31 13:13:38 +00:00
|
|
|
filterset_class = filters.NoteFilter
|
2017-08-13 20:48:16 +00:00
|
|
|
|
|
|
|
|
2020-03-14 20:15:14 +00:00
|
|
|
class SleepViewSet(TimerFieldSupportMixin, viewsets.ModelViewSet):
|
2017-11-10 02:15:09 +00:00
|
|
|
queryset = models.Sleep.objects.all()
|
|
|
|
serializer_class = serializers.SleepSerializer
|
2021-10-31 13:34:45 +00:00
|
|
|
filterset_class = filters.SleepFilter
|
2017-08-13 20:15:57 +00:00
|
|
|
|
2017-08-13 15:59:14 +00:00
|
|
|
|
2019-05-17 05:13:14 +00:00
|
|
|
class TemperatureViewSet(viewsets.ModelViewSet):
|
|
|
|
queryset = models.Temperature.objects.all()
|
|
|
|
serializer_class = serializers.TemperatureSerializer
|
2021-10-31 13:13:38 +00:00
|
|
|
filterset_class = filters.TemperatureFilter
|
2019-05-17 05:13:14 +00:00
|
|
|
|
|
|
|
|
2017-08-16 22:33:02 +00:00
|
|
|
class TimerViewSet(viewsets.ModelViewSet):
|
2017-11-10 02:15:09 +00:00
|
|
|
queryset = models.Timer.objects.all()
|
|
|
|
serializer_class = serializers.TimerSerializer
|
2021-10-31 13:34:45 +00:00
|
|
|
filterset_class = filters.TimerFilter
|
2017-08-16 22:33:02 +00:00
|
|
|
|
2022-02-10 00:00:30 +00:00
|
|
|
@action(detail=True, methods=["patch"])
|
2022-01-10 14:44:48 +00:00
|
|
|
def stop(self, request, pk=None):
|
2022-01-11 23:25:22 +00:00
|
|
|
timer = self.get_object()
|
|
|
|
timer.stop()
|
|
|
|
return Response(self.serializer_class(timer).data)
|
2022-01-10 14:44:48 +00:00
|
|
|
|
2022-02-10 00:00:30 +00:00
|
|
|
@action(detail=True, methods=["patch"])
|
2022-01-10 14:44:48 +00:00
|
|
|
def restart(self, request, pk=None):
|
2022-01-11 23:25:22 +00:00
|
|
|
timer = self.get_object()
|
|
|
|
timer.restart()
|
|
|
|
return Response(self.serializer_class(timer).data)
|
2022-01-10 14:44:48 +00:00
|
|
|
|
2017-08-16 22:33:02 +00:00
|
|
|
|
2020-03-14 20:15:14 +00:00
|
|
|
class TummyTimeViewSet(TimerFieldSupportMixin, viewsets.ModelViewSet):
|
2017-11-10 02:15:09 +00:00
|
|
|
queryset = models.TummyTime.objects.all()
|
|
|
|
serializer_class = serializers.TummyTimeSerializer
|
2021-10-31 13:34:45 +00:00
|
|
|
filterset_class = filters.TummyTimeFilter
|
2017-11-10 02:15:09 +00:00
|
|
|
|
|
|
|
|
|
|
|
class WeightViewSet(viewsets.ModelViewSet):
|
|
|
|
queryset = models.Weight.objects.all()
|
|
|
|
serializer_class = serializers.WeightSerializer
|
2022-02-10 00:00:30 +00:00
|
|
|
filterset_fields = ("child", "date")
|
2021-12-29 07:53:36 +00:00
|
|
|
|
2021-12-30 03:32:55 +00:00
|
|
|
|
2021-12-29 07:53:36 +00:00
|
|
|
class HeightViewSet(viewsets.ModelViewSet):
|
|
|
|
queryset = models.Height.objects.all()
|
|
|
|
serializer_class = serializers.HeightSerializer
|
2022-02-10 00:00:30 +00:00
|
|
|
filterset_fields = ("child", "date")
|
2021-12-29 07:53:36 +00:00
|
|
|
|
2021-12-30 03:32:55 +00:00
|
|
|
|
2021-12-29 07:53:36 +00:00
|
|
|
class HeadCircumferenceViewSet(viewsets.ModelViewSet):
|
|
|
|
queryset = models.HeadCircumference.objects.all()
|
|
|
|
serializer_class = serializers.HeadCircumferenceSerializer
|
2022-02-10 00:00:30 +00:00
|
|
|
filterset_fields = ("child", "date")
|
2021-12-29 07:53:36 +00:00
|
|
|
|
2021-12-30 03:32:55 +00:00
|
|
|
|
2021-12-29 07:53:36 +00:00
|
|
|
class BMIViewSet(viewsets.ModelViewSet):
|
|
|
|
queryset = models.BMI.objects.all()
|
|
|
|
serializer_class = serializers.BMISerializer
|
2022-02-10 00:00:30 +00:00
|
|
|
filterset_fields = ("child", "date")
|
2022-02-15 21:24:13 +00:00
|
|
|
|
2022-02-17 23:22:01 +00:00
|
|
|
|
2022-02-15 21:24:13 +00:00
|
|
|
class TagsViewSet(viewsets.ModelViewSet):
|
|
|
|
queryset = models.BabyBuddyTag.objects.all()
|
|
|
|
serializer_class = serializers.TagsSerializer
|
|
|
|
lookup_field = "slug"
|
2022-02-17 23:22:01 +00:00
|
|
|
filterset_fields = ("last_used", "name")
|