diff --git a/edivorce/apps/poc/__init__.py b/edivorce/apps/poc/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/edivorce/apps/poc/migrations/0001_initial.py b/edivorce/apps/poc/migrations/0001_initial.py deleted file mode 100644 index 6c57a46c..00000000 --- a/edivorce/apps/poc/migrations/0001_initial.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 2.2.15 on 2020-08-23 05:10 - -from django.db import migrations, models -import edivorce.apps.core.redis - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ] - - operations = [ - migrations.CreateModel( - name='Document', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('file', models.FileField(storage=edivorce.apps.core.redis.RedisStorage, upload_to='docs_%Y_%m_%d_%H_%M_%S')), - ], - ), - ] diff --git a/edivorce/apps/poc/migrations/0002_auto_20200823_0606.py b/edivorce/apps/poc/migrations/0002_auto_20200823_0606.py deleted file mode 100644 index 7292e66b..00000000 --- a/edivorce/apps/poc/migrations/0002_auto_20200823_0606.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 2.2.15 on 2020-08-23 06:06 - -from django.db import migrations, models -import edivorce.apps.core.redis - - -class Migration(migrations.Migration): - - dependencies = [ - ('poc', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='document', - name='filename', - field=models.CharField(max_length=128, null=True), - ), - migrations.AlterField( - model_name='document', - name='file', - field=models.FileField(storage=edivorce.apps.core.redis.RedisStorage(), upload_to=edivorce.apps.core.redis.generate_unique_filename), - ), - ] diff --git a/edivorce/apps/poc/migrations/0003_auto_20200915_1645.py b/edivorce/apps/poc/migrations/0003_auto_20200915_1645.py deleted file mode 100644 index 657970ab..00000000 --- a/edivorce/apps/poc/migrations/0003_auto_20200915_1645.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 2.2.15 on 2020-09-15 23:45 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('poc', '0002_auto_20200823_0606'), - ] - - operations = [ - migrations.AddField( - model_name='document', - name='docType', - field=models.CharField(max_length=4, null=True), - ), - migrations.AddField( - model_name='document', - name='partyId', - field=models.IntegerField(default=0), - ), - ] diff --git a/edivorce/apps/poc/migrations/0004_auto_20200917_1008.py b/edivorce/apps/poc/migrations/0004_auto_20200917_1008.py deleted file mode 100644 index 216eea64..00000000 --- a/edivorce/apps/poc/migrations/0004_auto_20200917_1008.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 2.2.15 on 2020-09-17 17:08 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('poc', '0003_auto_20200915_1645'), - ] - - operations = [ - migrations.AlterField( - model_name='document', - name='docType', - field=models.CharField(blank=True, max_length=4, null=True), - ), - ] diff --git a/edivorce/apps/poc/migrations/0005_auto_20200921_1255.py b/edivorce/apps/poc/migrations/0005_auto_20200921_1255.py deleted file mode 100644 index e790e565..00000000 --- a/edivorce/apps/poc/migrations/0005_auto_20200921_1255.py +++ /dev/null @@ -1,42 +0,0 @@ -# Generated by Django 2.2.15 on 2020-09-21 19:55 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('core', '0020_auto_20200903_2328'), - ('poc', '0004_auto_20200917_1008'), - ] - - operations = [ - migrations.RenameField( - model_name='document', - old_name='docType', - new_name='doc_type', - ), - migrations.RenameField( - model_name='document', - old_name='partyId', - new_name='party_id', - ), - migrations.AddField( - model_name='document', - name='bceid_user', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='uploads', to='core.BceidUser'), - ), - migrations.AddField( - model_name='document', - name='length', - field=models.IntegerField(default=0), - ), - migrations.AlterUniqueTogether( - name='document', - unique_together={('bceid_user', 'doc_type', 'party_id', 'filename', 'length')}, - ), - migrations.RunSQL( - sql='delete from poc_document' - ) - ] diff --git a/edivorce/apps/poc/migrations/0006_auto_20200921_1301.py b/edivorce/apps/poc/migrations/0006_auto_20200921_1301.py deleted file mode 100644 index 5258db6f..00000000 --- a/edivorce/apps/poc/migrations/0006_auto_20200921_1301.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 2.2.15 on 2020-09-21 20:01 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('poc', '0005_auto_20200921_1255'), - ] - - operations = [ - migrations.AlterField( - model_name='document', - name='bceid_user', - field=models.ForeignKey(default='', on_delete=django.db.models.deletion.CASCADE, related_name='uploads', to='core.BceidUser'), - preserve_default=False, - ), - ] diff --git a/edivorce/apps/poc/migrations/0007_auto_20200921_1523.py b/edivorce/apps/poc/migrations/0007_auto_20200921_1523.py deleted file mode 100644 index 4e06adb5..00000000 --- a/edivorce/apps/poc/migrations/0007_auto_20200921_1523.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 2.2.15 on 2020-09-21 22:23 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('poc', '0006_auto_20200921_1301'), - ] - - operations = [ - migrations.AddField( - model_name='document', - name='order', - field=models.IntegerField(default=1), - ), - migrations.AddField( - model_name='document', - name='rotation', - field=models.IntegerField(default=0), - ), - ] diff --git a/edivorce/apps/poc/migrations/0008_auto_20200922_1027.py b/edivorce/apps/poc/migrations/0008_auto_20200922_1027.py deleted file mode 100644 index 75920d31..00000000 --- a/edivorce/apps/poc/migrations/0008_auto_20200922_1027.py +++ /dev/null @@ -1,39 +0,0 @@ -# Generated by Django 2.2.15 on 2020-09-22 17:27 - -import datetime -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('core', '0020_auto_20200903_2328'), - ('poc', '0007_auto_20200921_1523'), - ] - - operations = [ - migrations.RenameField( - model_name='document', - old_name='party_id', - new_name='party_code', - ), - migrations.RenameField( - model_name='document', - old_name='length', - new_name='size', - ), - migrations.RenameField( - model_name='document', - old_name='order', - new_name='sort_order', - ), - migrations.AddField( - model_name='document', - name='date_uploaded', - field=models.DateTimeField(default=datetime.datetime.now), - ), - migrations.AlterUniqueTogether( - name='document', - unique_together={('bceid_user', 'doc_type', 'party_code', 'filename', 'size')}, - ), - ] diff --git a/edivorce/apps/poc/migrations/0009_auto_20200922_1033.py b/edivorce/apps/poc/migrations/0009_auto_20200922_1033.py deleted file mode 100644 index 1d1667a1..00000000 --- a/edivorce/apps/poc/migrations/0009_auto_20200922_1033.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 2.2.15 on 2020-09-22 17:33 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('poc', '0008_auto_20200922_1027'), - ] - - operations = [ - migrations.AlterField( - model_name='document', - name='date_uploaded', - field=models.DateTimeField(auto_now_add=True), - ), - ] diff --git a/edivorce/apps/poc/migrations/0010_delete_document.py b/edivorce/apps/poc/migrations/0010_delete_document.py deleted file mode 100644 index 1869a57b..00000000 --- a/edivorce/apps/poc/migrations/0010_delete_document.py +++ /dev/null @@ -1,16 +0,0 @@ -# Generated by Django 2.2.15 on 2020-09-24 00:37 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('poc', '0009_auto_20200922_1033'), - ] - - operations = [ - migrations.DeleteModel( - name='Document', - ), - ] diff --git a/edivorce/apps/poc/migrations/__init__.py b/edivorce/apps/poc/migrations/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/edivorce/apps/poc/templates/hub.html b/edivorce/apps/poc/templates/hub.html deleted file mode 100644 index c4897857..00000000 --- a/edivorce/apps/poc/templates/hub.html +++ /dev/null @@ -1,45 +0,0 @@ -{% extends 'base.html' %} -{% load input_field %} -{% load step_order %} - -{% block title %}{{ block.super }}: POC{% endblock %} - -{% block progress %}{% include "poc-sidebar.html" %}{% endblock %} - -{% block content %} -

