diff --git a/backend/core/views.py b/backend/core/views.py index aec5d1f..c283d75 100644 --- a/backend/core/views.py +++ b/backend/core/views.py @@ -1,4 +1,5 @@ import logging +import yaml from django.shortcuts import render, redirect , get_object_or_404 from .forms import OrganizationForm @@ -83,11 +84,18 @@ def document(request, document_id): template_obj = get_object_or_404(DocumentTemplate, name="Default Template") template_content = template_obj.content - django_template = Template(template_content) - context = Context({ + try: + template_segments = yaml.safe_load(template_content) + except yaml.YAMLError as e: + return render(request, 'error.html', {'error_message': 'Error parsing template.'}) + context = { 'document': document, 'risks_with_controls': risks_with_controls - }) + } + rendered_content = "" + for segment in template_segments: + content = segment['content'] + django_template = Template(content) + rendered_content += django_template.render(Context(context)) - rendered_template = django_template.render(context) - return render(request, 'document.html', {'rendered_html': rendered_template}) + return render(request, 'document.html', {'rendered_html': rendered_content}) \ No newline at end of file diff --git a/document_template.yml b/document_template.yml index e10d8e9..b2321ba 100644 --- a/document_template.yml +++ b/document_template.yml @@ -1,8 +1,15 @@ -
created at: {{ document.created_at|date:'Y-m-d' }}
+- segment_type: "h1" + content: "{{ document.organization.name }} - Risk Report" -risks: - {% for item in risks_with_controls %} +- segment_type: "body" + content: "Created at: {{ document.created_at|date:'Y-m-d' }}" + +- segment_type: "h2" + content: "Risks" + +- segment_type: "body" + content: | + {% for item in risks_with_controls %}