updated get top risks prompt

This commit is contained in:
2025-09-29 14:07:15 +02:00
parent 98f5801bad
commit d2ff9690a1
14 changed files with 202 additions and 32 deletions

View File

@@ -1,5 +1,8 @@
from django import forms
from .models import Organization
import json
from django.utils.safestring import mark_safe
class OrganizationForm(forms.ModelForm):
class Meta:
@@ -66,3 +69,36 @@ class ContactForm(forms.Form):
name = forms.CharField(label="Name", max_length=100)
email = forms.EmailField(label="Email")
message = forms.CharField(label="Message", widget=forms.Textarea(attrs={"rows": 6}), max_length=5000)
class RiskExplanationWidget(forms.Widget):
def render(self, name, value, attrs=None, renderer=None):
if isinstance(value, str):
try:
value = json.loads(value)
except Exception:
value = {}
value = value or {}
html = (
'<table style="width:100%; margin:0; padding:0; border-collapse:collapse;">'
'<tr>'
'<th style="width:5%;">Risk ID</th>'
'<th style="width:80%;">Explanation</th>'
'</tr>'
)
for risk_id, explanation in value.items():
html += (
f'<tr>'
f'<td style="width:5%;"><input type="number" name="{name}_risk_{risk_id}" value="{risk_id}" readonly style="width:100%;"></td>'
f'<td style="width:80%;"><input type="text" name="{name}_explanation_{risk_id}" value="{explanation}" style="width:99%;"></td>'
f'</tr>'
)
for i in range(10 - len(value)):
html += (
f'<tr>'
f'<td style="width:5%;"><input type="number" name="{name}_risk_new_{i}" value="" style="width:100%;"></td>'
f'<td style="width:80%;"><input type="text" name="{name}_explanation_new_{i}" value="" style="width:99%;"></td>'
f'</tr>'
)
html += '</table>'
return mark_safe(html)