Browse Source

Update backend to return errors for the current page (e.g. name_spouse_error=True)

pull/160/head
ariannedee 5 years ago
parent
commit
5ad2caad2f
2 changed files with 22 additions and 7 deletions
  1. +17
    -4
      edivorce/apps/core/utils/user_response.py
  2. +5
    -3
      edivorce/apps/core/views/main.py

+ 17
- 4
edivorce/apps/core/utils/user_response.py View File

@ -4,16 +4,29 @@ from edivorce.apps.core.utils.step_completeness import evaluate_numeric_conditio
from collections import OrderedDict
def get_responses_from_db(bceid_user):
""" Get UserResponses from the database for a user. """
def get_responses_from_db(bceid_user, step_errors=None):
""" Get UserResponses from the database for a user."""
married, married_questions, responses = __get_data(bceid_user)
responses_dict = {}
for answer in responses:
if not married and answer.question_id in married_questions:
responses_dict[answer.question.key] = ''
else:
elif answer.value.strip('[').strip(']'):
responses_dict[answer.question.key] = answer.value
if step_errors:
step_questions = question_step_mapping.get(step_errors, [])
questions = Question.objects.filter(key__in=step_questions)
for question in questions:
if responses_dict.get(question.key):
error = False
elif question.required == 'Required':
error = True
elif question.required == 'Conditional':
conditional_response = UserResponse.objects.filter(question=question.conditional_target).first()
error = conditional_response and conditional_response.value == question.reveal_response
else:
error = False
responses_dict[f'{question.key}_error'] = error
return responses_dict


+ 5
- 3
edivorce/apps/core/views/main.py View File

@ -40,7 +40,7 @@ def prequalification(request, step):
if not request.user.is_authenticated:
responses_dict = get_responses_from_session(request)
else:
responses_dict = get_responses_from_db(request.user)
responses_dict = get_responses_from_db(request.user, 'prequalification')
responses_dict['active_page'] = 'prequalification'
responses_by_step = get_responses_from_db_grouped_by_steps(request.user)
responses_dict['step_status'] = get_step_status(responses_by_step)
@ -191,8 +191,10 @@ def question(request, step, sub_step=None):
if step == "review":
responses_dict = responses_dict_by_step
derived = get_derived_data(get_responses_from_db(request.user))
else:
responses_dict = get_responses_from_db(request.user)
responses_dict = get_responses_from_db(request.user, step)
derived = get_derived_data(responses_dict)
# Add step status dictionary
responses_dict['step_status'] = get_step_status(responses_dict_by_step)
@ -203,7 +205,7 @@ def question(request, step, sub_step=None):
responses_dict['registries'] = sorted(list_of_registries)
responses_dict['sub_step'] = sub_step
responses_dict['derived'] = get_derived_data(get_responses_from_db(request.user))
responses_dict['derived'] = derived
return render(request, template_name=template, context=responses_dict)


Loading…
Cancel
Save