Committing my work from api-remove-endpoint to new branch
This commit is contained in:
parent
e0611793f6
commit
ebed65f723
2 changed files with 145 additions and 146 deletions
|
@ -5,14 +5,13 @@ from rest_framework.urlpatterns import format_suffix_patterns
|
|||
from . import views
|
||||
|
||||
urlpatterns = [
|
||||
# path('', views.List.as_view()),
|
||||
# path('<int:pk>/', views.Detail.as_view()),
|
||||
path('print', views.print_all_reports),
|
||||
# path('print', views.get_reports),
|
||||
# path('print', views.get_sections),
|
||||
|
||||
|
||||
#
|
||||
# path('report', views.report),
|
||||
# path('reports', views.reports),
|
||||
# path('report/<int:report_pk>', views.report_detail),
|
||||
path('reports', views.reports),
|
||||
path('report/<int:report_pk>', views.report_detail),
|
||||
# path('report/<int:report_pk>/section/<int:section_pk>', views.section),
|
||||
# path('account', views.account),
|
||||
# path('account/login', views.account_login),
|
||||
|
|
|
@ -6,83 +6,67 @@ from django.http import JsonResponse
|
|||
from .models import *
|
||||
from .serializers import *
|
||||
|
||||
# Sample view using generics
|
||||
|
||||
# class List(generics.ListCreateAPIView):
|
||||
# queryset = Report.objects.all()
|
||||
# serializer_class = ReportSerializer
|
||||
#
|
||||
# class Detail(generics.RetrieveUpdateDestroyAPIView):
|
||||
# queryset = Report.objects.all()
|
||||
# serializer_class = ReportSerializer
|
||||
|
||||
|
||||
def print_all_reports(self):
|
||||
data = {}
|
||||
queryset = Report.objects.all()
|
||||
# function that prints all the reports
|
||||
def get_reports(report_pk):
|
||||
# queryset = Report.objects.all()
|
||||
queryset = Report.objects.filter(id=report_pk)
|
||||
for i in queryset:
|
||||
data = {
|
||||
"title": i.title,
|
||||
"date_created": i.date_created,
|
||||
"submitted": i.submitted,
|
||||
"date_submitted": i.date_submitted,
|
||||
"sections": get_sections(i.id),
|
||||
"report_pk": report_pk,
|
||||
"title": i.title,
|
||||
"date_created": i.date_created,
|
||||
"submitted": i.submitted,
|
||||
"date_submitted": i.date_submitted,
|
||||
}
|
||||
# append the sections for each report
|
||||
data.update(get_sections(i.id))
|
||||
|
||||
return JsonResponse(data)
|
||||
# return JsonResponse(data)
|
||||
return data
|
||||
|
||||
# function that gets all the sections
|
||||
# takes report_id param
|
||||
def get_sections(r_id):
|
||||
section_set = {"section_set": []}
|
||||
# create a dict of arrays for section
|
||||
section_set = {"sections": []}
|
||||
queryset = Section.objects.filter(report_id=r_id)
|
||||
# queryset = Section.objects.all()
|
||||
for i in queryset:
|
||||
inner_section = {
|
||||
"id": i.id,
|
||||
"completed": i.completed,
|
||||
"title": i.title,
|
||||
"html_description": i.html_description,
|
||||
"fields": get_fields(i.id),
|
||||
data = {
|
||||
"id": i.id,
|
||||
"completed": i.completed,
|
||||
"title": i.title,
|
||||
"html_description": i.html_description,
|
||||
}
|
||||
# section_set.update(inner_section)
|
||||
section_set["section_set"].append(inner_section.copy())
|
||||
# append the fields for corresponding section
|
||||
data.update(get_fields(i.id))
|
||||
# append section to the array
|
||||
section_set["sections"].append(data.copy())
|
||||
|
||||
return section_set
|
||||
# return JsonResponse(full)
|
||||
|
||||
|
||||
# function that gets all the fields
|
||||
# takes section_id param
|
||||
def get_fields(s_id):
|
||||
# create dict of arrays for fields
|
||||
field_set = {"fields": []}
|
||||
queryset = Field.objects.filter(section_id=s_id)
|
||||
# queryset = Field.objects.all()
|
||||
count = 0
|
||||
for i in queryset:
|
||||
temp = "field" + str(count)
|
||||
inner_field = {i.label: {
|
||||
"label": i.label,
|
||||
"type": i.type,
|
||||
"value": i.number,
|
||||
data = {i.label: {
|
||||
"label": i.label,
|
||||
"type": i.type,
|
||||
"value": i.number,
|
||||
}}
|
||||
print("PRINT FIELD")
|
||||
print(i.label)
|
||||
print(i.type)
|
||||
print(i.number)
|
||||
# field_set.append(inner_field)
|
||||
field_set["fields"].append(inner_field.copy())
|
||||
# field_set.update(inner_field)
|
||||
count += 1
|
||||
# append the fields to array
|
||||
# use copy() to avoid overwriting
|
||||
field_set["fields"].append(data.copy())
|
||||
|
||||
print("COUNT = {}".format(count))
|
||||
return field_set
|
||||
# return JsonResponse(field_set)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# API Endpoints
|
||||
|
||||
@api_view(['POST'])
|
||||
def report(request):
|
||||
'''
|
||||
|
@ -153,105 +137,121 @@ def report(request):
|
|||
# List of reports
|
||||
@api_view(['GET'])
|
||||
def reports(request):
|
||||
data = {
|
||||
"reports": [
|
||||
{
|
||||
"report_pk": 1,
|
||||
"title": "2018 Portland trip",
|
||||
"date_created": "2018-05-22T14:56:28.000Z",
|
||||
"state": "created",
|
||||
"date_submitted": "0000-00-00T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"report_pk": 2,
|
||||
"title": "2017 Los Angeles trip",
|
||||
"date_created": "2017-05-22T14:56:28.000Z",
|
||||
"state": "submitted",
|
||||
"date_submitted": "2017-07-22T14:56:28.000Z"
|
||||
},
|
||||
{
|
||||
"report_pk": 3,
|
||||
"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)
|
||||
report_set = {"reports": []}
|
||||
queryset = Report.objects.all()
|
||||
for i in queryset:
|
||||
data = {
|
||||
"title": i.title,
|
||||
"date_created": i.date_created,
|
||||
"submitted": i.submitted,
|
||||
"date_submitted": i.date_submitted,
|
||||
}
|
||||
# append the sections for each report
|
||||
report_set["reports"].append(data.copy())
|
||||
|
||||
return JsonResponse(report_set)
|
||||
|
||||
# data = {
|
||||
# "reports": [
|
||||
# {
|
||||
# "report_pk": 1,
|
||||
# "title": "2018 Portland trip",
|
||||
# "date_created": "2018-05-22T14:56:28.000Z",
|
||||
# "state": "created",
|
||||
# "date_submitted": "0000-00-00T00:00:00.000Z"
|
||||
# },
|
||||
# {
|
||||
# "report_pk": 2,
|
||||
# "title": "2017 Los Angeles trip",
|
||||
# "date_created": "2017-05-22T14:56:28.000Z",
|
||||
# "state": "submitted",
|
||||
# "date_submitted": "2017-07-22T14:56:28.000Z"
|
||||
# },
|
||||
# {
|
||||
# "report_pk": 3,
|
||||
# "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)
|
||||
|
||||
@api_view(['GET', 'PUT', 'DELETE'])
|
||||
def report_detail(request, report_pk):
|
||||
if request.method == 'GET':
|
||||
data = {
|
||||
"report_pk": report_pk,
|
||||
"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": [
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
data = get_reports(report_pk)
|
||||
# data = {
|
||||
# "report_pk": report_pk,
|
||||
# "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)
|
||||
elif request.method == 'PUT':
|
||||
return JsonResponse({"message": "Report submitted."})
|
||||
elif request.method == 'DELETE':
|
||||
return JsonResponse({"message": "Deleted report {0}.".format(report_pk)})
|
||||
|
||||
# change this api view again!!
|
||||
@api_view(['PUT'])
|
||||
def section(request, report_pk, section_pk):
|
||||
def section(report_pk, section_pk):
|
||||
'''
|
||||
Update a section with new data.
|
||||
'''
|
||||
|
|
Loading…
Reference in a new issue