Compare commits
8 Commits
182871f426
...
7b15bb75b1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7b15bb75b1 | ||
|
|
c905ad8d5f | ||
|
|
f9c071aa43 | ||
|
|
8e521902f6 | ||
|
|
619378c432 | ||
|
|
b229c752a3 | ||
|
|
4b58bc833c | ||
|
|
c49b5c169f |
28
migratorapi/api/migrations/0004_auto_20201020_1855.py
Normal file
28
migratorapi/api/migrations/0004_auto_20201020_1855.py
Normal file
@ -0,0 +1,28 @@
|
||||
# Generated by Django 3.1.2 on 2020-10-20 07:55
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('api', '0003_auto_20201018_1259'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='migration',
|
||||
name='additional_domains',
|
||||
field=models.CharField(max_length=500, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='migration',
|
||||
name='notes',
|
||||
field=models.CharField(max_length=1024, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='migration',
|
||||
name='ticket_id',
|
||||
field=models.CharField(max_length=64),
|
||||
),
|
||||
]
|
||||
28
migratorapi/api/migrations/0005_auto_20201020_1915.py
Normal file
28
migratorapi/api/migrations/0005_auto_20201020_1915.py
Normal file
@ -0,0 +1,28 @@
|
||||
# Generated by Django 3.1.2 on 2020-10-20 08:15
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('api', '0004_auto_20201020_1855'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='migration',
|
||||
name='additional_domains',
|
||||
field=models.CharField(blank=True, max_length=500, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='migration',
|
||||
name='notes',
|
||||
field=models.CharField(blank=True, max_length=1024, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='migration',
|
||||
name='submit_time',
|
||||
field=models.DateField(verbose_name='migrtation submitted on'),
|
||||
),
|
||||
]
|
||||
19
migratorapi/api/migrations/0006_migration_uuid.py
Normal file
19
migratorapi/api/migrations/0006_migration_uuid.py
Normal file
@ -0,0 +1,19 @@
|
||||
# Generated by Django 3.1.2 on 2020-10-21 06:59
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('api', '0005_auto_20201020_1915'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='migration',
|
||||
name='uuid',
|
||||
field=models.CharField(default=uuid.uuid4, max_length=200),
|
||||
),
|
||||
]
|
||||
19
migratorapi/api/migrations/0007_auto_20201021_1802.py
Normal file
19
migratorapi/api/migrations/0007_auto_20201021_1802.py
Normal file
@ -0,0 +1,19 @@
|
||||
# Generated by Django 3.1.2 on 2020-10-21 07:02
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('api', '0006_migration_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='migration',
|
||||
name='uuid',
|
||||
field=models.CharField(default=uuid.uuid4, max_length=200, unique=True),
|
||||
),
|
||||
]
|
||||
23
migratorapi/api/migrations/0008_auto_20201021_1805.py
Normal file
23
migratorapi/api/migrations/0008_auto_20201021_1805.py
Normal file
@ -0,0 +1,23 @@
|
||||
# Generated by Django 3.1.2 on 2020-10-21 07:05
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('api', '0007_auto_20201021_1802'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='migration',
|
||||
name='uuid',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='migration',
|
||||
name='id',
|
||||
field=models.CharField(default=uuid.uuid4, max_length=200, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
]
|
||||
@ -1,27 +1,31 @@
|
||||
import datetime
|
||||
import uuid
|
||||
|
||||
from django.db import models
|
||||
from django.utils import timezone
|
||||
|
||||
|
||||
class Migration(models.Model):
|
||||
submit_time = models.DateTimeField('migrtation submitted on')
|
||||
id = models.CharField(max_length=200, unique=True,
|
||||
default=uuid.uuid4, primary_key=True)
|
||||
submit_time = models.DateField('migrtation submitted on')
|
||||
domain = models.CharField(max_length=200)
|
||||
booked_time = models.DateTimeField('Migration booked for')
|
||||
original_server = models.CharField(max_length=200)
|
||||
new_server = models.CharField(max_length=200)
|
||||
username = models.CharField(max_length=200)
|
||||
notes = models.CharField(max_length=1024)
|
||||
notes = models.CharField(max_length=1024, null=True, blank=True)
|
||||
brand = models.CharField(max_length=200)
|
||||
ticket_id = models.CharField(max_length=200)
|
||||
ticket_id = models.CharField(max_length=64)
|
||||
migration_status = models.CharField(max_length=200, default='Booked')
|
||||
agent_booked = models.CharField(max_length=10)
|
||||
additional_domains = models.CharField(max_length=500)
|
||||
additional_domains = models.CharField(
|
||||
max_length=500, null=True, blank=True)
|
||||
migration_type = models.CharField(max_length=200)
|
||||
|
||||
def print_missed_migrations(self):
|
||||
now = timezone.now()
|
||||
return now + datetime.timedelta(days=1) >= self.booked_time >= now
|
||||
return now >= self.booked_time
|
||||
print_missed_migrations.admin_order_field = 'booked_time'
|
||||
print_missed_migrations.boolean = True
|
||||
print_missed_migrations.short_description = "Was this migration missed?"
|
||||
|
||||
21
migratorapi/api/serializers.py
Normal file
21
migratorapi/api/serializers.py
Normal file
@ -0,0 +1,21 @@
|
||||
from rest_framework import serializers
|
||||
from .models import Migration
|
||||
|
||||
|
||||
class MigrationSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Migration
|
||||
fields = ['id',
|
||||
'submit_time',
|
||||
'domain',
|
||||
'booked_time',
|
||||
'original_server',
|
||||
'new_server',
|
||||
'username',
|
||||
'notes',
|
||||
'brand',
|
||||
'ticket_id',
|
||||
'migration_status',
|
||||
'agent_booked',
|
||||
'additional_domains',
|
||||
'migration_type']
|
||||
@ -1,7 +1,10 @@
|
||||
from django.urls import path
|
||||
from django.urls import include, path
|
||||
from . import views
|
||||
from rest_framework import routers
|
||||
|
||||
router = routers.DefaultRouter()
|
||||
router.register('migrations', views.MigrationViewSet)
|
||||
|
||||
app_name = 'api'
|
||||
urlpatterns = [
|
||||
path('', views.IndexView.as_view(), name='index')
|
||||
path('', include(router.urls))
|
||||
]
|
||||
|
||||
@ -3,10 +3,31 @@ from django.http import HttpResponseRedirect
|
||||
from django.views import generic
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
from rest_framework import status, viewsets
|
||||
from .serializers import MigrationSerializer
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.decorators import action
|
||||
|
||||
from .models import Migration
|
||||
|
||||
|
||||
class MigrationViewSet(viewsets.ModelViewSet):
|
||||
queryset = Migration.objects.all()
|
||||
serializer_class = MigrationSerializer
|
||||
# permission_classes = (AllowAny,)
|
||||
|
||||
@action(detail=False, methods=['GET'])
|
||||
def upcoming(self, request, *args, **kwargs):
|
||||
response = {"message": "this will be upcoming migrations"}
|
||||
return Response(response, status=status.HTTP_200_OK)
|
||||
|
||||
@action(detail=False, methods=['GET'])
|
||||
def missed(self, request, *args, **kwargs):
|
||||
response = {"message": str(Migration.objects.filter(
|
||||
booked_time__gte=timezone.now()).order_by('-booked_time')[:5])}
|
||||
return Response(response, status=status.HTTP_200_OK)
|
||||
|
||||
|
||||
class IndexView(generic.ListView):
|
||||
template_name = 'api/index.html'
|
||||
context_object_name = 'latest_migrations'
|
||||
|
||||
@ -38,6 +38,7 @@ INSTALLED_APPS = [
|
||||
'django.contrib.sessions',
|
||||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'rest_framework',
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
|
||||
Reference in New Issue
Block a user