Dodata opcija da yaml template da moze da koristi html i django template
This commit is contained in:
@@ -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})
|
||||
@@ -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 %}
|
||||
Reference in New Issue
Block a user