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

This commit is contained in:
2025-02-19 16:09:42 +01:00
parent 5a0c4df816
commit b128ce6915
4 changed files with 70 additions and 77 deletions

View File

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