successfully updates all fields given front end data. PENDING
1) need to tweak DB to accommodate NULL dates 2) insert file logic
This commit is contained in:
parent
75932daef1
commit
ff3923d367
1 changed files with 51 additions and 20 deletions
|
@ -155,28 +155,59 @@ def report_detail(request, report_pk):
|
||||||
# update a section with new data
|
# 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):
|
||||||
# first enter sections
|
|
||||||
for s in request.data["sections"]:
|
|
||||||
# check for match
|
|
||||||
if s["id"] == section_pk:
|
|
||||||
# begin updating fields
|
|
||||||
for v in s["fields"]:
|
|
||||||
update_field = Field.objects.get(id=v["id"])
|
|
||||||
|
|
||||||
if v["type"] == "boolean":
|
for key in request.data:
|
||||||
update_field.data_bool = v["value"]
|
update_field = Field.objects.get(section_id=section_pk, field_name=key)
|
||||||
if v["type"] == "decimal":
|
|
||||||
update_field.data_decimal = v["value"]
|
if update_field.type == "boolean":
|
||||||
if v["type"] == "date":
|
# flight check
|
||||||
update_field.data_date = v["value"]
|
if request.data[key] == "on":
|
||||||
if v["type"] == "file":
|
update_field.data_bool = True
|
||||||
update_field.data_file = v["value"]
|
elif request.data[key] == "off":
|
||||||
if v["type"] == "string":
|
update_field.data_bool = False
|
||||||
update_field.data_string = v["value"]
|
# everything else
|
||||||
if v["type"] == "integer":
|
else:
|
||||||
update_field.data_integer = v["value"]
|
update_field.data_bool = request.data[key]
|
||||||
|
|
||||||
|
if update_field.type == "decimal":
|
||||||
|
# initialize to 0
|
||||||
|
if (
|
||||||
|
request.data[key] == "" or
|
||||||
|
request.data[key] is None
|
||||||
|
):
|
||||||
|
update_field.data_decimal = 0.0
|
||||||
|
else:
|
||||||
|
update_field.data_decimal = request.data[key]
|
||||||
|
|
||||||
|
if update_field.type == "date":
|
||||||
|
# initialize to today's date
|
||||||
|
if (
|
||||||
|
request.data[key] == "" or
|
||||||
|
request.data[key] is None
|
||||||
|
):
|
||||||
|
update_field.data_date = datetime.date.today()
|
||||||
|
# update_field.data_date = None
|
||||||
|
else:
|
||||||
|
update_field.data_date = request.data[key]
|
||||||
|
|
||||||
|
if update_field.type == "file":
|
||||||
|
update_field.data_file = request.data[key]
|
||||||
|
|
||||||
|
if update_field.type == "string":
|
||||||
|
update_field.data_string = request.data[key]
|
||||||
|
|
||||||
|
if update_field.type == "integer":
|
||||||
|
# initialize to 0
|
||||||
|
if (
|
||||||
|
request.data[key] == "" or
|
||||||
|
request.data[key] is None
|
||||||
|
):
|
||||||
|
update_field.data_integer = 0
|
||||||
|
else:
|
||||||
|
update_field.data_integer = request.data[key]
|
||||||
|
|
||||||
|
update_field.save()
|
||||||
|
|
||||||
update_field.save()
|
|
||||||
data = {
|
data = {
|
||||||
"message": "Updated report {0}, section {1}.".format(report_pk, section_pk),
|
"message": "Updated report {0}, section {1}.".format(report_pk, section_pk),
|
||||||
"request.data": request.data
|
"request.data": request.data
|
||||||
|
|
Loading…
Reference in a new issue