larxius commited on
Commit
59dca82
·
verified ·
1 Parent(s): 413b397

Update backend/utils/pdf_generator.py

Browse files
Files changed (1) hide show
  1. backend/utils/pdf_generator.py +4 -1
backend/utils/pdf_generator.py CHANGED
@@ -942,13 +942,15 @@ def generate_scan_pdf(scan, vulnerabilities):
942
  elements.append(Paragraph(f"<b>Remediation (Finding #{idx}):</b>", styles['Normal']))
943
  rem_text_raw = vuln.remediation or "No specific remediation step provided. Follow standard secure coding practices."
944
 
945
- raw_sentences = [s.strip() for s in re.split(r'\.\s+|\n', rem_text_raw) if s.strip()]
 
946
  if not raw_sentences:
947
  raw_sentences = [rem_text_raw]
948
 
949
  numbered_rem_html = []
950
  step_counter = 1
951
  for sent in raw_sentences:
 
952
  clean_sent = re.sub(r'^[0-9]+\.\s*|^[-*•]\s*', '', sent).strip()
953
  if clean_sent:
954
  if not clean_sent.endswith('.'):
@@ -961,6 +963,7 @@ def generate_scan_pdf(scan, vulnerabilities):
961
  elements.append(Paragraph(rem_final_text, normal))
962
  elements.append(Spacer(1, 25))
963
 
 
964
  # --- APPENDIX: REQUIRES MANUAL VERIFICATION (ONLY IF UNCONFIRMED FINDINGS EXIST) ---
965
  target_findings_list = vulnerabilities if 'vulnerabilities' in locals() and vulnerabilities is not None else (findings if 'findings' in locals() and findings is not None else getattr(scan, 'vulnerabilities', []))
966
 
 
942
  elements.append(Paragraph(f"<b>Remediation (Finding #{idx}):</b>", styles['Normal']))
943
  rem_text_raw = vuln.remediation or "No specific remediation step provided. Follow standard secure coding practices."
944
 
945
+ # Split ONLY on newlines do NOT split on '. ' to avoid breaking numbered steps like '1. Generate DNSSEC keys'
946
+ raw_sentences = [s.strip() for s in rem_text_raw.split('\n') if s.strip()]
947
  if not raw_sentences:
948
  raw_sentences = [rem_text_raw]
949
 
950
  numbered_rem_html = []
951
  step_counter = 1
952
  for sent in raw_sentences:
953
+ # Strip leading number markers like '1.' '2.' '-' '*' '•'
954
  clean_sent = re.sub(r'^[0-9]+\.\s*|^[-*•]\s*', '', sent).strip()
955
  if clean_sent:
956
  if not clean_sent.endswith('.'):
 
963
  elements.append(Paragraph(rem_final_text, normal))
964
  elements.append(Spacer(1, 25))
965
 
966
+
967
  # --- APPENDIX: REQUIRES MANUAL VERIFICATION (ONLY IF UNCONFIRMED FINDINGS EXIST) ---
968
  target_findings_list = vulnerabilities if 'vulnerabilities' in locals() and vulnerabilities is not None else (findings if 'findings' in locals() and findings is not None else getattr(scan, 'vulnerabilities', []))
969