235 lines
6.7 KiB
Python
235 lines
6.7 KiB
Python
# Rupika Dikkala
|
|
# January 19, 2019
|
|
# Creating views for URL that
|
|
# returns JSON data
|
|
|
|
from django.shortcuts import render
|
|
from django.http import JsonResponse
|
|
from .models import *
|
|
from .serializers import *
|
|
|
|
from rest_framework import generics
|
|
|
|
|
|
# create sample view
|
|
class List(generics.ListCreateAPIView):
|
|
queryset = Report.objects.all()
|
|
serializer_class = ReportSerializer
|
|
|
|
class Detail(generics.RetrieveUpdateDestroyAPIView):
|
|
queryset = Report.objects.all()
|
|
serializer_class = ReportSerializer
|
|
|
|
|
|
#######################################
|
|
|
|
# Create Report
|
|
def create_report(request):
|
|
data = {
|
|
"title": "2018 Portland trip",
|
|
"date_created": "2018-05-22T14:56:28.000Z",
|
|
"submitted": False,
|
|
"date_submitted": "0000-00-00T00:00:00.000Z",
|
|
"sections": [
|
|
{
|
|
"id": 1,
|
|
"completed": True,
|
|
"title": "Flight Info",
|
|
"html_description": "<p>Enter flight details here.</p>",
|
|
"fields": {
|
|
"international": {
|
|
"label": "International flight",
|
|
"type": "boolean",
|
|
"value": True
|
|
},
|
|
"travel_date": {
|
|
"label": "Travel start date",
|
|
"type": "date",
|
|
"value": "2016-05-22T14:56:28.000Z"
|
|
},
|
|
"fare": {
|
|
"label": "Fare",
|
|
"type": "decimal",
|
|
"value": "1024.99"
|
|
},
|
|
"lowest_fare_screenshot": {
|
|
"label": "Lowest fare screenshot",
|
|
"type": "file",
|
|
"value": "e92h842jiu49f8..."
|
|
},
|
|
"plane_ticket_invoice": {
|
|
"label": "Plane ticket invoice PDF",
|
|
"type": "file",
|
|
"value": ""
|
|
}
|
|
},
|
|
"rule_violations": [
|
|
{
|
|
"error_text": "Plane ticket invoice must be submitted."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 2,
|
|
"completed": False,
|
|
"title": "Hotel info",
|
|
"html_description": "<p>If you used a hotel, please enter the details.</p>",
|
|
"fields": {
|
|
"total": {
|
|
"label": "Total cost",
|
|
"type": "decimal"
|
|
}
|
|
},
|
|
"rule_violations": [
|
|
]
|
|
}
|
|
]
|
|
}
|
|
return JsonResponse(data)
|
|
|
|
# Delete report
|
|
def delete_report(request):
|
|
data = {
|
|
'name': 'Delete report',
|
|
}
|
|
return JsonResponse(data)
|
|
|
|
# Get report
|
|
def get_report(request):
|
|
data = {
|
|
"title": "2018 Portland trip",
|
|
"date_created": "2018-05-22T14:56:28.000Z",
|
|
"submitted": False,
|
|
"date_submitted": "0000-00-00T00:00:00.000Z",
|
|
"sections": [
|
|
{
|
|
"id": 1,
|
|
"completed": True,
|
|
"title": "Flight Info",
|
|
"html_description": "<p>Enter flight details here.</p>",
|
|
"fields": {
|
|
"international": {
|
|
"label": "International flight",
|
|
"type": "boolean",
|
|
"value": True
|
|
},
|
|
"travel_date": {
|
|
"label": "Travel start date",
|
|
"type": "date",
|
|
"value": "2016-05-22T14:56:28.000Z"
|
|
},
|
|
"fare": {
|
|
"label": "Fare",
|
|
"type": "decimal",
|
|
"value": "1024.99"
|
|
},
|
|
"lowest_fare_screenshot": {
|
|
"label": "Lowest fare screenshot",
|
|
"type": "file",
|
|
"value": "e92h842jiu49f8..."
|
|
},
|
|
"plane_ticket_invoice": {
|
|
"label": "Plane ticket invoice PDF",
|
|
"type": "file",
|
|
"value": ""
|
|
}
|
|
},
|
|
"rule_violations": [
|
|
{
|
|
"error_text": "Plane ticket invoice must be submitted."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 2,
|
|
"completed": False,
|
|
"title": "Hotel info",
|
|
"html_description": "<p>If you used a hotel, please enter the details.</p>",
|
|
"fields": {
|
|
"total": {
|
|
"label": "Total cost",
|
|
"type": "decimal"
|
|
}
|
|
},
|
|
"rule_violations": [
|
|
]
|
|
}
|
|
]
|
|
}
|
|
return JsonResponse(data)
|
|
|
|
# List Reports
|
|
def list_report(request):
|
|
data = {
|
|
"reports": [
|
|
{
|
|
"title": "2018 Portland trip",
|
|
"date_created": "2018-05-22T14:56:28.000Z",
|
|
"state": "created",
|
|
"date_submitted": "0000-00-00T00:00:00.000Z"
|
|
},
|
|
{
|
|
"title": "2017 Los Angeles trip",
|
|
"date_created": "2017-05-22T14:56:28.000Z",
|
|
"state": "submitted",
|
|
"date_submitted": "2017-07-22T14:56:28.000Z"
|
|
},
|
|
{
|
|
"title": "2017 Denver trip",
|
|
"date_created": "2015-04-22T14:56:28.000Z",
|
|
"state": "accepted",
|
|
"date_submitted": "2015-06-22T14:56:28.000Z"
|
|
}
|
|
]
|
|
}
|
|
return JsonResponse(data)
|
|
|
|
# Update Reports
|
|
def update_report(request):
|
|
data = {
|
|
'name': 'update report',
|
|
'state': 'SUBMITTED!',
|
|
}
|
|
return JsonResponse(data)
|
|
|
|
# Submit Reports
|
|
def submit_report(request):
|
|
data = {
|
|
'name': 'submit report',
|
|
}
|
|
return JsonResponse(data)
|
|
|
|
# Update section
|
|
def update_section(request):
|
|
data = {
|
|
"fields": {
|
|
"international": True,
|
|
"travel_date": "2012-04-23T18:25:43.511Z",
|
|
"fare": "1024.99",
|
|
"lowest_fare_screenshot": "image",
|
|
}
|
|
}
|
|
return JsonResponse(data)
|
|
|
|
|
|
# Create account
|
|
def create_account(request):
|
|
data = {
|
|
'name': 'create account',
|
|
}
|
|
return JsonResponse(data)
|
|
|
|
# Login
|
|
def login(request):
|
|
data = {
|
|
'name': 'login',
|
|
}
|
|
return JsonResponse(data)
|
|
|
|
# Logout
|
|
def logout(request):
|
|
data = {
|
|
'name': 'logout',
|
|
}
|
|
return JsonResponse(data)
|
|
|