Proof of Concept:Efiling Hub Integration

- -
- {% csrf_token %} - -
-

Specify files to upload to the eFiling Hub.

-
-
{{ form.upload_file }}
- {% if form.upload_file.errors %} - - {% for err in form.upload_file.errors %}{{ err }}{% endfor %} - - {% endif %} -
-
- -
- -
- -
- -{% endblock %} - -{% block formbuttons %} - -{% endblock %} - -{% block sidebarNav %} - -{% endblock %} - -{% block sidebar %} - -{% endblock %} diff --git a/edivorce/apps/poc/templates/poc-sidebar.html b/edivorce/apps/poc/templates/poc-sidebar.html deleted file mode 100644 index 712bbe35..00000000 --- a/edivorce/apps/poc/templates/poc-sidebar.html +++ /dev/null @@ -1,18 +0,0 @@ -{% load step_order %} - -
-

POC

- - - File Scanning - - - - Redis Storage - - - - - eFiling Hub - -
diff --git a/edivorce/apps/poc/templates/poc/document_confirm_delete.html b/edivorce/apps/poc/templates/poc/document_confirm_delete.html deleted file mode 100644 index 1467e54a..00000000 --- a/edivorce/apps/poc/templates/poc/document_confirm_delete.html +++ /dev/null @@ -1,26 +0,0 @@ -{% extends 'base.html' %} -{% load input_field %} -{% load step_order %} - -{% block title %}{{ block.super }}: POC{% endblock %} - -{% block progress %}{% include "poc-sidebar.html" %}{% endblock %} - -{% block content %} -
{% csrf_token %} -

