diff --git a/edivorce/apps/core/templates/pdf/form1.html b/edivorce/apps/core/templates/pdf/form1.html new file mode 100644 index 00000000..357556c4 --- /dev/null +++ b/edivorce/apps/core/templates/pdf/form1.html @@ -0,0 +1,500 @@ +{% load static %} + + + + + + + + Form 1 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/edivorce/apps/core/templates/pdf/form35.html b/edivorce/apps/core/templates/pdf/form35.html new file mode 100644 index 00000000..6fa6c537 --- /dev/null +++ b/edivorce/apps/core/templates/pdf/form35.html @@ -0,0 +1,116 @@ +{% load static %} + + + + + + + + Form 35 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/edivorce/apps/core/templates/pdf/form36.html b/edivorce/apps/core/templates/pdf/form36.html new file mode 100644 index 00000000..c03e868f --- /dev/null +++ b/edivorce/apps/core/templates/pdf/form36.html @@ -0,0 +1,66 @@ +{% load static %} + + + + + + + + Form 36 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/edivorce/apps/core/templates/pdf/form38.html b/edivorce/apps/core/templates/pdf/form38.html new file mode 100644 index 00000000..b49dfaeb --- /dev/null +++ b/edivorce/apps/core/templates/pdf/form38.html @@ -0,0 +1,206 @@ +{% load static %} + + + + + + + + Form 38 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/edivorce/apps/core/templates/pdf/form52.html b/edivorce/apps/core/templates/pdf/form52.html new file mode 100644 index 00000000..cdb8130d --- /dev/null +++ b/edivorce/apps/core/templates/pdf/form52.html @@ -0,0 +1,153 @@ +{% load static %} + + + + + + + + Form 52 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/edivorce/apps/core/urls.py b/edivorce/apps/core/urls.py index 6df4dcac..8775f2b1 100644 --- a/edivorce/apps/core/urls.py +++ b/edivorce/apps/core/urls.py @@ -3,6 +3,7 @@ from django.conf.urls import url from .views import main, system, styleguide, pdf, api, localdev urlpatterns = [ + url(r'^guide$', styleguide.guide), url(r'^f/(?P.*)', main.serve), url(r'^preview/(?P
.*)', main.preview), url(r'^prequalification/step_(?P[0-9]{2})$', main.prequalification, name="prequalification"), @@ -14,6 +15,7 @@ urlpatterns = [ url(r'^overview', main.overview, name="overview"), url(r'^intro', main.intro, name="intro"), url(r'^health$', system.health), + url(r'^pdf-form(?P[0-9]{1,3})$', pdf.form, name="pdf_form"), url(r'^(?P.*)/(?P.*)', main.form, name="form_steps"), url(r'^', main.index, name="index"), ] diff --git a/edivorce/apps/core/views/pdf.py b/edivorce/apps/core/views/pdf.py new file mode 100644 index 00000000..9c74e689 --- /dev/null +++ b/edivorce/apps/core/views/pdf.py @@ -0,0 +1,41 @@ +from django.template.loader import render_to_string +from django.http import HttpResponse +import requests + +from django.conf import settings + +from edivorce.apps.core.decorators import bceid_required +from edivorce.apps.core.models import BceidUser +from ..utils.user_response import get_responses_from_db + + +@bceid_required +def form(request, form_number): + user = BceidUser.objects.get(user_guid=request.bceid_user.guid) + responses = get_responses_from_db(user) + + return render_form(request, 'form%s' % form_number, + { + "css_root": settings.WEASYPRINT_CSS_LOOPBACK, + "responses" : responses + }) + + +def render_form(request, form_name, context): + # render to form as HTML + rendered_html = render_to_string('pdf/' + form_name + '.html', context=context) + + # if '?html' is in the querystring, then return the plain html + if request.GET.get('html', None) is not None: + return HttpResponse(rendered_html) + + else: + # post the html to the weasyprint microservice + url = settings.WEASYPRINT_URL + '/pdf?filename=' + form_name + '.pdf' + pdf = requests.post(url, data=rendered_html) + + # return the response as a pdf + response = HttpResponse(pdf, content_type='application/pdf') + response['Content-Disposition'] = 'inline;filename=' + form_name + '.pdf' + + return response diff --git a/edivorce/apps/core/views/styleguide.py b/edivorce/apps/core/views/styleguide.py new file mode 100644 index 00000000..2d9d207f --- /dev/null +++ b/edivorce/apps/core/views/styleguide.py @@ -0,0 +1,5 @@ +from django.shortcuts import render + + +def guide(request): + return render(request, 'styleguide/guide.html')