Merge pull request #64 from danieldupriest/print_file_name
Print file name
This commit is contained in:
commit
edb7339543
4 changed files with 51 additions and 34 deletions
|
@ -1,6 +1,7 @@
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
import datetime
|
import datetime
|
||||||
|
import ntpath
|
||||||
|
|
||||||
class Report(models.Model):
|
class Report(models.Model):
|
||||||
user_id = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
|
user_id = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
|
||||||
|
@ -38,6 +39,8 @@ class Field(models.Model):
|
||||||
data_string = models.TextField(default='', blank=True)
|
data_string = models.TextField(default='', blank=True)
|
||||||
data_integer = models.IntegerField(default=0, blank=True)
|
data_integer = models.IntegerField(default=0, blank=True)
|
||||||
|
|
||||||
|
# function that prints the string representation
|
||||||
|
# on the api?
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
if self.type == "boolean":
|
if self.type == "boolean":
|
||||||
if self.data_bool:
|
if self.data_bool:
|
||||||
|
@ -54,3 +57,31 @@ class Field(models.Model):
|
||||||
return "{}".format(self.data_string)
|
return "{}".format(self.data_string)
|
||||||
elif self.type == "integer":
|
elif self.type == "integer":
|
||||||
return "{}".format(self.data_integer)
|
return "{}".format(self.data_integer)
|
||||||
|
|
||||||
|
|
||||||
|
# function that gets corresponding
|
||||||
|
# data type
|
||||||
|
def get_datatype(self):
|
||||||
|
if self.type == "boolean":
|
||||||
|
if self.data_bool:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
elif self.type == "decimal":
|
||||||
|
return self.data_decimal
|
||||||
|
elif self.type == "date":
|
||||||
|
return "{}".format(self.data_date)
|
||||||
|
elif self.type == "file":
|
||||||
|
file_name = self.path_leaf(str(self.data_file))
|
||||||
|
return "{}".format(file_name)
|
||||||
|
elif self.type == "string":
|
||||||
|
return "{}".format(self.data_string)
|
||||||
|
elif self.type == "integer":
|
||||||
|
return self.data_integer
|
||||||
|
|
||||||
|
# function that accommodates if
|
||||||
|
# path has slash at end
|
||||||
|
def path_leaf(self, path):
|
||||||
|
head, tail = ntpath.split(path)
|
||||||
|
return tail or ntpath.basename(head)
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,11 @@ from rest_framework.decorators import api_view
|
||||||
from django.http import JsonResponse
|
from django.http import JsonResponse
|
||||||
from .models import *
|
from .models import *
|
||||||
from .policy import pol
|
from .policy import pol
|
||||||
|
import ntpath
|
||||||
|
|
||||||
|
|
||||||
# function that prints all the reports
|
# function that prints all the reports
|
||||||
def get_reports(report_pk):
|
def get_reports(report_pk):
|
||||||
# queryset = Report.objects.all()
|
|
||||||
queryset = Report.objects.filter(id=report_pk)
|
queryset = Report.objects.filter(id=report_pk)
|
||||||
for i in queryset:
|
for i in queryset:
|
||||||
data = {
|
data = {
|
||||||
|
@ -28,7 +28,6 @@ def get_sections(r_id):
|
||||||
# create a dict of arrays for section
|
# create a dict of arrays for section
|
||||||
section_set = {"sections": []}
|
section_set = {"sections": []}
|
||||||
queryset = Section.objects.filter(report_id=r_id)
|
queryset = Section.objects.filter(report_id=r_id)
|
||||||
# queryset = Section.objects.all()
|
|
||||||
for i in queryset:
|
for i in queryset:
|
||||||
data = {
|
data = {
|
||||||
"id": i.id,
|
"id": i.id,
|
||||||
|
@ -51,8 +50,8 @@ def get_fields(s_id):
|
||||||
queryset = Field.objects.filter(section_id=s_id).order_by('number')
|
queryset = Field.objects.filter(section_id=s_id).order_by('number')
|
||||||
|
|
||||||
for i in queryset:
|
for i in queryset:
|
||||||
# function to print corresponding datatype
|
# function that gets the corresponding datatype
|
||||||
value = get_datatype(i)
|
value = Field.get_datatype(i)
|
||||||
data = {
|
data = {
|
||||||
"field_name": i.field_name,
|
"field_name": i.field_name,
|
||||||
"label": i.label,
|
"label": i.label,
|
||||||
|
@ -66,29 +65,6 @@ def get_fields(s_id):
|
||||||
|
|
||||||
return field_set
|
return field_set
|
||||||
|
|
||||||
# function to convert value into JSON
|
|
||||||
def to_json(convert):
|
|
||||||
return {"value": convert}
|
|
||||||
|
|
||||||
# function that gets corresponding
|
|
||||||
# data type
|
|
||||||
def get_datatype(self):
|
|
||||||
if self.type == "boolean":
|
|
||||||
if self.data_bool:
|
|
||||||
return True
|
|
||||||
else:
|
|
||||||
return False
|
|
||||||
elif self.type == "decimal":
|
|
||||||
return self.data_decimal
|
|
||||||
elif self.type == "date":
|
|
||||||
return "{}".format(self.data_date)
|
|
||||||
elif self.type == "file":
|
|
||||||
return "{}".format(self.data_file)
|
|
||||||
elif self.type == "string":
|
|
||||||
return "{}".format(self.data_string)
|
|
||||||
elif self.type == "integer":
|
|
||||||
return self.data_integer
|
|
||||||
|
|
||||||
|
|
||||||
# API Endpoints
|
# API Endpoints
|
||||||
@api_view(['POST'])
|
@api_view(['POST'])
|
||||||
|
@ -98,20 +74,25 @@ def report(request):
|
||||||
'''
|
'''
|
||||||
|
|
||||||
# Create the report
|
# Create the report
|
||||||
report = Report.objects.create(user_id=request.user, title=request.data['title'], date_created=datetime.date.today())
|
report = Report.objects.create(user_id=request.user, title=request.data['title'],
|
||||||
|
date_created=datetime.date.today())
|
||||||
report.save()
|
report.save()
|
||||||
|
|
||||||
# Create the sections
|
# Create the sections
|
||||||
for i in range(len(pol.sections)):
|
for i in range(len(pol.sections)):
|
||||||
section = pol.sections[i]
|
section = pol.sections[i]
|
||||||
s = Section.objects.create(report_id=report, auto_submit=section.auto_submit, required=section.required, completed=False, title=section.title, html_description=section.html_description, number=i)
|
s = Section.objects.create(report_id=report, auto_submit=section.auto_submit,
|
||||||
|
required=section.required, completed=False,
|
||||||
|
title=section.title, html_description=section.html_description,
|
||||||
|
number=i)
|
||||||
s.save()
|
s.save()
|
||||||
|
|
||||||
# Create the fields
|
# Create the fields
|
||||||
j = 0
|
j = 0
|
||||||
for key in section.fields:
|
for key in section.fields:
|
||||||
field = section.fields[key]
|
field = section.fields[key]
|
||||||
f = Field.objects.create(section_id=s, field_name=key, label=field['label'], number=j, type=field['type'], completed=False)
|
f = Field.objects.create(section_id=s, field_name=key, label=field['label'],
|
||||||
|
number=j, type=field['type'], completed=False)
|
||||||
f.save()
|
f.save()
|
||||||
j = j+1
|
j = j+1
|
||||||
|
|
||||||
|
@ -119,7 +100,7 @@ def report(request):
|
||||||
data = get_reports(report.id)
|
data = get_reports(report.id)
|
||||||
return JsonResponse(data)
|
return JsonResponse(data)
|
||||||
|
|
||||||
# List of reports
|
# View the list of reports
|
||||||
@api_view(['GET'])
|
@api_view(['GET'])
|
||||||
def reports(request):
|
def reports(request):
|
||||||
report_set = {"reports": []}
|
report_set = {"reports": []}
|
||||||
|
@ -139,21 +120,26 @@ def reports(request):
|
||||||
return JsonResponse(report_set)
|
return JsonResponse(report_set)
|
||||||
|
|
||||||
|
|
||||||
|
# actions for an individual report
|
||||||
@api_view(['GET', 'PUT', 'DELETE'])
|
@api_view(['GET', 'PUT', 'DELETE'])
|
||||||
def report_detail(request, report_pk):
|
def report_detail(request, report_pk):
|
||||||
|
# view the report
|
||||||
if request.method == 'GET':
|
if request.method == 'GET':
|
||||||
data = get_reports(report_pk)
|
data = get_reports(report_pk)
|
||||||
return JsonResponse(data)
|
return JsonResponse(data)
|
||||||
|
|
||||||
|
# submit the report
|
||||||
elif request.method == 'PUT':
|
elif request.method == 'PUT':
|
||||||
return JsonResponse({"message": "Report submitted."})
|
return JsonResponse({"message": "Report submitted."})
|
||||||
|
|
||||||
|
# Delete the report
|
||||||
elif request.method == 'DELETE':
|
elif request.method == 'DELETE':
|
||||||
return JsonResponse({"message": "Deleted report {0}.".format(report_pk)})
|
return JsonResponse({"message": "Deleted report {0}.".format(report_pk)})
|
||||||
|
|
||||||
|
|
||||||
|
# update a section with new data
|
||||||
@api_view(['PUT'])
|
@api_view(['PUT'])
|
||||||
def section(request, report_pk, section_pk):
|
def section(request, report_pk, section_pk):
|
||||||
'''
|
|
||||||
Update a section with new data.
|
|
||||||
'''
|
|
||||||
data = {
|
data = {
|
||||||
"message": "Updated report {0}, section {1}.".format(report_pk, section_pk),
|
"message": "Updated report {0}, section {1}.".format(report_pk, section_pk),
|
||||||
"fields": {
|
"fields": {
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 68 KiB |
BIN
back/uploads/2019/02/09/Supreme-logo-newyork-1920x1080.jpg
Normal file
BIN
back/uploads/2019/02/09/Supreme-logo-newyork-1920x1080.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 75 KiB |
Loading…
Reference in a new issue