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): class MigrationAdmin(admin.ModelAdmin):
list_display = ('ticket_id', 'booked_date' , 'booked_time', list_display = ('ticket_id', 'booked_date' , 'booked_time',
'migration_status', 'domain', 'brand') 'migration_status', 'domain', 'brand', 'agent_booked')
search_fields = ['domain', 'booked_time', search_fields = ['domain', 'booked_time',
'username', 'ticket_id', 'migration_status'] 'username', 'ticket_id', 'migration_status', 'agent_booked']
admin.site.register(Migration, MigrationAdmin) admin.site.register(Migration, MigrationAdmin)

View File

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