Dodata opcija da yaml template da moze da koristi html i django template

This commit is contained in:
2025-02-19 19:34:45 +01:00
parent b128ce6915
commit e1aafb9172
2 changed files with 25 additions and 10 deletions

View File

@@ -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})

View File

@@ -1,8 +1,15 @@
<h1> {{ document.organization.name }} - Risk Report </h1>
<p> created at: {{ document.created_at|date:'Y-m-d' }}</p>
- 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 %}
<div class="risk">
<h3>Risk: {{ item.risk.name }}</h3>
<div class="controls">
@@ -15,4 +22,4 @@ risks:
{% endfor %}
</div>
</div>
{% endfor %}
{% endfor %}