Are you sure you want to delete "{{ object }}"?

- -
-{% endblock %} - -{% block formbuttons %} - -{% endblock %} - -{% block sidebarNav %} - -{% endblock %} - -{% block sidebar %} - -{% endblock %} diff --git a/edivorce/apps/poc/templates/scan.html b/edivorce/apps/poc/templates/scan.html deleted file mode 100644 index 1795f000..00000000 --- a/edivorce/apps/poc/templates/scan.html +++ /dev/null @@ -1,46 +0,0 @@ -{% extends 'base.html' %} -{% load input_field %} -{% load step_order %} - -{% block title %}{{ block.super }}: POC{% endblock %} - -{% block progress %}{% include "poc-sidebar.html" %}{% endblock %} - -{% block content %} -

Proof of Concept:File scanning

- -
- {% csrf_token %} - -
-

Upload a file to test virus scanning.

-
-
{{ form.upload_file }}
- {% if form.upload_file.errors %} - - {% for err in form.upload_file.errors %}{{ err }}{% endfor %} - - {% endif %} - {% if validation_success %}No viruses found{% endif %} -
-
- -
- -
- -
- -{% endblock %} - -{% block formbuttons %} - -{% endblock %} - -{% block sidebarNav %} - -{% endblock %} - -{% block sidebar %} - -{% endblock %} diff --git a/edivorce/apps/poc/templates/storage.html b/edivorce/apps/poc/templates/storage.html deleted file mode 100644 index 2a4a575a..00000000 --- a/edivorce/apps/poc/templates/storage.html +++ /dev/null @@ -1,71 +0,0 @@ -{% extends 'base.html' %} -{% load input_field %} -{% load step_order %} - -{% block title %}{{ block.super }}: POC{% endblock %} - -{% block progress %}{% include "poc-sidebar.html" %}{% endblock %} - -{% block content %} -

Proof of Concept:File storage

- -
- {% csrf_token %} - -
-

Upload a file to store in Redis.

-
-
{{ form.file }}
- {% if form.file.errors %} - - {% for err in form.file.errors %}{{ err }}{% endfor %} - - {% endif %} - {% if validation_success %}No viruses found{% endif %} -
-
- -
- -
- -
-

Stored documents

