From e5982538df7d88109e148679207b6dc969c470f2 Mon Sep 17 00:00:00 2001 From: Gourav NSS Date: Wed, 31 Dec 2025 19:50:21 +0530 Subject: [PATCH 1/2] Replace pprint with saneyaml.dump for SSVC decision tree display - Add yaml_dump template filter using saneyaml.dump() - Update advisory_detail.html to use yaml_dump instead of pprint - Provides deterministic YAML output for SSVC options Fixes #2089 --- vulnerabilities/templates/advisory_detail.html | 3 ++- vulnerabilities/templatetags/utils.py | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/vulnerabilities/templates/advisory_detail.html b/vulnerabilities/templates/advisory_detail.html index 24a4b0d2c..114edc495 100644 --- a/vulnerabilities/templates/advisory_detail.html +++ b/vulnerabilities/templates/advisory_detail.html @@ -4,6 +4,7 @@ {% load static %} {% load show_cvss %} {% load url_filters %} +{% load utils %} {% block title %} VulnerableCode Advisory Details - {{ advisory.advisory_id }} @@ -583,7 +584,7 @@ View SSVC decision tree -
{{ ssvc.options|pprint }}
+
{{ ssvc.options|yaml_dump }}
diff --git a/vulnerabilities/templatetags/utils.py b/vulnerabilities/templatetags/utils.py index cea889808..9c473c51b 100644 --- a/vulnerabilities/templatetags/utils.py +++ b/vulnerabilities/templatetags/utils.py @@ -8,8 +8,10 @@ # -from aboutcode.pipeline import humanize_time from django import template +import saneyaml + +from aboutcode.pipeline import humanize_time register = template.Library() @@ -39,3 +41,14 @@ def active_item(context, url_name): @register.filter def get_item(dictionary, key): return dictionary.get(key) + + +@register.filter +def yaml_dump(value): + """Render structured data as YAML using saneyaml.dump.""" + if value is None: + return "" + try: + return saneyaml.dump(value) + except (TypeError, ValueError): + return str(value) From 7b950d9cd1f9c59c6fca5fc936618be30e3e9839 Mon Sep 17 00:00:00 2001 From: Gourav NSS Date: Wed, 31 Dec 2025 19:58:23 +0530 Subject: [PATCH 2/2] Fix import order in utils.py to match original style --- vulnerabilities/templatetags/utils.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/vulnerabilities/templatetags/utils.py b/vulnerabilities/templatetags/utils.py index 9c473c51b..556a065ed 100644 --- a/vulnerabilities/templatetags/utils.py +++ b/vulnerabilities/templatetags/utils.py @@ -8,11 +8,10 @@ # +from aboutcode.pipeline import humanize_time from django import template import saneyaml -from aboutcode.pipeline import humanize_time - register = template.Library()