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 logging
|
||||||
|
import yaml
|
||||||
|
|
||||||
from django.shortcuts import render, redirect , get_object_or_404
|
from django.shortcuts import render, redirect , get_object_or_404
|
||||||
from .forms import OrganizationForm
|
from .forms import OrganizationForm
|
||||||
@@ -83,11 +84,18 @@ def document(request, document_id):
|
|||||||
template_obj = get_object_or_404(DocumentTemplate, name="Default Template")
|
template_obj = get_object_or_404(DocumentTemplate, name="Default Template")
|
||||||
template_content = template_obj.content
|
template_content = template_obj.content
|
||||||
|
|
||||||
django_template = Template(template_content)
|
try:
|
||||||
context = Context({
|
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,
|
'document': document,
|
||||||
'risks_with_controls': risks_with_controls
|
'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_content})
|
||||||
return render(request, 'document.html', {'rendered_html': rendered_template})
|
|
||||||
@@ -1,8 +1,15 @@
|
|||||||
<h1> {{ document.organization.name }} - Risk Report </h1>
|
- segment_type: "h1"
|
||||||
<p> created at: {{ document.created_at|date:'Y-m-d' }}</p>
|
content: "{{ document.organization.name }} - Risk Report"
|
||||||
|
|
||||||
risks:
|
- segment_type: "body"
|
||||||
{% for item in risks_with_controls %}
|
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">
|
<div class="risk">
|
||||||
<h3>Risk: {{ item.risk.name }}</h3>
|
<h3>Risk: {{ item.risk.name }}</h3>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
@@ -15,4 +22,4 @@ risks:
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
Reference in New Issue
Block a user