Coverage for product_risk_suite / risk_assessment / views.py: 37%

43 statements  

« prev     ^ index     » next       coverage.py v7.14.0, created at 2026-05-13 23:42 +0000

1from django.shortcuts import get_object_or_404, render 

2from django.views.decorators.csrf import csrf_protect 

3from django.contrib.auth.decorators import login_required 

4 

5from .models import SecurityRequirement, RiskRating, SeverityName, LikelihoodName, SeverityExample, LikelihoodExample, SuggestedMitigationValidation 

6 

7@csrf_protect 

8@login_required 

9def security_requirements(request): 

10 context = {"security_req_list": SecurityRequirement.objects.all()} 

11 return render(request, "security_requirements.html", context) 

12 

13@csrf_protect 

14@login_required 

15def security_requirement(request, norm_slug): 

16 req = get_object_or_404(SecurityRequirement, slug=norm_slug) 

17 

18 context = {"req": req} 

19 return render(request, "security_requirement.html", context) 

20 

21@csrf_protect 

22@login_required 

23def risk_info(request): 

24 severities = [{ "str": SeverityName.to_human_str(i), "value": i } for i in range(1, 6)] 

25 loos = [{"str": LikelihoodName.to_human_str(i), "value": i} for i in range(1, 6) ] 

26 

27 risk_color = {} 

28 risk = {} 

29 for y in range(1, 6): 

30 risk[f"{y}"] = {} 

31 risk_color[f"{y}"] = {} 

32 for x in range(1, 6): 

33 r = RiskRating.calc_risk(y, x) 

34 risk[f"{y}"][f"{x}"] = r 

35 risk_color[f"{y}"][f"{x}"] = RiskRating.risk_level_to_color(RiskRating.risk_level(r)) 

36 

37 example_severities = {} 

38 for se in SeverityExample.objects.all(): 

39 example_severities[f"{se.severity_of_impact}"] = se.examples 

40 example_loos = {} 

41 for lo in LikelihoodExample.objects.all(): 

42 example_loos[f"{lo.likelihood_of_occurrence}"] = lo.examples 

43 context = { 

44 "risk_color": risk_color, 

45 "risk": risk, 

46 "severities": severities, 

47 "loos": loos, 

48 "example_severities": example_severities, 

49 "example_loos": example_loos 

50 } 

51 return render(request, "risk_info.html", context) 

52 

53@csrf_protect 

54@login_required 

55def suggestion_view(request, id): 

56 sug = get_object_or_404(SuggestedMitigationValidation, id=id) 

57 

58 context = {"sug": sug} 

59 return render(request, "suggestion.html", context)