Added docstrings

This commit is contained in:
benjamyn 2020-10-22 02:05:30 -04:00
parent e24d274cfd
commit 33140dde73

View File

@ -1,45 +1,42 @@
import datetime import datetime
from django.shortcuts import get_object_or_404, render from django.shortcuts import get_object_or_404, render
from django.http import HttpResponseRedirect, JsonResponse from django.http import HttpResponseRedirect, JsonResponse
from django.views import generic from django.views import generic
from django.urls import reverse from django.urls import reverse
from django.utils import timezone from django.utils import timezone
from rest_framework import status, viewsets from rest_framework import status, viewsets
from .serializers import MigrationSerializer
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.decorators import action from rest_framework.decorators import action
from .serializers import MigrationSerializer
from .models import Migration from .models import Migration
class MigrationViewSet(viewsets.ModelViewSet): class MigrationViewSet(viewsets.ModelViewSet):
''' Class for defining the migration views '''
queryset = Migration.objects.all() queryset = Migration.objects.all()
serializer_class = MigrationSerializer serializer_class = MigrationSerializer
# permission_classes = (AllowAny,) # permission_classes = (AllowAny,)
@action(detail=False, methods=['GET']) @action(detail=False, methods=['GET'])
def upcoming(self, request, *args, **kwargs): def upcoming(self, request, *args, **kwargs):
''' Returns a list of the migrations due today '''
queryset = MigrationSerializer( queryset = MigrationSerializer(
Migration.objects.filter(booked_time=timezone.now(), migration_status="Booked"), many=True) Migration.objects.filter(booked_time=timezone.now(), migration_status="Booked"), many=True)
return Response(queryset.data, status=status.HTTP_200_OK) return Response(queryset.data, status=status.HTTP_200_OK)
@action(detail=False, methods=['GET']) @action(detail=False, methods=['GET'])
def missed(self, request, *args, **kwargs): def missed(self, request, *args, **kwargs):
''' Returns a list of the missed migrations (Still have the status booked and date is greater then today) '''
queryset = MigrationSerializer( queryset = MigrationSerializer(
Migration.objects.filter(booked_time__gte=timezone.now() + datetime.timedelta(1), migration_status="Booked"), many=True) Migration.objects.filter(booked_time__gte=timezone.now() + datetime.timedelta(1), migration_status="Booked"), many=True)
return Response(queryset.data, status=status.HTTP_200_OK) return Response(queryset.data, status=status.HTTP_200_OK)
@action(detail=False, methods=['GET']) @action(detail=False, methods=['GET'])
def booked(self, request, *args, **kwargs): def booked(self, request, *args, **kwargs):
''' Returns a list of the booked migrations '''
queryset = MigrationSerializer(Migration.objects.filter( queryset = MigrationSerializer(Migration.objects.filter(
migration_status="booked",), many=True) migration_status="booked",), many=True)
return Response(queryset.data, status=status.HTTP_200_OK) return Response(queryset.data, status=status.HTTP_200_OK)
class IndexView(generic.ListView):
template_name = 'api/index.html'
context_object_name = 'latest_migrations'
def get_queryset(self):
"""Return the last five published questions (not including those set in the future)."""
return Migration.objects.filter(booked_time__gte=timezone.now()).order_by('-booked_time')[:5]