Rename unspecified coverage table title
This commit is contained in:
@@ -137,6 +137,7 @@ Backup tables are grouped under a level 1 title `VM/CT backups`.
|
|||||||
|
|
||||||
VM/CT are displayed in multiple tables, one table per namespace.
|
VM/CT are displayed in multiple tables, one table per namespace.
|
||||||
The title of each table indicates the relevant namespace.
|
The title of each table indicates the relevant namespace.
|
||||||
|
When the namespace is not specified, the table is titled `VM/CT without backup`.
|
||||||
|
|
||||||
Expected columns:
|
Expected columns:
|
||||||
|
|
||||||
|
|||||||
@@ -137,6 +137,7 @@ Les tableaux de sauvegarde sont regroupes sous un titre de niveau 1 `Sauvegarde
|
|||||||
|
|
||||||
Les VM/CT sont affichees dans plusieurs tableaux, un tableau par namespace.
|
Les VM/CT sont affichees dans plusieurs tableaux, un tableau par namespace.
|
||||||
Le titre de chaque tableau indique la namespace concernee.
|
Le titre de chaque tableau indique la namespace concernee.
|
||||||
|
Lorsque la namespace n'est pas renseignee, le tableau est titre `VM/CT non sauvegardée`.
|
||||||
|
|
||||||
Colonnes attendues :
|
Colonnes attendues :
|
||||||
|
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ TRANSLATIONS = {
|
|||||||
"missing_guests": "VM/CT non sauvegardees",
|
"missing_guests": "VM/CT non sauvegardees",
|
||||||
"coverage_group": "Sauvegarde des VM/CT",
|
"coverage_group": "Sauvegarde des VM/CT",
|
||||||
"coverage_title": "Sauvegarde des VM/CT - {namespace}",
|
"coverage_title": "Sauvegarde des VM/CT - {namespace}",
|
||||||
|
"coverage_unspecified_title": "VM/CT non sauvegardée",
|
||||||
"retention_group": "Retention des sauvegardes VM/CT",
|
"retention_group": "Retention des sauvegardes VM/CT",
|
||||||
"retention_title": "Retention des sauvegardes VM/CT {server_name} - {namespace}",
|
"retention_title": "Retention des sauvegardes VM/CT {server_name} - {namespace}",
|
||||||
"issues": "Anomalies",
|
"issues": "Anomalies",
|
||||||
@@ -116,6 +117,7 @@ TRANSLATIONS = {
|
|||||||
"missing_guests": "VM/CT without backup",
|
"missing_guests": "VM/CT without backup",
|
||||||
"coverage_group": "VM/CT backups",
|
"coverage_group": "VM/CT backups",
|
||||||
"coverage_title": "VM/CT backups - {namespace}",
|
"coverage_title": "VM/CT backups - {namespace}",
|
||||||
|
"coverage_unspecified_title": "VM/CT without backup",
|
||||||
"retention_group": "VM/CT backup retention",
|
"retention_group": "VM/CT backup retention",
|
||||||
"retention_title": "VM/CT backup retention {server_name} - {namespace}",
|
"retention_title": "VM/CT backup retention {server_name} - {namespace}",
|
||||||
"issues": "Anomalies",
|
"issues": "Anomalies",
|
||||||
|
|||||||
@@ -345,9 +345,7 @@ def build_coverage_sections(
|
|||||||
return [
|
return [
|
||||||
ReportSection(
|
ReportSection(
|
||||||
section_id="sauvegarde-vmct",
|
section_id="sauvegarde-vmct",
|
||||||
title=translator.text("coverage_title").format(
|
title=coverage_section_title("non renseigne", translator),
|
||||||
namespace=translator.cell("non renseigne")
|
|
||||||
),
|
|
||||||
headers=coverage_headers_without_namespace(translator),
|
headers=coverage_headers_without_namespace(translator),
|
||||||
rows=[],
|
rows=[],
|
||||||
empty_message=translator.text("no_guest"),
|
empty_message=translator.text("no_guest"),
|
||||||
@@ -374,7 +372,7 @@ def build_coverage_sections(
|
|||||||
sections.append(
|
sections.append(
|
||||||
ReportSection(
|
ReportSection(
|
||||||
section_id=f"sauvegarde-vmct-{section_id_fragment(namespace)}",
|
section_id=f"sauvegarde-vmct-{section_id_fragment(namespace)}",
|
||||||
title=translator.text("coverage_title").format(namespace=translator.cell(namespace)),
|
title=coverage_section_title(namespace, translator),
|
||||||
headers=coverage_headers_without_namespace(translator),
|
headers=coverage_headers_without_namespace(translator),
|
||||||
rows=rows,
|
rows=rows,
|
||||||
empty_message=translator.text("no_guest"),
|
empty_message=translator.text("no_guest"),
|
||||||
@@ -384,6 +382,12 @@ def build_coverage_sections(
|
|||||||
return sections
|
return sections
|
||||||
|
|
||||||
|
|
||||||
|
def coverage_section_title(namespace: str, translator: Translator) -> str:
|
||||||
|
if namespace == "non renseigne":
|
||||||
|
return translator.text("coverage_unspecified_title")
|
||||||
|
return translator.text("coverage_title").format(namespace=translator.cell(namespace))
|
||||||
|
|
||||||
|
|
||||||
def coverage_headers_without_namespace(translator: Translator) -> list[str]:
|
def coverage_headers_without_namespace(translator: Translator) -> list[str]:
|
||||||
return translator.row([
|
return translator.row([
|
||||||
"VMID",
|
"VMID",
|
||||||
|
|||||||
@@ -13,7 +13,9 @@ from pve_backup_report.models import (
|
|||||||
ReportData,
|
ReportData,
|
||||||
ReportSummary,
|
ReportSummary,
|
||||||
)
|
)
|
||||||
|
from pve_backup_report.i18n import Translator
|
||||||
from pve_backup_report.report_weasy_pdf import build_template_context
|
from pve_backup_report.report_weasy_pdf import build_template_context
|
||||||
|
from pve_backup_report.report_weasy_pdf import coverage_section_title
|
||||||
from pve_backup_report.report_weasy_pdf import render_html
|
from pve_backup_report.report_weasy_pdf import render_html
|
||||||
|
|
||||||
|
|
||||||
@@ -235,6 +237,11 @@ def test_render_html_keeps_css_unescaped() -> None:
|
|||||||
assert '<h1 class="section-group-title">Retention des sauvegardes VM/CT</h1>' not in html
|
assert '<h1 class="section-group-title">Retention des sauvegardes VM/CT</h1>' not in html
|
||||||
|
|
||||||
|
|
||||||
|
def test_coverage_section_title_renames_unspecified_namespace() -> None:
|
||||||
|
assert coverage_section_title("non renseigne", Translator("fr")) == "VM/CT non sauvegardée"
|
||||||
|
assert coverage_section_title("serveurs", Translator("fr")) == "Sauvegarde des VM/CT - serveurs"
|
||||||
|
|
||||||
|
|
||||||
def test_render_html_supports_english_labels() -> None:
|
def test_render_html_supports_english_labels() -> None:
|
||||||
report_data = ReportData(
|
report_data = ReportData(
|
||||||
coverage=[
|
coverage=[
|
||||||
|
|||||||
Reference in New Issue
Block a user