Compare commits

...

2 Commits

Author SHA1 Message Date
e9388ee78f Fixed logic in term syntax 2021-01-17 23:26:25 -05:00
086ff471c9 Updated views for terminations 2021-01-17 23:24:56 -05:00
3 changed files with 44 additions and 27 deletions

View File

@ -6,9 +6,9 @@ from .models import Migration
class MigrationAdmin(admin.ModelAdmin):
list_display = ('ticket_id', 'booked_date' , 'booked_time',
'migration_status', 'domain', 'brand')
'migration_status', 'domain', 'brand', 'agent_booked')
search_fields = ['domain', 'booked_time',
'username', 'ticket_id', 'migration_status']
'username', 'ticket_id', 'migration_status', 'agent_booked']
admin.site.register(Migration, MigrationAdmin)

View File

@ -1,15 +1,30 @@
from rest_framework import serializers
from .models import Migration
import datetime
class MigrationOverView(serializers.ModelSerializer):
class Meta:
model = Migration
fields = ['id',
'domain',
'booked_date',
'booked_time',
'migration_status',
'term_date']
# class MigrationOverView(serializers.ModelSerializer):
# booked_count = serializers.SerializerMethodField()
# missed_count = serializers.SerializerMethodField()
# awaitterm_count = serializers.SerializerMethodField()
# complete_count = serializers.SerializerMethodField()
# class Meta:
# model = Migration
# fields = ['booked_count',
# 'missed_count',
# 'awaitterm_count',
# 'complete_count']
# def get_booked_count (self, obj):
# return Migration.objects.filter(migration_status="Booked").count()
# def get_missed_count (self, obj):
# return Migration.objects.filter(migration_status="Booked", booked_date__lt=datetime.datetime.now().date()).count()
# def get_awaitterm_count (self, obj):
# return Migration.objects.filter(migration_status="Waiting Termination", booked_date=datetime.datetime.now().date()).count()
# def get_complete_count (self, obj):
# return Migration.objects.filter(migration_status="Completed").count()
class MigrationSerializer(serializers.ModelSerializer):
class Meta:
@ -31,4 +46,4 @@ class MigrationSerializer(serializers.ModelSerializer):
'migration_type',
'term_date',
'migration_cmd',
'extra_scripts_run']
'extra_scripts_run']

View File

@ -9,7 +9,7 @@ from rest_framework import status, viewsets
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.decorators import action
from .serializers import MigrationSerializer, MigrationOverView
from .serializers import MigrationSerializer
from .models import Migration
@ -32,10 +32,15 @@ class MigrationList(APIView):
Returns a list of migrations with simpleData
'''
def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = getAllMigrations(limit)
serializer = MigrationOverView(migrations, many=True)
return Response(serializer.data)
return Response({'booked_count': Migration.objects.filter(migration_status="Booked").count(),
'pendterm_count': Migration.objects.filter(migration_status="Waiting Termination", term_date=timezone.now()).count(),
'complete_count': Migration.objects.filter(migration_status="Completed").count(),
'missed_count': Migration.objects.filter(
booked_time__lte=timezone.now() + datetime.timedelta(-1),
migration_status="Booked"
).count(),
"upcoming_count":Migration.objects.filter(migration_status="Booked", booked_date=datetime.datetime.now().date()).count()})
# return Response(serializer.data)
def post(self, request, format=None):
serializer = MigrationSerializer(data=request.data)
@ -84,8 +89,7 @@ class MigrationsWaitingTerm(APIView):
'''
def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = MigrationOverView(Migration.objects.filter(
migration_status="Waiting Termination",)[:limit], many=True)
migrations = MigrationSerializer(Migration.objects.filter(migration_status="Waiting Termination", term_date=timezone.now())[:limit], many=True)
return Response(migrations.data, status=status.HTTP_200_OK)
class MigrationsCompleted(APIView):
@ -94,7 +98,7 @@ class MigrationsCompleted(APIView):
'''
def get(self, request, format=None):
limit = checkLimit(request.GET.get('limit', ''))
migrations = MigrationOverView(Migration.objects.filter(
migrations = MigrationSerializer(Migration.objects.filter(
migration_status="Completed",)[:limit], many=True)
return Response(migrations.data, status=status.HTTP_200_OK)
@ -105,10 +109,9 @@ class PendingMigrations(APIView):
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))
migration_status="Booked", booked_date=datetime.datetime.now().date()
)[:limit]
serializer = MigrationOverView(migrations, many=True)
serializer = MigrationSerializer(migrations, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
class MissedMigrations(APIView):
@ -121,7 +124,7 @@ class MissedMigrations(APIView):
booked_time__lte=timezone.now() + datetime.timedelta(-1),
migration_status="Booked"
)[:limit]
serializer = MigrationOverView(migrations, many=True)
serializer = MigrationSerializer(migrations, many=True)
return Response(serializer.data)
class PendingTerm(APIView):
@ -131,9 +134,8 @@ class PendingTerm(APIView):
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)
migration_status="Waiting Termination")[:limit]
serializer = MigrationSerializer(migrations, many=True)
return Response(serializer.data)
class MigrationListAll(APIView):