Dodata opcija da yaml template da moze da koristi html i django template
This commit is contained in:
@@ -2,11 +2,13 @@ import logging
|
||||
|
||||
from django.shortcuts import render, redirect , get_object_or_404
|
||||
from .forms import OrganizationForm
|
||||
from .models import Organization,Document,Risk, DocumentTemplate
|
||||
from .models import Organization,Document,Risk, DocumentTemplate,DocumentRiskControl,Control
|
||||
from backend.core.utils import get_top_risk
|
||||
from django.urls import reverse
|
||||
from backend.accounts.utils import send_confirmation_email
|
||||
from django.contrib.admin.views.decorators import staff_member_required
|
||||
from django.template import Template, Context
|
||||
|
||||
|
||||
# @login_required
|
||||
# def index(request):
|
||||
@@ -42,18 +44,50 @@ def signup(request):
|
||||
def thankyou(request):
|
||||
return render(request, 'thankyou.html')
|
||||
|
||||
def document(request, document_id):
|
||||
print(f"Document ID received: {document_id}")
|
||||
doc = get_object_or_404(Document, id=document_id)
|
||||
|
||||
return render(request, 'document.html', {
|
||||
'document': doc,
|
||||
'organization': doc.organization,
|
||||
'segments': doc.segments.all(),
|
||||
})
|
||||
|
||||
@staff_member_required
|
||||
def template_preview(request, name):
|
||||
template = get_object_or_404(DocumentTemplate, name=name)
|
||||
parsed_template = template.to_dict()
|
||||
return render(request, 'template_preview.html', {'template': parsed_template})
|
||||
return render(request, 'template_preview.html', {'template': parsed_template})
|
||||
|
||||
|
||||
def document(request, document_id):
|
||||
document = get_object_or_404(Document, id=document_id)
|
||||
risks = (
|
||||
DocumentRiskControl.objects
|
||||
.filter(document=document)
|
||||
.values('risk', 'risk__risk_name')
|
||||
.distinct()
|
||||
)
|
||||
|
||||
risks_with_controls = []
|
||||
|
||||
for risk_entry in risks:
|
||||
risk = {
|
||||
'id': risk_entry['risk'],
|
||||
'name': risk_entry['risk__risk_name']
|
||||
}
|
||||
|
||||
controls = (
|
||||
DocumentRiskControl.objects
|
||||
.filter(document=document, risk_id=risk['id'])
|
||||
.values('control', 'control__name', 'weight')
|
||||
.distinct()
|
||||
)
|
||||
|
||||
risks_with_controls.append({
|
||||
'risk': risk,
|
||||
'controls': list(controls)
|
||||
})
|
||||
|
||||
template_obj = get_object_or_404(DocumentTemplate, name="Default Template")
|
||||
template_content = template_obj.content
|
||||
|
||||
django_template = Template(template_content)
|
||||
context = Context({
|
||||
'document': document,
|
||||
'risks_with_controls': risks_with_controls
|
||||
})
|
||||
|
||||
rendered_template = django_template.render(context)
|
||||
return render(request, 'document.html', {'rendered_html': rendered_template})
|
||||
|
||||
Reference in New Issue
Block a user