optimized "check_section" function to invoke field.completed boolean
This commit is contained in:
parent
e48a67b988
commit
6bc9171e7e
1 changed files with 23 additions and 46 deletions
|
@ -71,6 +71,7 @@ def get_fields(s_id):
|
|||
# function that gets the corresponding datatype
|
||||
value = Field.get_datatype(i)
|
||||
data = {
|
||||
"completed": i.completed,
|
||||
"field_name": i.field_name,
|
||||
"label": i.label,
|
||||
"field_type": i.field_type,
|
||||
|
@ -192,6 +193,7 @@ def section(request, report_pk, section_pk):
|
|||
update.data_bool = True
|
||||
elif request.data[key] == "false":
|
||||
update.data_bool = False
|
||||
update.completed = True
|
||||
|
||||
if update.field_type == "decimal":
|
||||
# initialize to 0
|
||||
|
@ -201,6 +203,7 @@ def section(request, report_pk, section_pk):
|
|||
):
|
||||
update.data_decimal = 0.0
|
||||
else:
|
||||
update.completed = True
|
||||
update.data_decimal = request.data[key]
|
||||
|
||||
if update.field_type == "date":
|
||||
|
@ -211,14 +214,26 @@ def section(request, report_pk, section_pk):
|
|||
):
|
||||
update.data_date = None
|
||||
else:
|
||||
update.completed = True
|
||||
update.data_date = request.data[key]
|
||||
|
||||
if update.field_type == "file":
|
||||
if not(
|
||||
request.data[key] == "" or
|
||||
request.data[key] is None
|
||||
):
|
||||
update.completed = True
|
||||
update.data_file = request.data[key]
|
||||
|
||||
if update.field_type == "string":
|
||||
if not(
|
||||
request.data[key] == "" or
|
||||
request.data[key] is None
|
||||
):
|
||||
update.completed = True
|
||||
update.data_string = request.data[key]
|
||||
|
||||
|
||||
if update.field_type == "integer":
|
||||
# initialize to 0
|
||||
if (
|
||||
|
@ -227,6 +242,7 @@ def section(request, report_pk, section_pk):
|
|||
):
|
||||
update.data_integer = 0
|
||||
else:
|
||||
update.completed = True
|
||||
update.data_integer = request.data[key]
|
||||
|
||||
update.save()
|
||||
|
@ -247,52 +263,13 @@ def section(request, report_pk, section_pk):
|
|||
}
|
||||
return JsonResponse(data)
|
||||
|
||||
# function checks if a field is filled and
|
||||
# returns boolean accordingly
|
||||
# function checks if a field is complete
|
||||
def section_complete(section_pk):
|
||||
# grab field set
|
||||
check_fields = Field.objects.filter(section_id=section_pk)
|
||||
|
||||
# return true if any field is filled
|
||||
# return true if any field is complete
|
||||
for i in check_fields:
|
||||
if i.field_type == "boolean":
|
||||
if not(
|
||||
i.data_bool == "" or
|
||||
i.data_bool is None
|
||||
):
|
||||
if i.completed:
|
||||
return True
|
||||
elif i.field_type == "decimal":
|
||||
if not(
|
||||
i.data_decimal == 0.0 or
|
||||
i.data_decimal == "" or
|
||||
i.data_decimal is None
|
||||
):
|
||||
return True
|
||||
elif i.field_type == "date":
|
||||
if not(
|
||||
i.data_date == "" or
|
||||
i.data_date is None
|
||||
):
|
||||
return True
|
||||
elif i.field_type == "file":
|
||||
if not(
|
||||
i.data_file == "" or
|
||||
i.data_file is None
|
||||
):
|
||||
return True
|
||||
elif i.field_type == "string":
|
||||
if not(
|
||||
i.data_string == "" or
|
||||
i.data_string is None
|
||||
):
|
||||
return True
|
||||
elif i.field_type == "integer":
|
||||
if not(
|
||||
i.data_integer == 0 or
|
||||
i.data_integer == "" or
|
||||
i.data_integer is None
|
||||
):
|
||||
return True
|
||||
|
||||
# return false if no field is filled
|
||||
return False
|
Loading…
Reference in a new issue