Compare commits

..

No commits in common. "08cbbb7ba767a2b98a76e73710bab639eb15c2ff" and "070a647fdd1fef67eae8a10bd73fbf2c091c2732" have entirely different histories.

2 changed files with 50 additions and 27 deletions

View File

@ -7,7 +7,6 @@ from rest_framework import routers
urlpatterns = [
path('migrations/', views.MigrationList.as_view()),
path('migrations/all/', views.MigrationListAll.as_view()),
path('migrations/booked/', views.MigrationsBooked.as_view()),
path('migrations/waitingterm/', views.MigrationsWaitingTerm.as_view()),
path('migrations/completed/', views.MigrationsCompleted.as_view()),

View File

@ -14,19 +14,12 @@ from .serializers import MigrationSerializer, MigrationOverView
from .models import Migration
def checkLimit(limit):
if limit == "":
limit = None
else:
limit = int(limit)
return limit
class MigrationList(APIView):
'''
Returns a list of migrations with simpleData
'''
def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = Migration.objects.all()[:limit]
migrations = Migration.objects.all()
serializer = MigrationOverView(migrations, many=True)
return Response(serializer.data)
@ -66,9 +59,8 @@ class MigrationsBooked(APIView):
Returns list of booked migrations
'''
def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = MigrationOverView(Migration.objects.filter(
migration_status="Booked",)[:limit], many=True)
migration_status="Booked",), many=True)
return Response(migrations.data, status=status.HTTP_200_OK)
class MigrationsWaitingTerm(APIView):
@ -76,9 +68,8 @@ class MigrationsWaitingTerm(APIView):
Returns list of booked migrations
'''
def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = MigrationOverView(Migration.objects.filter(
migration_status="Waiting Termination",)[:limit], many=True)
migration_status="Waiting Termination",), many=True)
return Response(migrations.data, status=status.HTTP_200_OK)
class MigrationsCompleted(APIView):
@ -86,9 +77,8 @@ class MigrationsCompleted(APIView):
Returns list of booked migrations
'''
def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = MigrationOverView(Migration.objects.filter(
migration_status="Completed",)[:limit], many=True)
migration_status="Completed",), many=True)
return Response(migrations.data, status=status.HTTP_200_OK)
class PendingMigrations(APIView):
@ -96,11 +86,10 @@ class PendingMigrations(APIView):
Returns list of 'pending' migrations (migrations that are booked for today (maybe before timezone.now))
'''
def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = Migration.objects.filter(
migration_status="Booked", booked_time__lte=timezone.now() + datetime.timedelta(1),
booked_time__gte=(timezone.now() + datetime.timedelta(-1))
)[:limit]
)
serializer = MigrationOverView(migrations, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
@ -109,11 +98,10 @@ class MissedMigrations(APIView):
Returns a list of missed migrations
'''
def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = Migration.objects.filter(
booked_time__lte=timezone.now() + datetime.timedelta(-1),
migration_status="Booked"
)[:limit]
)
serializer = MigrationOverView(migrations, many=True)
return Response(serializer.data)
@ -122,16 +110,52 @@ class PendingTerm(APIView):
Returns a list of accounts pending termination (might add an arg so we can specify how many days)
'''
def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = Migration.objects.filter(
migration_status="Waiting Termination", term_date__lte=timezone.now() + datetime.timedelta(1)
)[:limit]
)
serializer = MigrationOverView(migrations, many=True)
return Response(serializer.data)
class MigrationListAll(APIView):
def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = Migration.objects.all()[:limit]
serializer = MigrationSerializer(migrations, many=True)
return Response(serializer.data)
# class MigrationViewSet(viewsets.ModelViewSet):
# ''' Class for defining the migration views '''
# queryset = Migration.objects.all()
# serializer_class = MigrationOverView
# # permission_classes = (AllowAny,)
# @action(detail=False, methods=['GET'])
# def upcoming(self, request):
# ''' Returns a list of the migrations due today '''
# queryset = MigrationSerializer(
# Migration.objects.filter(booked_time=timezone.now(),
# migration_status="Booked"), many=True)
# return Response(queryset.data, status=status.HTTP_200_OK)
# @action(detail=False, methods=['GET'])
# def missed(self, request):
# ''' Returns a list of the missed migrations (Still have the status
# booked and date is greater then today) '''
# queryset = MigrationSerializer(
# 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)
# @action(detail=False, methods=['GET'])
# def booked(self, request):
# ''' Returns a list of the booked migrations '''
# queryset = MigrationSerializer(Migration.objects.filter(
# migration_status="Booked",), many=True)
# return Response(queryset.data, status=status.HTTP_200_OK)
# @action(detail=False, methods=['GET'])
# def completed(self, request):
# ''' Returns a list of the completed migrations '''
# queryset = MigrationSerializer(Migration.objects.filter(
# migration_status="Completed",), many=True)
# return Response(queryset.data, status=status.HTTP_200_OK)
# @action(detail=False, methods=['GET'])
# def awaitterm(self, request):
# ''' Returns migrations awaiting termination '''
# queryset = MigrationSerializer(Migration.objects.filter(
# migration_status="Waiting Termination", term_date__lte=timezone.now()), many=True)
# return Response(queryset.data, status=status.HTTP_200_OK)