Pormenjen naicn rendovanja podatak iz template, popunjeni ceo dokument
This commit is contained in:
@@ -6,10 +6,11 @@ from .forms import OrganizationForm
|
||||
from .models import Organization,Document, DocumentTemplate,DocumentRiskControl,Risk
|
||||
from backend.accounts.utils import send_confirmation_email, send_document_email
|
||||
from django.contrib.admin.views.decorators import staff_member_required
|
||||
from django.template import Template, Context
|
||||
from .utils import generate_pdf, map_weight_to_impact_likelihood, calculate_aggregate_weight, calculate_aggregate_likelihood, generate_risk_graph
|
||||
from .tables import risk_matrix_table ,get_risk_table
|
||||
from django.conf import settings
|
||||
site_domain = settings.SITE_DOMAIN
|
||||
from .processors import render_template
|
||||
|
||||
|
||||
|
||||
@@ -49,40 +50,8 @@ def thankyou(request):
|
||||
|
||||
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', 'likelihood')
|
||||
.distinct()
|
||||
)
|
||||
max_weight = 10*10
|
||||
total_weight = calculate_aggregate_weight(controls)
|
||||
total_likelihood = calculate_aggregate_likelihood(controls)
|
||||
impact, likelihood = map_weight_to_impact_likelihood(total_weight, total_likelihood, max_weight)
|
||||
risks_with_controls.append({
|
||||
'risk': risk,
|
||||
'controls': list(controls),
|
||||
'total_weight': total_weight,
|
||||
'impact': impact,
|
||||
'likelihood': likelihood,
|
||||
'risk_score': (round(impact) * round(likelihood))
|
||||
})
|
||||
|
||||
risks_with_controls = get_risk_table(document)
|
||||
table_risk_matrix = risk_matrix_table()
|
||||
graph_base64 = generate_risk_graph(risks_with_controls)
|
||||
|
||||
template_obj = get_object_or_404(DocumentTemplate, name="Default Template")
|
||||
@@ -95,28 +64,10 @@ def document(request, document_id):
|
||||
context = {
|
||||
'document': document,
|
||||
'risks_with_controls': risks_with_controls,
|
||||
'graph': graph_base64,
|
||||
'graph': graph_base64,
|
||||
'table_risk_matrix': table_risk_matrix,
|
||||
}
|
||||
rendered_content = ""
|
||||
for segment in template_segments:
|
||||
content = segment.get('content', '')
|
||||
segment_type = segment.get('segment_type', '')
|
||||
|
||||
django_template = Template(content)
|
||||
processed_content = django_template.render(Context(context))
|
||||
|
||||
if segment_type == "h1":
|
||||
rendered_content += f"<h1>{processed_content}</h1>\n"
|
||||
elif segment_type == "h2":
|
||||
rendered_content += f"<h2>{processed_content}</h2>\n"
|
||||
elif segment_type == "h3":
|
||||
rendered_content += f"<h3>{processed_content}</h3>\n"
|
||||
elif segment_type == "p":
|
||||
rendered_content += f"<p>{processed_content}</p>\n"
|
||||
elif segment_type == "image":
|
||||
rendered_content += f'<img src="{processed_content}" alt="Risk Graph" style="max-width:100%; height:auto;">\n'
|
||||
else:
|
||||
rendered_content += processed_content
|
||||
rendered_content = render_template(template_segments, context)
|
||||
return render(request, 'document.html', {'rendered_html': rendered_content})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user