- - - - - - - - - - {% for document in documents %} - - - - - - {% endfor %} - -
File nameRedis key
- - {{ document.filename|default:'' }} - - {{ document.file.name }}Delete
-
- -
-{% endblock %} - -{% block formbuttons %} - -{% endblock %} - -{% block sidebarNav %} - -{% endblock %} - -{% block sidebar %} - -{% endblock %} diff --git a/edivorce/apps/poc/urls.py b/edivorce/apps/poc/urls.py deleted file mode 100644 index d5bd7980..00000000 --- a/edivorce/apps/poc/urls.py +++ /dev/null @@ -1,12 +0,0 @@ -from django.conf.urls import url -from django.contrib.auth.decorators import login_required - -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.EFilingSubmissionUpload.as_view()), name="poc-hub"), - url(r'storage/doc/(?P\d+)', login_required(views.view_document_file), name="poc-storage-download"), - url(r'storage/delete/(?P\d+)', login_required(views.UploadStorageDelete.as_view()), name="poc-storage-delete"), - url(r'storage', login_required(views.UploadStorage.as_view()), name="poc-storage"), -] \ No newline at end of file diff --git a/edivorce/apps/poc/views.py b/edivorce/apps/poc/views.py deleted file mode 100644 index e2858bbe..00000000 --- a/edivorce/apps/poc/views.py +++ /dev/null @@ -1,112 +0,0 @@ -import logging - -from django.shortcuts import render -from django.utils.decorators import method_decorator -from django.views.decorators.csrf import csrf_exempt -from django.views.generic.edit import FormView, CreateView, DeleteView -from django import forms -from django.http import HttpResponse -from django.conf import settings - -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 - -logger = logging.getLogger(__name__) - -""" -Everything in this file is considered as proof of concept work and should not be used for production code. -""" - - -class UploadScanForm(forms.Form): - upload_file = forms.FileField(validators=[file_scan_validation]) - - -class MultipleUploadForm(forms.Form): - upload_file = forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple': True})) - - -class UploadScan(FormView): - form_class = UploadScanForm - template_name = "scan.html" - - def form_valid(self, form): - context = self.get_context_data() - context['validation_success'] = True - return render(self.request, self.template_name, context) - - -class UploadStorage(CreateView): - model = Document - fields = ['file', 'doc_type', 'party_code'] - template_name = "storage.html" - success_url = settings.FORCE_SCRIPT_NAME + 'poc/storage' - - @method_decorator(csrf_exempt) - def dispatch(self, request, *args, **kwargs): - return super(UploadStorage, self).dispatch(request, *args, **kwargs) - - def get_context_data(self, **kwargs): - kwargs['documents'] = Document.objects.all() - return super(UploadStorage, self).get_context_data(**kwargs) - - def form_valid(self, form): - obj = form.save(commit=False) - obj.bceid_user = self.request.user - return super(UploadStorage, self).form_valid(form) - - -class UploadStorageDelete(DeleteView): - model = Document - success_url = settings.FORCE_SCRIPT_NAME + 'poc/storage' - template_name = 'poc/document_confirm_delete.html' - - -def view_document_file(request, document_id): - doc = Document.objects.get(id=document_id) - - content_type = 'application/pdf' if 'pdf' in doc.file.name else 'image/jpeg' - - response = HttpResponse(doc.file.read(), content_type=content_type) - response['Content-Disposition'] = 'attachment; filename={}'.format(doc.filename) - - return response - - -class EFilingSubmissionUpload(FormView): - form_class = MultipleUploadForm - template_name = 'hub.html' - success_url = '/poc/hub' - - def post(self, request, *args, **kwargs): - form_class = self.get_form_class() - form = self.get_form(form_class) - files = request.FILES.getlist('upload_file') - if form.is_valid(): - # NOTE: this does not do any validation for file types .. make sure that is done - # prior to sending to eFiling Hub - post_files = [] - if files: - for file in files: - post_files.append(('files', (file.name, file.read()))) - - # generate the list of parties to send to eFiling Hub - parties = [] - for i in range(0, 2): - party = PACKAGE_PARTY_FORMAT.copy() - party['firstName'] = 'Party {}'.format(i) - party['lastName'] = 'Test' - parties.append(party) - - hub = EFilingSubmission(initial_filing=True) - redirect, msg = hub.upload(request, post_files, parties=parties) - if redirect: - self.success_url = redirect - - return self.form_valid(form) - - form.add_error('upload_file', msg) - - return self.form_invalid(form) diff --git a/edivorce/settings/base.py b/edivorce/settings/base.py index 05cf69e3..d67035c4 100644 --- a/edivorce/settings/base.py +++ b/edivorce/settings/base.py @@ -58,11 +58,6 @@ INSTALLED_APPS = ( 'graphene_django', ) -# add the POC app only if applicable -if ENVIRONMENT in ['localdev', 'dev', 'test']: - INSTALLED_APPS += ( - 'edivorce.apps.poc', - ) MIDDLEWARE = ( 'edivorce.apps.core.middleware.basicauth_middleware.BasicAuthMiddleware', diff --git a/edivorce/urls.py b/edivorce/urls.py index 01ead84f..7eff8ca0 100644 --- a/edivorce/urls.py +++ b/edivorce/urls.py @@ -12,7 +12,6 @@ urlpatterns = [] if settings.ENVIRONMENT in ['localdev', 'dev', 'test']: import debug_toolbar urlpatterns.append(url(r'^__debug__/', include(debug_toolbar.urls)),) - urlpatterns.append(url(r'^poc/', include('edivorce.apps.poc.urls'))) urlpatterns.append(path('api/graphql/', csrf_exempt(PrivateGraphQLView.as_view(graphiql=True, schema=graphql_schema)), name='graphql')) else: urlpatterns.append(path('api/graphql/', csrf_exempt(PrivateGraphQLView.as_view(graphiql=False, schema=graphql_schema)), name='graphql'))