From 768961e2bec92abffe2270d61f037af6ac3a175d Mon Sep 17 00:00:00 2001
From: Michael Olund
Date: Mon, 26 Oct 2020 10:44:19 -0700
Subject: [PATCH 1/4] eFiling hub json submission
---
edivorce/apps/core/efilinghub.py | 94 ++++++++++++++++++++++++--------
1 file changed, 71 insertions(+), 23 deletions(-)
diff --git a/edivorce/apps/core/efilinghub.py b/edivorce/apps/core/efilinghub.py
index f618c2aa..8f38ac0f 100644
--- a/edivorce/apps/core/efilinghub.py
+++ b/edivorce/apps/core/efilinghub.py
@@ -97,7 +97,8 @@ NJF_JSON_FORMAT = {
},
"dateOfMarriage": "",
"reasonForDivorce": "S",
- "act": "",
+ "childSupportAct": [],
+ "spouseSupportAct": "",
"ordersSought": []
}
@@ -267,6 +268,19 @@ class EFilingHub:
except:
return ''
+ def get_aliases(str):
+ aliases = []
+ names = json.loads(str)
+ for name in names:
+ if len(name) == 5 and name[1] != '' and name[2] != '':
+ alias = NJF_ALIAS_FORMAT.copy()
+ alias["surname"] = name[1]
+ alias["given1"] = name[2]
+ alias["given2"] = name[3]
+ alias["given3"] = name[4]
+ aliases.append(alias)
+ return aliases
+
r = responses
d = NJF_JSON_FORMAT.copy()
@@ -281,36 +295,70 @@ class EFilingHub:
signing_location_spouse = r.get('signing_location_spouse')
party1 = d["parties"][0]
- party1["surname"] = r.get('last_name_you', '').strip()
- party1["given1"] = r.get('given_name_1_you', '').strip()
- party1["given2"] = r.get('given_name_2_you', '').strip()
- party1["given3"] = r.get('given_name_3_you', '').strip()
+ party1["surname"] = r.get('last_name_you', '')
+ party1["given1"] = r.get('given_name_1_you', '')
+ party1["given2"] = r.get('given_name_2_you', '')
+ party1["given3"] = r.get('given_name_3_you', '')
party1["birthDate"] = format_date(r.get('birthday_you'))
- party1["surnameAtBirth"] = r.get('last_name_born_you', '').strip()
- party1["surnameBeforeMarriage"] = r.get('last_name_before_married_you', '').strip()
- email = r.get('email_you', '').strip()
+ party1["surnameAtBirth"] = r.get('last_name_born_you', '')
+ party1["surnameBeforeMarriage"] = r.get('last_name_before_married_you', '')
+ email = r.get('email_you', '')
if not email:
- email = r.get('address_to_send_official_document_email_you', '').strip()
+ email = r.get('address_to_send_official_document_email_you', '')
party1["email"] = email
party1["signingVirtually"] = signing_location_you == 'Virtual'
- party1["aliases"] = []
+ if r.get('any_other_name_you') == 'YES':
+ party1["aliases"] = get_aliases(r.get('other_name_you'))
party2 = d["parties"][1]
- party2["surname"] = r.get('last_name_spouse', '').strip()
- party2["given1"] = r.get('given_name_1_spouse', '').strip()
- party2["given2"] = r.get('given_name_2_spouse', '').strip()
- party2["given3"] = r.get('given_name_3_spouse', '').strip()
+ party2["surname"] = r.get('last_name_spouse', '')
+ party2["given1"] = r.get('given_name_1_spouse', '')
+ party2["given2"] = r.get('given_name_2_spouse', '')
+ party2["given3"] = r.get('given_name_3_spouse', '')
party2["birthDate"] = format_date(r.get('birthday_spouse'))
- party2["surnameAtBirth"] = r.get('last_name_born_spouse', '').strip()
- party2["surnameBeforeMarriage"] = r.get('last_name_before_married_spouse', '').strip()
- email = r.get('email_spouse', '').strip()
+ party2["surnameAtBirth"] = r.get('last_name_born_spouse', '')
+ party2["surnameBeforeMarriage"] = r.get('last_name_before_married_spouse', '')
+ email = r.get('email_spouse', '')
if not email:
- email = r.get('address_to_send_official_document_email_spouse', '').strip()
+ email = r.get('address_to_send_official_document_email_spouse', '')
party2["email"] = email
party2["signingVirtually"] = signing_location_spouse == 'Virtual'
- party2["aliases"] = []
+ if r.get('any_other_name_spouse') == 'YES':
+ party2["aliases"] = get_aliases(r.get('other_name_spouse'))
d["dateOfMarriage"] = format_date(r.get('when_were_you_married'))
+ d["placeOfMarriage"]["country"] = r.get('where_were_you_married_country', '')
+ d["placeOfMarriage"]["province"] = r.get('where_were_you_married_prov', '')
+ d["placeOfMarriage"]["city"] = r.get('where_were_you_married_city', '')
+
+ d["childSupportAct"] = json.loads(r.get('child_support_act', '[]'))
+ d["spouseSupportAct"] = r.get('spouse_support_act', '')
+
+ orders_sought = json.load(r.get('want_which_orders', '[]'))
+
+ if 'A legal end to the marriage' in orders_sought:
+ d["ordersSought"].append('DIV')
+
+ if 'Spousal support' in orders_sought:
+ d["ordersSought"].append('SSU')
+
+ if 'Division of property and debts' in orders_sought:
+ division = r.get('deal_with_property_debt', '')
+ if division == 'Equal division':
+ d["ordersSought"].append('DFA')
+ if division == 'Unequal division':
+ d["ordersSought"].append('RFA')
+ if re.sub(r'\W+', '', r.get('other_property_claims', '')) != '':
+ d["ordersSought"].append('PRO')
+
+ if 'Child support' in orders_sought:
+ d["ordersSought"].append('CSU')
+
+ if 'Other orders' in orders_sought:
+ if r.get('name_change_you') == 'YES' or r.get('name_change_spouse') == 'YES':
+ d["ordersSought"].append('NAM')
+ if re.sub(r'\W+', '', r.get('other_orders_detail ', '')) != '':
+ d["ordersSought"].append('OTH')
return d
@@ -348,19 +396,19 @@ class EFilingHub:
parties = []
party1 = PACKAGE_PARTY_FORMAT.copy()
- party1['firstName'] = responses.get('given_name_1_you', '').strip()
+ party1['firstName'] = responses.get('given_name_1_you', '')
party1['middleName'] = (responses.get('given_name_2_you', '') +
' ' +
responses.get('given_name_3_you', '')).strip()
- party1['lastName'] = responses.get('last_name_you', '').strip()
+ party1['lastName'] = responses.get('last_name_you', '')
parties.append(party1)
party2 = PACKAGE_PARTY_FORMAT.copy()
- party2['firstName'] = responses.get('given_name_1_spouse', '').strip()
+ party2['firstName'] = responses.get('given_name_1_spouse', '')
party2['middleName'] = (responses.get('given_name_2_spouse', '') +
' ' +
responses.get('given_name_3_spouse', '')).strip()
- party2['lastName'] = responses.get('last_name_spouse', '').strip()
+ party2['lastName'] = responses.get('last_name_spouse', '')
parties.append(party2)
return parties
From 172cc8ffe563865c48b35de0d1c4262959879396 Mon Sep 17 00:00:00 2001
From: Michael Olund
Date: Mon, 26 Oct 2020 11:36:37 -0700
Subject: [PATCH 2/4] Hooked up after_submit calls for efiling
---
edivorce/apps/core/efilinghub.py | 8 ++++---
edivorce/apps/core/urls.py | 2 ++
edivorce/apps/core/utils/cso_filing.py | 29 +++++++++++++++++++-------
edivorce/apps/core/views/efiling.py | 28 ++++++++++++++++++++++++-
4 files changed, 56 insertions(+), 11 deletions(-)
diff --git a/edivorce/apps/core/efilinghub.py b/edivorce/apps/core/efilinghub.py
index 8f38ac0f..ffd9dc20 100644
--- a/edivorce/apps/core/efilinghub.py
+++ b/edivorce/apps/core/efilinghub.py
@@ -230,16 +230,18 @@ class EFilingHub:
if parties:
package['filingPackage']['parties'] = parties
# update return urls
- package['navigationUrls']['success'] = request.build_absolute_uri(
- reverse('dashboard_nav', args=['check_with_registry']))
package['navigationUrls']['error'] = request.build_absolute_uri(
reverse('dashboard_nav', args=['check_with_registry']))
if self.initial_filing:
package['navigationUrls']['cancel'] = request.build_absolute_uri(
reverse('dashboard_nav', args=['initial_filing']))
+ package['navigationUrls']['success'] = request.build_absolute_uri(
+ reverse('after_submit_initial_files'))
else:
package['navigationUrls']['cancel'] = request.build_absolute_uri(
reverse('dashboard_nav', args=['final_filing']))
+ package['navigationUrls']['success'] = request.build_absolute_uri(
+ reverse('after_submit_final_files'))
return package
@@ -334,7 +336,7 @@ class EFilingHub:
d["childSupportAct"] = json.loads(r.get('child_support_act', '[]'))
d["spouseSupportAct"] = r.get('spouse_support_act', '')
- orders_sought = json.load(r.get('want_which_orders', '[]'))
+ orders_sought = json.loads(r.get('want_which_orders', '[]'))
if 'A legal end to the marriage' in orders_sought:
d["ordersSought"].append('DIV')
diff --git a/edivorce/apps/core/urls.py b/edivorce/apps/core/urls.py
index fb749177..e566956c 100644
--- a/edivorce/apps/core/urls.py
+++ b/edivorce/apps/core/urls.py
@@ -23,6 +23,8 @@ urlpatterns = [
url(r'^dashboard/(?P.*)', main.dashboard_nav, name="dashboard_nav"),
path('submit/initial', efiling.submit_initial_files, name="submit_initial_files"),
path('submit/final', efiling.submit_final_files, name="submit_final_files"),
+ path('after-submit/initial', efiling.after_submit_initial_files, name="after_submit_initial_files"),
+ path('after-submit/final', efiling.after_submit_final_files, name="after_submit_final_files"),
url(r'^health$', system.health),
url(r'^legal$', main.legal, name="legal"),
url(r'^acknowledgements$', main.acknowledgements, name="acknowledgements"),
diff --git a/edivorce/apps/core/utils/cso_filing.py b/edivorce/apps/core/utils/cso_filing.py
index 5e87620b..a9f165df 100644
--- a/edivorce/apps/core/utils/cso_filing.py
+++ b/edivorce/apps/core/utils/cso_filing.py
@@ -12,7 +12,8 @@ def file_documents(request, responses, initial=False):
(uploaded, generated) = forms_to_file(responses, initial)
missing_forms = []
for form in uploaded:
- docs = Document.objects.filter(bceid_user=user, doc_type=form['doc_type'], party_code=form.get('party_code', 0))
+ 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']])
@@ -25,11 +26,20 @@ def file_documents(request, responses, initial=False):
location = hub.get_location(responses)
parties = hub.get_parties(responses)
- redirect_url, msg = hub.upload(request, post_files, documents, parties, location)
+ redirect_url, msg = hub.upload(request, post_files, documents, parties, location)
if redirect_url:
return None, redirect_url
+ if msg:
+ return msg, None
+
+ return None, None
+
+
+def after_file_documents(request, responses, initial=False):
+ user = request.user
+
# Save dummy data for now. Eventually replace with data from CSO
prefix = 'initial' if initial else 'final'
_save_response(user, f'{prefix}_filing_submitted', True)
@@ -71,14 +81,19 @@ def forms_to_file(responses_dict, initial=False):
how_to_file = responses_dict.get('how_to_file')
how_to_sign = responses_dict.get('how_to_sign')
- signing_location_both = responses_dict.get('signing_location') if how_to_sign == 'Together' else None
- signing_location_you = responses_dict.get('signing_location_you') if how_to_sign == 'Separately' else None
- signing_location_spouse = responses_dict.get('signing_location_spouse') if how_to_sign == 'Separately' else None
+ signing_location_both = responses_dict.get(
+ 'signing_location') if how_to_sign == 'Together' else None
+ signing_location_you = responses_dict.get(
+ 'signing_location_you') if how_to_sign == 'Separately' else None
+ signing_location_spouse = responses_dict.get(
+ 'signing_location_spouse') if how_to_sign == 'Separately' else None
derived = responses_dict.get('derived', get_derived_data(responses_dict))
- name_change_you = derived['wants_other_orders'] and responses_dict.get('name_change_you') == 'YES'
- name_change_spouse = derived['wants_other_orders'] and responses_dict.get('name_change_spouse') == 'YES'
+ name_change_you = derived['wants_other_orders'] and responses_dict.get(
+ 'name_change_you') == 'YES'
+ name_change_spouse = derived['wants_other_orders'] and responses_dict.get(
+ 'name_change_spouse') == 'YES'
has_children = derived['has_children_of_marriage']
provide_marriage_certificate = responses_dict.get('original_marriage_certificate') == 'YES'
diff --git a/edivorce/apps/core/views/efiling.py b/edivorce/apps/core/views/efiling.py
index 30b3231b..ee64488c 100644
--- a/edivorce/apps/core/views/efiling.py
+++ b/edivorce/apps/core/views/efiling.py
@@ -4,7 +4,7 @@ from django.urls import reverse
from django.contrib.auth.decorators import login_required
from ..decorators import prequal_completed
-from ..utils.cso_filing import file_documents
+from ..utils.cso_filing import file_documents, after_file_documents
from ..utils.user_response import get_data_for_user
@@ -41,3 +41,29 @@ def _submit_files(request, initial=False):
responses_dict['active_page'] = next_page
return redirect(reverse('dashboard_nav', kwargs={'nav_step': next_page}), context=responses_dict)
+
+
+@login_required
+@prequal_completed
+def after_submit_initial_files(request):
+ return _after_submit_files(request, initial=True)
+
+
+@login_required
+@prequal_completed
+def after_submit_final_files(request):
+ return _after_submit_files(request, initial=False)
+
+
+def _after_submit_files(request, initial=False):
+ responses_dict = get_data_for_user(request.user)
+ if initial:
+ next_page = 'wait_for_number'
+ else:
+ next_page = 'next_steps'
+
+ after_file_documents(request, responses_dict, initial=initial)
+
+ responses_dict['active_page'] = next_page
+
+ return redirect(reverse('dashboard_nav', kwargs={'nav_step': next_page}), context=responses_dict)
From 69513b99f992a27cbbbd196540da30e1ba7bc383 Mon Sep 17 00:00:00 2001
From: Michael Olund
Date: Mon, 26 Oct 2020 11:42:25 -0700
Subject: [PATCH 3/4] Removed unused parameter and undid automatic code
formatting
---
edivorce/apps/core/utils/cso_filing.py | 17 ++++++-----------
edivorce/apps/core/views/efiling.py | 2 +-
2 files changed, 7 insertions(+), 12 deletions(-)
diff --git a/edivorce/apps/core/utils/cso_filing.py b/edivorce/apps/core/utils/cso_filing.py
index a9f165df..6a9d8371 100644
--- a/edivorce/apps/core/utils/cso_filing.py
+++ b/edivorce/apps/core/utils/cso_filing.py
@@ -37,7 +37,7 @@ def file_documents(request, responses, initial=False):
return None, None
-def after_file_documents(request, responses, initial=False):
+def after_file_documents(request, initial=False):
user = request.user
# Save dummy data for now. Eventually replace with data from CSO
@@ -81,19 +81,14 @@ def forms_to_file(responses_dict, initial=False):
how_to_file = responses_dict.get('how_to_file')
how_to_sign = responses_dict.get('how_to_sign')
- signing_location_both = responses_dict.get(
- 'signing_location') if how_to_sign == 'Together' else None
- signing_location_you = responses_dict.get(
- 'signing_location_you') if how_to_sign == 'Separately' else None
- signing_location_spouse = responses_dict.get(
- 'signing_location_spouse') if how_to_sign == 'Separately' else None
+ signing_location_both = responses_dict.get('signing_location') if how_to_sign == 'Together' else None
+ signing_location_you = responses_dict.get('signing_location_you') if how_to_sign == 'Separately' else None
+ signing_location_spouse = responses_dict.get('signing_location_spouse') if how_to_sign == 'Separately' else None
derived = responses_dict.get('derived', get_derived_data(responses_dict))
- name_change_you = derived['wants_other_orders'] and responses_dict.get(
- 'name_change_you') == 'YES'
- name_change_spouse = derived['wants_other_orders'] and responses_dict.get(
- 'name_change_spouse') == 'YES'
+ name_change_you = derived['wants_other_orders'] and responses_dict.get('name_change_you') == 'YES'
+ name_change_spouse = derived['wants_other_orders'] and responses_dict.get('name_change_spouse') == 'YES'
has_children = derived['has_children_of_marriage']
provide_marriage_certificate = responses_dict.get('original_marriage_certificate') == 'YES'
diff --git a/edivorce/apps/core/views/efiling.py b/edivorce/apps/core/views/efiling.py
index ee64488c..d5554f39 100644
--- a/edivorce/apps/core/views/efiling.py
+++ b/edivorce/apps/core/views/efiling.py
@@ -62,7 +62,7 @@ def _after_submit_files(request, initial=False):
else:
next_page = 'next_steps'
- after_file_documents(request, responses_dict, initial=initial)
+ after_file_documents(request, initial=initial)
responses_dict['active_page'] = next_page
From 7cd3425252f38fea3543411e48d3e4c6a61e3357 Mon Sep 17 00:00:00 2001
From: Michael Olund
Date: Mon, 26 Oct 2020 12:13:02 -0700
Subject: [PATCH 4/4] Fixed link checker bugs
---
edivorce/apps/core/management/commands/link_check.py | 2 +-
edivorce/apps/core/templates/legal.html | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/edivorce/apps/core/management/commands/link_check.py b/edivorce/apps/core/management/commands/link_check.py
index 6d8dcebe..86e718ee 100644
--- a/edivorce/apps/core/management/commands/link_check.py
+++ b/edivorce/apps/core/management/commands/link_check.py
@@ -35,7 +35,7 @@ class Command(BaseCommand):
if link is None:
continue
if link['href'].startswith('http'):
- filename = str(file_path.name)
+ filename = str(fs.name)
status = self._check_link(link['href'])
if status:
diff --git a/edivorce/apps/core/templates/legal.html b/edivorce/apps/core/templates/legal.html
index 7baa5702..4abe97dd 100644
--- a/edivorce/apps/core/templates/legal.html
+++ b/edivorce/apps/core/templates/legal.html
@@ -67,7 +67,7 @@
If you think you will want legal help for only part of your separation or divorce, you can look for a lawyer that
- offers “unbundled” services. The
+ offers “unbundled” services. The
BC Family Law Unbundling Roster (HelpMap)
is a list of legal professionals near you who offer unbundled services. Many also offer their services remotely,
through telephone, webconferencing or other tools.