Browse Source

Re-arranged efilng code

pull/172/head
Michael Olund 5 years ago
parent
commit
87c3310b0d
9 changed files with 304 additions and 286 deletions
  1. +9
    -7
      edivorce/apps/core/tests/test_efiling_hub.py
  2. +1
    -1
      edivorce/apps/core/tests/test_filing.py
  3. +0
    -105
      edivorce/apps/core/utils/efiling_documents.py
  4. +2
    -165
      edivorce/apps/core/utils/efiling_packaging.py
  5. +178
    -0
      edivorce/apps/core/utils/efiling_submission.py
  6. +108
    -3
      edivorce/apps/core/views/efiling.py
  7. +1
    -1
      edivorce/apps/core/views/main.py
  8. +1
    -1
      edivorce/apps/poc/urls.py
  9. +4
    -3
      edivorce/apps/poc/views.py

+ 9
- 7
edivorce/apps/core/tests/test_efiling_hub.py View File

@ -7,7 +7,8 @@ from django.test import TransactionTestCase
from django.test.client import RequestFactory
from django.core.files.uploadedfile import SimpleUploadedFile
from edivorce.apps.core.efilinghub import EFilingHub, PACKAGE_PARTY_FORMAT, PACKAGE_DOCUMENT_FORMAT
from edivorce.apps.core.utils.efiling_submission import EFilingSubmission
from edivorce.apps.core.utils.efiling_packaging import EFilingPackaging, PACKAGE_PARTY_FORMAT, PACKAGE_DOCUMENT_FORMAT
SAMPLE_TOKEN_RESPONSE = {
"access_token": "klkadlfjadsfkj",
@ -36,7 +37,7 @@ GENERATE_URL_RESPONSE_ERROR = {
}
class EFilingHubTests(TransactionTestCase):
class EFilingSubmissionTests(TransactionTestCase):
def setUp(self):
# Every test needs access to the request factory.
@ -47,7 +48,8 @@ class EFilingHubTests(TransactionTestCase):
middleware.process_request(self.request)
self.request.session.save()
self.hub = EFilingHub(initial_filing=True)
self.hub = EFilingSubmission(initial_filing=True)
self.packaging = EFilingPackaging(initial_filing=True)
def _mock_response(self, status=200, text="Text", json_data=None, raise_for_status=None):
mock_resp = mock.Mock()
@ -192,7 +194,7 @@ class EFilingHubTests(TransactionTestCase):
parties.append(party)
location = '6011'
package = self.hub._format_package(self.request, files, documents, parties, location)
package = self.packaging.format_package(self.request, files, documents, parties, location)
self.assertTrue(package)
self.assertEqual(package['filingPackage']['documents'][0]['name'], 'form_0.pdf')
@ -205,7 +207,7 @@ class EFilingHubTests(TransactionTestCase):
with self.assertRaises(PermissionDenied):
redirect, msg = self.hub.upload(self.request, None)
@mock.patch('edivorce.apps.core.efilinghub.EFilingHub._get_api')
@mock.patch('edivorce.apps.core.utils.efiling_submission.EFilingSubmission._get_api')
def test_upload_success(self, mock_get_api):
self.request.session['bcgov_userguid'] = '70fc9ce1-0cd6-4170-b842-bbabb88452a9'
with self.settings(DEPLOYMENT_TYPE='prod'):
@ -219,7 +221,7 @@ class EFilingHubTests(TransactionTestCase):
self.assertEqual(redirect, GENERATE_URL_RESPONSE['efilingUrl'])
self.assertEqual(msg, 'success')
@mock.patch('edivorce.apps.core.efilinghub.EFilingHub._get_api')
@mock.patch('edivorce.apps.core.utils.efiling_submission.EFilingSubmission._get_api')
def test_upload_failed_initial_upload(self, mock_get_api):
self.request.session['bcgov_userguid'] = '70fc9ce1-0cd6-4170-b842-bbabb88452a9'
with self.settings(DEPLOYMENT_TYPE='prod'):
@ -231,7 +233,7 @@ class EFilingHubTests(TransactionTestCase):
self.assertFalse(redirect)
@mock.patch('edivorce.apps.core.efilinghub.EFilingHub._get_api')
@mock.patch('edivorce.apps.core.utils.efiling_submission.EFilingSubmission._get_api')
def test_upload_failed_generate_url(self, mock_get_api):
self.request.session['bcgov_userguid'] = '70fc9ce1-0cd6-4170-b842-bbabb88452a9'
with self.settings(DEPLOYMENT_TYPE='prod'):


+ 1
- 1
edivorce/apps/core/tests/test_filing.py View File

@ -1,7 +1,7 @@
from django.test import TestCase
from edivorce.apps.core.models import BceidUser, Document, UserResponse
from edivorce.apps.core.utils.cso_filing import forms_to_file
from edivorce.apps.core.utils.efiling_documents import forms_to_file
from edivorce.apps.core.utils.user_response import get_data_for_user


edivorce/apps/core/utils/cso_filing.py → edivorce/apps/core/utils/efiling_documents.py View File

@ -1,111 +1,6 @@
import base64
import random
from django.conf import settings
from edivorce.apps.core.efilinghub import EFilingHub
from edivorce.apps.core.models import Document, UserResponse
from edivorce.apps.core.utils.derived import get_derived_data
def file_documents(request, responses, initial=False):
user = request.user
errors = []
if not initial:
user_has_submitted_initial = _get_response(user, 'initial_filing_submitted') == 'True'
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, generated = forms_to_file(responses, initial)
for form in uploaded:
docs = Document.objects.filter(
bceid_user=user, doc_type=form['doc_type'], party_code=form.get('party_code', 0))
if docs.count() == 0:
errors.append(f"Missing documents for {Document.form_types[form['doc_type']]}")
if errors:
return errors, None
if not settings.EFILING_HUB_ENABLED:
return after_file_documents(request, initial)
hub = EFilingHub(initial_filing=initial)
post_files, documents = hub.get_files(request, responses, uploaded, generated)
location = hub.get_location(responses)
parties = hub.get_parties(responses)
redirect_url, msg = hub.upload(request, post_files, documents, parties, location)
if msg != 'success':
errors.append(msg)
return errors, None
if redirect_url:
return None, redirect_url
return None, None
def after_file_documents(request, 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')
if not initial:
_save_response(user, f'final_filing_status', 'Submitted')
if settings.EFILING_HUB_ENABLED:
package_number = ''
base64_message = request.GET.get('packageRef', '')
base64_bytes = base64_message.encode('ascii')
message_bytes = base64.b64decode(base64_bytes)
message = message_bytes.decode('ascii')
parts = message.split('=')
if len(parts) == 2:
package_number = parts[1]
if not settings.EFILING_HUB_ENABLED:
package_number_parts = []
for _ in range(3):
num = ''
for _ in range(3):
num += str(random.randint(0, 9))
package_number_parts.append(num)
package_number = '-'.join(package_number_parts)
_save_response(user, f'{prefix}_filing_package_number', package_number)
if settings.DEPLOYMENT_TYPE == 'localdev':
base_url = 'https://dev.justice.gov.bc.ca'
else:
base_url = settings.PROXY_BASE_URL
receipt_link = base_url + '/cso/filing/status/viewDocument.do?actionType=viewReceipt&packageNo=' + package_number
_save_response(user, f'{prefix}_filing_receipt_link', receipt_link)
package_link = base_url + '/cso/accounts/bceidNotification.do?packageNo=' + package_number
_save_response(user, f'{prefix}_filing_package_link', package_link)
return None, None
def _save_response(user, question, value):
response, _ = UserResponse.objects.get_or_create(bceid_user=user, question_id=question)
response.value = 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 = []

edivorce/apps/core/efilinghub.py → edivorce/apps/core/utils/efiling_packaging.py View File

@ -3,11 +3,8 @@ import hashlib
import json
import logging
import re
import requests
import uuid
from django.conf import settings
from django.core.exceptions import PermissionDenied
from django.urls import reverse
from edivorce.apps.core.models import Document
@ -103,127 +100,12 @@ NJF_JSON_FORMAT = {
}
class EFilingHub:
class EFilingPackaging:
def __init__(self, initial_filing):
self.client_id = settings.EFILING_HUB_CLIENT_ID
self.client_secret = settings.EFILING_HUB_CLIENT_SECRET
self.token_base_url = settings.EFILING_HUB_TOKEN_BASE_URL
self.token_realm = settings.EFILING_HUB_REALM
self.api_base_url = settings.EFILING_HUB_API_BASE_URL
self.submission_id = None
self.initial_filing = initial_filing
def _get_token(self, request):
payload = f'client_id={self.client_id}&grant_type=client_credentials&client_secret={self.client_secret}'
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
url = f'{self.token_base_url}/auth/realms/{self.token_realm}/protocol/openid-connect/token'
response = requests.post(url, headers=headers, data=payload)
logging.debug(f'EFH - Get Token {response.status_code}')
if response.status_code == 200:
response = json.loads(response.text)
# save in session .. lets just assume that current user is authenticated
if 'access_token' in response:
request.session['access_token'] = response['access_token']
if 'refresh_token' in response:
request.session['refresh_token'] = response['refresh_token']
return True
return False
def _refresh_token(self, request):
refresh_token = request.session.get('refresh_token', None)
if not refresh_token:
return False
payload = f'client_id={self.client_id}&grant_type=refresh_token&client_secret={self.client_secret}&refresh_token={refresh_token}'
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
url = f'{self.token_base_url}/auth/realms/{self.token_realm}/protocol/openid-connect/token'
response = requests.post(url, headers=headers, data=payload)
logging.debug(f'EFH - Get Refresh Token {response.status_code}')
response = json.loads(response.text)
# save in session .. lets just assume that current user is authenticated
if 'access_token' in response:
request.session['access_token'] = response['access_token']
if 'refresh_token' in response:
request.session['refresh_token'] = response['refresh_token']
return True
return False
def _get_api(self, request, url, transaction_id, bce_id, headers, data=None, files=None):
# make sure we have a session
access_token = request.session.get('access_token', None)
if not access_token:
if not self._get_token(request):
raise Exception('EFH - Unable to get API Token')
access_token = request.session.get('access_token', None)
headers.update({
'X-Transaction-Id': transaction_id,
'X-User-Id': bce_id,
'Authorization': f'Bearer {access_token}'
})
if not data:
data = {}
response = requests.post(url, headers=headers, data=data, files=files)
logging.debug(f'EFH - Get API {response.status_code} {response.text}')
if response.status_code == 401:
# not authorized .. try refreshing token
if self._refresh_token(request):
access_token = request.session.get('access_token', None)
headers.update({
'X-Transaction-Id': transaction_id,
'X-User-Id': bce_id,
'Authorization': f'Bearer {access_token}'
})
response = requests.post(url, headers=headers, data=data, files=files)
logging.debug(f'EFH - Get API Retry {response.status_code} {response.text}')
return response
def _get_transaction(self, request):
"""
Get the current transaction id stored in session, otherwise generate one.
:param request:
:return:
"""
guid = request.session.get('transaction_id', None)
if not guid:
guid = str(uuid.uuid4())
request.session['transaction_id'] = guid
return guid
def _get_bceid(self, request):
def _get_raw_bceid(request):
is_localdev = settings.DEPLOYMENT_TYPE in ['localdev', 'minishift']
if is_localdev:
# to integrate with the Test eFiling Hub, we need a valid BCEID which is
# unavailable for a local eDivorce environment. Use an env specified mapping
# to figure out what we should pass through to eFiling Hub. This BCEID username
# needs to match with what you will be logging in with to the Test BCEID environment.
return settings.EFILING_BCEID
return request.session.get('bcgov_userguid', None)
guid = _get_raw_bceid(request)
if guid:
return str(uuid.UUID(guid))
return guid
def _format_package(self, request, files, documents, parties, location):
def format_package(self, request, files, documents, parties, location):
package = PACKAGE_FORMAT.copy()
package['filingPackage']['court']['location'] = location
package['filingPackage']['documents'] = documents
@ -426,48 +308,3 @@ class EFilingHub:
def get_location(self, responses):
location_name = responses.get('court_registry_for_filing', '')
return list_of_registries.get(location_name, '0000')
def upload(self, request, files, documents=None, parties=None, location=None):
"""
Does an initial upload of documents and gets the generated eFiling Hub url.
:param parties:
:param request:
:param files: Files need to be a list of tuples in the form ('files': (filename, filecontent))
:return: The url for redirect and any error messages
"""
# Find the transaction id .. this will be a unique guid generated by eDivorce thats passed to Efiling Hub. We
# will tie it to the session.
transaction_id = self._get_transaction(request)
bce_id = self._get_bceid(request)
# if bce_id is None .. we basically have an anonymous user so raise an error
if bce_id is None:
raise PermissionDenied()
# package_data, files = self._get_data(request, responses, uploaded, generated)
url = f'{self.api_base_url}/submission/documents'
response = self._get_api(request, url, transaction_id, bce_id, headers={}, files=files)
if response.status_code == 200:
response = json.loads(response.text)
if "submissionId" in response and response['submissionId'] != "":
# get the redirect url
headers = {
'Content-Type': 'application/json'
}
package_data = self._format_package(request, files, documents, parties, location)
url = f"{self.api_base_url}/submission/{response['submissionId']}/generateUrl"
data = json.dumps(package_data)
response = self._get_api(request, url, transaction_id, bce_id, headers, data)
if response.status_code == 200:
response = json.loads(response.text)
return response['efilingUrl'], 'success'
response = json.loads(response.text)
return None, f"{response['error']} - {response['message']}"
return None, f'{response.status_code} - {response.text}'

+ 178
- 0
edivorce/apps/core/utils/efiling_submission.py View File

@ -0,0 +1,178 @@
import json
import logging
import requests
import uuid
from django.conf import settings
from django.core.exceptions import PermissionDenied
from .efiling_packaging import EFilingPackaging
logger = logging.getLogger(__name__)
class EFilingSubmission:
def __init__(self, initial_filing):
self.client_id = settings.EFILING_HUB_CLIENT_ID
self.client_secret = settings.EFILING_HUB_CLIENT_SECRET
self.token_base_url = settings.EFILING_HUB_TOKEN_BASE_URL
self.token_realm = settings.EFILING_HUB_REALM
self.api_base_url = settings.EFILING_HUB_API_BASE_URL
self.submission_id = None
self.initial_filing = initial_filing
self.packaging = EFilingPackaging(initial_filing)
def _get_token(self, request):
payload = f'client_id={self.client_id}&grant_type=client_credentials&client_secret={self.client_secret}'
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
url = f'{self.token_base_url}/auth/realms/{self.token_realm}/protocol/openid-connect/token'
response = requests.post(url, headers=headers, data=payload)
logging.debug(f'EFH - Get Token {response.status_code}')
if response.status_code == 200:
response = json.loads(response.text)
# save in session .. lets just assume that current user is authenticated
if 'access_token' in response:
request.session['access_token'] = response['access_token']
if 'refresh_token' in response:
request.session['refresh_token'] = response['refresh_token']
return True
return False
def _refresh_token(self, request):
refresh_token = request.session.get('refresh_token', None)
if not refresh_token:
return False
payload = f'client_id={self.client_id}&grant_type=refresh_token&client_secret={self.client_secret}&refresh_token={refresh_token}'
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
url = f'{self.token_base_url}/auth/realms/{self.token_realm}/protocol/openid-connect/token'
response = requests.post(url, headers=headers, data=payload)
logging.debug(f'EFH - Get Refresh Token {response.status_code}')
response = json.loads(response.text)
# save in session .. lets just assume that current user is authenticated
if 'access_token' in response:
request.session['access_token'] = response['access_token']
if 'refresh_token' in response:
request.session['refresh_token'] = response['refresh_token']
return True
return False
def _get_api(self, request, url, transaction_id, bce_id, headers, data=None, files=None):
# make sure we have a session
access_token = request.session.get('access_token', None)
if not access_token:
if not self._get_token(request):
raise Exception('EFH - Unable to get API Token')
access_token = request.session.get('access_token', None)
headers.update({
'X-Transaction-Id': transaction_id,
'X-User-Id': bce_id,
'Authorization': f'Bearer {access_token}'
})
if not data:
data = {}
response = requests.post(url, headers=headers, data=data, files=files)
logging.debug(f'EFH - Get API {response.status_code} {response.text}')
if response.status_code == 401:
# not authorized .. try refreshing token
if self._refresh_token(request):
access_token = request.session.get('access_token', None)
headers.update({
'X-Transaction-Id': transaction_id,
'X-User-Id': bce_id,
'Authorization': f'Bearer {access_token}'
})
response = requests.post(url, headers=headers, data=data, files=files)
logging.debug(f'EFH - Get API Retry {response.status_code} {response.text}')
return response
def _get_transaction(self, request):
"""
Get the current transaction id stored in session, otherwise generate one.
:param request:
:return:
"""
guid = request.session.get('transaction_id', None)
if not guid:
guid = str(uuid.uuid4())
request.session['transaction_id'] = guid
return guid
def _get_bceid(self, request):
def _get_raw_bceid(request):
is_localdev = settings.DEPLOYMENT_TYPE in ['localdev', 'minishift']
if is_localdev:
# to integrate with the Test eFiling Hub, we need a valid BCEID which is
# unavailable for a local eDivorce environment. Use an env specified mapping
# to figure out what we should pass through to eFiling Hub. This BCEID username
# needs to match with what you will be logging in with to the Test BCEID environment.
return settings.EFILING_BCEID
return request.session.get('bcgov_userguid', None)
guid = _get_raw_bceid(request)
if guid:
return str(uuid.UUID(guid))
return guid
def upload(self, request, files, documents=None, parties=None, location=None):
"""
Does an initial upload of documents and gets the generated eFiling Hub url.
:param parties:
:param request:
:param files: Files need to be a list of tuples in the form ('files': (filename, filecontent))
:return: The url for redirect and any error messages
"""
# Find the transaction id .. this will be a unique guid generated by eDivorce thats passed to Efiling Hub. We
# will tie it to the session.
transaction_id = self._get_transaction(request)
bce_id = self._get_bceid(request)
# if bce_id is None .. we basically have an anonymous user so raise an error
if bce_id is None:
raise PermissionDenied()
# package_data, files = self._get_data(request, responses, uploaded, generated)
url = f'{self.api_base_url}/submission/documents'
response = self._get_api(request, url, transaction_id, bce_id, headers={}, files=files)
if response.status_code == 200:
response = json.loads(response.text)
if "submissionId" in response and response['submissionId'] != "":
# get the redirect url
headers = {
'Content-Type': 'application/json'
}
package_data = self.packaging.format_package(request, files, documents, parties, location)
url = f"{self.api_base_url}/submission/{response['submissionId']}/generateUrl"
data = json.dumps(package_data)
response = self._get_api(request, url, transaction_id, bce_id, headers, data)
if response.status_code == 200:
response = json.loads(response.text)
return response['efilingUrl'], 'success'
response = json.loads(response.text)
return None, f"{response['error']} - {response['message']}"
return None, f'{response.status_code} - {response.text}'

+ 108
- 3
edivorce/apps/core/views/efiling.py View File

@ -1,10 +1,17 @@
import base64
import random
from django.conf import settings
from django.contrib import messages
from django.shortcuts import redirect
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, after_file_documents
from ..models import Document, UserResponse
from ..utils.efiling_documents import forms_to_file
from ..utils.efiling_packaging import EFilingPackaging
from ..utils.efiling_submission import EFilingSubmission
from ..utils.user_response import get_data_for_user
@ -21,9 +28,11 @@ def submit_final_files(request):
def _submit_files(request, initial=False):
""" App flow logic """
responses_dict = get_data_for_user(request.user)
errors, hub_redirect_url = file_documents(request, responses_dict, initial=initial)
errors, hub_redirect_url = _validate_and_submit_documents(
request, responses_dict, initial=initial)
if hub_redirect_url:
return redirect(hub_redirect_url)
@ -47,6 +56,55 @@ def _submit_files(request, initial=False):
return redirect(reverse('dashboard_nav', kwargs={'nav_step': next_page}), context=responses_dict)
def _validate_and_submit_documents(request, responses, initial=False):
""" Validation and submission logic """
user = request.user
errors = []
if not initial:
user_has_submitted_initial = responses.get('initial_filing_submitted') == 'True'
if not user_has_submitted_initial:
errors.append(
"You must file the initial filing first before submitting the final filing.")
court_file_number = responses.get('court_file_number')
if not court_file_number:
errors.append("You must input your Court File Number")
uploaded, generated = forms_to_file(responses, initial)
for form in uploaded:
docs = Document.objects.filter(
bceid_user=user, doc_type=form['doc_type'], party_code=form.get('party_code', 0))
if docs.count() == 0:
errors.append(f"Missing documents for {Document.form_types[form['doc_type']]}")
if errors:
return errors, None
if not settings.EFILING_HUB_ENABLED:
return _after_submit_files(request, initial)
msg, redirect_url = _package_and_submit(request, uploaded, generated, responses, initial)
if msg != 'success':
errors.append(msg)
return errors, None
if redirect_url:
return None, redirect_url
return None, None
def _package_and_submit(request, uploaded, generated, responses, initial):
""" Build the efiling package and submit it to the efiling hub """
hub = EFilingSubmission(initial_filing=initial)
packaging = EFilingPackaging(initial_filing=initial)
post_files, documents = packaging.get_files(request, responses, uploaded, generated)
location = packaging.get_location(responses)
parties = packaging.get_parties(responses)
redirect_url, msg = hub.upload(request, post_files, documents, parties, location)
return msg, redirect_url
@login_required
@prequal_completed
def after_submit_initial_files(request):
@ -66,8 +124,55 @@ def _after_submit_files(request, initial=False):
else:
next_page = 'next_steps'
after_file_documents(request, initial=initial)
user = request.user
prefix = 'initial' if initial else 'final'
_save_response(user, f'{prefix}_filing_submitted', 'True')
if not initial:
_save_response(user, f'final_filing_status', 'Submitted')
package_number = _get_package_number(request)
_save_response(user, f'{prefix}_filing_package_number', package_number)
if settings.DEPLOYMENT_TYPE == 'localdev':
base_url = 'https://dev.justice.gov.bc.ca'
else:
base_url = settings.PROXY_BASE_URL
receipt_link = base_url + '/cso/filing/status/viewDocument.do?actionType=viewReceipt&packageNo=' + package_number
_save_response(user, f'{prefix}_filing_receipt_link', receipt_link)
package_link = base_url + '/cso/accounts/bceidNotification.do?packageNo=' + package_number
_save_response(user, f'{prefix}_filing_package_link', package_link)
responses_dict['active_page'] = next_page
return redirect(reverse('dashboard_nav', kwargs={'nav_step': next_page}), context=responses_dict)
def _get_package_number(request):
if settings.EFILING_HUB_ENABLED:
base64_message = request.GET.get('packageRef', '')
base64_bytes = base64_message.encode('ascii')
message_bytes = base64.b64decode(base64_bytes)
message = message_bytes.decode('ascii')
parts = message.split('=')
if len(parts) == 2:
return parts[1]
else:
# Generate a random string in format 000-000-000
package_number_parts = []
for _ in range(3):
num = ''
for _ in range(3):
num += str(random.randint(0, 9))
package_number_parts.append(num)
return '-'.join(package_number_parts)
def _save_response(user, question, value):
response, _ = UserResponse.objects.get_or_create(bceid_user=user, question_id=question)
response.value = value
response.save()

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

@ -6,7 +6,7 @@ from django.contrib.auth.decorators import login_required
from edivorce.apps.core.utils.derived import get_derived_data
from ..decorators import intercept, prequal_completed
from ..utils.cso_filing import forms_to_file
from ..utils.efiling_documents import forms_to_file
from ..utils.question_step_mapping import list_of_registries
from ..utils.step_completeness import get_error_dict, get_missed_question_keys, get_step_completeness, is_complete, get_formatted_incomplete_list
from ..utils.template_step_order import template_step_order


+ 1
- 1
edivorce/apps/poc/urls.py View File

@ -5,7 +5,7 @@ from edivorce.apps.poc import views
urlpatterns = [
url(r'scan', login_required(views.UploadScan.as_view()), name="poc-scan"),
url(r'hub', login_required(views.EfilingHubUpload.as_view()), name="poc-hub"),
url(r'hub', login_required(views.EFilingSubmissionUpload.as_view()), name="poc-hub"),
url(r'storage/doc/(?P<document_id>\d+)', login_required(views.view_document_file), name="poc-storage-download"),
url(r'storage/delete/(?P<pk>\d+)', login_required(views.UploadStorageDelete.as_view()), name="poc-storage-delete"),
url(r'storage', login_required(views.UploadStorage.as_view()), name="poc-storage"),

+ 4
- 3
edivorce/apps/poc/views.py View File

@ -8,7 +8,8 @@ from django import forms
from django.http import HttpResponse
from django.conf import settings
from edivorce.apps.core.efilinghub import EFilingHub, PACKAGE_PARTY_FORMAT
from edivorce.apps.core.utils.efiling_submission import EFilingSubmission
from edivorce.apps.core.utils.efiling_packaging import PACKAGE_PARTY_FORMAT
from edivorce.apps.core.validators import file_scan_validation
from edivorce.apps.core.models import Document
@ -74,7 +75,7 @@ def view_document_file(request, document_id):
return response
class EfilingHubUpload(FormView):
class EFilingSubmissionUpload(FormView):
form_class = MultipleUploadForm
template_name = 'hub.html'
success_url = '/poc/hub'
@ -99,7 +100,7 @@ class EfilingHubUpload(FormView):
party['lastName'] = 'Test'
parties.append(party)
hub = EFilingHub(initial_filing=True)
hub = EFilingSubmission(initial_filing=True)
redirect, msg = hub.upload(request, post_files, parties=parties)
if redirect:
self.success_url = redirect


Loading…
Cancel
Save