From b2e0f671c3ae71b3e286e06a1b35507a164054ea Mon Sep 17 00:00:00 2001 From: ariannedee Date: Fri, 23 Oct 2020 17:12:55 -0700 Subject: [PATCH] Add more errors handled --- edivorce/apps/core/utils/cso_filing.py | 28 +++++++++++++++++++------- edivorce/apps/core/views/main.py | 8 ++++---- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/edivorce/apps/core/utils/cso_filing.py b/edivorce/apps/core/utils/cso_filing.py index de99abc6..317e293b 100644 --- a/edivorce/apps/core/utils/cso_filing.py +++ b/edivorce/apps/core/utils/cso_filing.py @@ -8,15 +8,22 @@ from edivorce.apps.core.utils.derived import get_derived_data def file_documents(user, responses, initial=False): - (forms, _) = forms_to_file(responses, initial) - missing_forms = [] - for form in forms: + errors = [] + if not initial: + user_has_submitted_initial = _get_response(user, 'initial_filing_submitted') + if not user_has_submitted_initial: + errors.append("You must file the initial filing first before submitting the final filing.") + court_file_number = _get_response(user, 'court_file_number') + if not court_file_number: + errors.append("You must input your Court File Number") + uploaded_forms, _ = forms_to_file(responses, initial) + for form in uploaded_forms: docs = Document.objects.filter(bceid_user=user, doc_type=form['doc_type'], party_code=form.get('party_code', 0)) if docs.count() == 0: - missing_forms.append(Document.form_types[form['doc_type']]) + errors.append(f"Missing documents for {Document.form_types[form['doc_type']]}") - if missing_forms: - return missing_forms + if errors: + return errors # Save dummy data for now. Eventually replace with data from CSO prefix = 'initial' if initial else 'final' @@ -53,6 +60,12 @@ def _save_response(user, question, value): response.save() +def _get_response(user, question): + response = UserResponse.objects.filter(bceid_user=user, question_id=question).first() + if response: + return response.value + + def forms_to_file(responses_dict, initial=False): generated = [] uploaded = [] @@ -141,7 +154,8 @@ def forms_to_file(responses_dict, initial=False): uploaded.append({'doc_type': 'OFI', 'party_code': 0}) uploaded.append({'doc_type': 'EFSS', 'party_code': 1}) uploaded.append({'doc_type': 'EFSS', 'party_code': 2}) - uploaded.append({'doc_type': 'AII', 'party_code': 0}) + if has_children: + uploaded.append({'doc_type': 'AAI', 'party_code': 0}) if name_change_you: uploaded.append({'doc_type': 'NCV', 'party_code': 1}) if name_change_spouse: diff --git a/edivorce/apps/core/views/main.py b/edivorce/apps/core/views/main.py index 3565a0a0..14cc384b 100644 --- a/edivorce/apps/core/views/main.py +++ b/edivorce/apps/core/views/main.py @@ -238,11 +238,11 @@ def _submit_files(request, initial=False): else: original_step = 'final_filing' next_page = 'next_steps' - missing_forms = file_documents(request.user, responses_dict, initial=initial) - if missing_forms: + errors = file_documents(request.user, responses_dict, initial=initial) + if errors: next_page = original_step - for form_name in missing_forms: - messages.add_message(request, messages.ERROR, f'Missing documents for {form_name}') + for error in errors: + messages.add_message(request, messages.ERROR, error) responses_dict['active_page'] = next_page return redirect(reverse('dashboard_nav', kwargs={'nav_step': next_page}), context=responses_dict) responses_dict['active_page'] = next_page