From f2f1a3399b58752a3680db3b7b4b73be498da5cf Mon Sep 17 00:00:00 2001 From: Preston Doman Date: Thu, 14 Feb 2019 14:17:25 -0800 Subject: [PATCH] Change checkbox to boolean select menu --- back/backend/views.py | 7 ++----- front/static/js/viewHistory.js | 34 ++++++++++++++++++---------------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/back/backend/views.py b/back/backend/views.py index 04fc6dd..f2a909c 100644 --- a/back/backend/views.py +++ b/back/backend/views.py @@ -162,13 +162,10 @@ def section(request, report_pk, section_pk): if update.field_type == "boolean": # flight check - if request.data[key] == "on": + if request.data[key] == "true": update.data_bool = True - elif request.data[key] == "off": + elif request.data[key] == "false": update.data_bool = False - # everything else - else: - update.data_bool = request.data[key] if update.field_type == "decimal": # initialize to 0 diff --git a/front/static/js/viewHistory.js b/front/static/js/viewHistory.js index 99bcca7..9905411 100644 --- a/front/static/js/viewHistory.js +++ b/front/static/js/viewHistory.js @@ -74,22 +74,24 @@ function createFormGroup(field) { switch(field.field_type) { case "boolean": - input.type = "checkbox"; - if (field.value === true) - input.setAttribute("checked", "checked"); - input.classList.add("form-check-input"); - label.className = ""; - label.classList.add("form-check-label"); - label.innerHTML = field.label; - outerLabel = document.createElement("div"); - outerLabel.classList.add("col-sm-4"); - outerLabel.innerHTML = "Flight type: "; - formCheck = document.createElement("div"); - formCheck.classList.add("form-check"); - formCheck.appendChild(input); - formCheck.appendChild(label); - div.appendChild(formCheck); - formGroup.appendChild(outerLabel); + const select = document.createElement("select"); + select.name = field.field_name; + select.classList.add("form-control"); + const yesOption = document.createElement("option"); + yesOption.innerHTML = "Yes"; + yesOption.value = "true"; + const noOption = document.createElement("option"); + noOption.innerHTML = "No"; + noOption.value = "false"; + if (field.value === true) { + yesOption.setAttribute("selected", "selected"); + } else { + noOption.setAttribute("selected", "selected"); + } + select.appendChild(yesOption); + select.appendChild(noOption); + formGroup.appendChild(label); + div.appendChild(select) formGroup.appendChild(div); break; case "date":