From 13755bacdb7c1edae5a7935cc4903f3ec88c6175 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 17 Nov 2024 01:58:47 +0100 Subject: [PATCH] Improve export html for libreoffice writer --- app/views/exports/show.html.slim | 187 +++++++++++----------------- app/views/layouts/exports.html.slim | 2 +- 2 files changed, 77 insertions(+), 112 deletions(-) diff --git a/app/views/exports/show.html.slim b/app/views/exports/show.html.slim index a4bfc07..4408d2b 100644 --- a/app/views/exports/show.html.slim +++ b/app/views/exports/show.html.slim @@ -1,37 +1,3 @@ -/ 1.0 Einschtzung -/ 1.1 Zielsetzung und Ausgangslage -/ 1.2 Wie wurde getestet -/ 1.3 Einschätzung - -/ 2.0 Protokoll -/ 2.1. Seite -/ -Pfad -/ 2.1.1 Element -/ -Position (nur wenn Inhalt) -/ -Kommentar (nur wenn Inhalt) -/ 2.1.1.1 Check -/ -Quick Criteria -/ -Quick Fail -/ -Quick Fix -/ -Kommentar (nur wenn Inhalt) -/ 2.2. Seite -/ 2.2.1 Element -/ 2.2.1.1 Check - -/ 3.0 Anahng -/ 3.1.Check -/ -WCAG Nr. (nur wenn Inhalt) -/ -WCAG Link (nur wenn Inhalt) -/ -Konformität (nur wenn Inhalt) -/ -Anmerkung Konformität (nur wenn Inhalt) -/ -Priorität (nur wenn Inhalt) -/ -Kriterium/Grundlage (nur wenn Inhalt) -/ -Ausnahmen (nur wenn Inhalt) -/ -Verstehen (nur wenn Inhalt) -/ -Beispiel (nur wenn Inhalt)- -/ -Anmerkung (nur wenn Inhalt) -/ -Links (nur wenn Inhalt) - css: .trix-content:has(*) { font-family: "Serif"; @@ -42,6 +8,29 @@ css: margin-left: 10rem; } +/nav + = link_to(@report.name, "##{dom_id(@report)}") + ul + li = link_to("Inhaltsverzeichnis", "#toc") + li + = link_to('Testbericht') + ul + - @report.pages.select { |p| p.elements.any? { |e| e.success_criteria.any?(&:failed?) } }.each do |page| + li + = link_to("#{page.position} #{page.path}", "##{dom_id(page)}") + ul + - page.elements.select { |e| e.success_criteria.any?(&:failed?) }.each do |element| + li + = link_to("#{element.number} #{element.title}") + ul + - element.success_criteria.select(&:failed?).each do |sc| + li = link_to("#{sc.number} #{sc.title}", "##{dom_id(sc)}") + li + = link_to("Anhang") + ul + - @failed_success_criteria.group_by(&:check).each do |check, scs| + li = link_to(check.display_label) + h1 id=dom_id(@report) = @report.name h2 1 Einschätzung @@ -73,85 +62,61 @@ h2 2 Protokoll h5 = "2.#{current_page_pos}.#{current_element_pos}.#{current_sc_pos} #{sc.title}" - if sc.test_comment? p = sc.test_comment - dl - dt Kriterium - dd = sc.quick_criterion - dt Fail - dd = sc.quick_fail - dt Fix - dd = sc.quick_fix - dt WCAG - dd = link_to(sc.check.external_number, sc.check.external_url) + - safe_display(sc.quick_criterion) do + strong Kriterium + .body_text = _1 + - safe_display(sc.quick_fail) do + strong Quick Fail + .body_text = _1 + - safe_display(sc.quick_fix) do + strong Kriterium + .body_text = _1 + strong WCAG + .body_text = link_to(sc.check.external_number, sc.check.external_url) -nav - = link_to(@report.name, "##{dom_id(@report)}") - ul - li = link_to("Inhaltsverzeichnis", "#toc") - li - = link_to('Testbericht') - ul - - @report.pages.select { |p| p.elements.any? { |e| e.success_criteria.any?(&:failed?) } }.each do |page| - li - = link_to("#{page.position} #{page.path}", "##{dom_id(page)}") - ul - - page.elements.select { |e| e.success_criteria.any?(&:failed?) }.each do |element| - li - = link_to("#{element.number} #{element.title}") - ul - - element.success_criteria.select(&:failed?).each do |sc| - li = link_to("#{sc.number} #{sc.title}", "##{dom_id(sc)}") - li - = link_to("Anhang") - ul - - @failed_success_criteria.group_by(&:check).each do |check, scs| - li = link_to(check.display_label) +h2 3 Anhang - - -h2 Anhang - -h3 Liste der zu beachtenden WCAG Regeln +h3 3.1 Liste der zu beachtenden WCAG Regeln - @failed_success_criteria.group_by(&:check).sort_by{ |c, scs| c.number }.each do |check, scs| h4 = check.display_label - dl - - safe_display(check.external_number) do - dt WCAG Nummer - dd = _1 - - safe_display(check.external_url) do - dt WCAG Link - dd = _1 - - safe_display(check.conformity_level) do - dt Konformität - dd = _1 - - safe_display(check.conformity_notice_de) do - dt Anmerkung Konformität - dd = _1 - - safe_display(check.priority) do - dt Priorität - dd = _1 - - safe_display(check.criterion_de) do - dt Kriterium/Grundlage - dd = _1 - - safe_display(check.exemption_details_de) do - dt Ausnahmen - dd = _1 - - safe_display(check.criterion_details_de) do - dt Verstehen - dd = _1 - - safe_display(check.example_de) do - dt Beispiel - dd = _1 - - safe_display(check.annotation_de) do - dt Anmerkung - dd = _1 - - if check.links.any? - dt Links - dd - - check.links.group_by(&:category).each do |category, links| - strong = category - ul - - links.each do |l| - li = link_to(l.text, l.url) - dt Erfolgskriterien - dd = scs.map(&:number).join(", ") + - safe_display(check.external_number) do + strong WCAG Nummer + .body_text = _1 + - safe_display(check.external_url) do + strong WCAG Link + .body_text = _1 + - safe_display(check.conformity_level) do + strong Konformität + .body_text = _1 + - safe_display(check.conformity_notice_de) do + strong Anmerkung Konformität + .body_text = _1 + - safe_display(check.priority) do + strong Priorität + .body_text = _1 + - safe_display(check.criterion_de) do + strong Kriterium/Grundlage + .body_text = _1 + - safe_display(check.exemption_details_de) do + strong Ausnahmen + .body_text = _1 + - safe_display(check.criterion_details_de) do + strong Verstehen + .body_text = _1 + - safe_display(check.example_de) do + strong Beispiel + .body_text = _1 + - safe_display(check.annotation_de) do + strong Anmerkung + .body_text = _1 + - if check.links.any? + strong Links + .body_text + - check.links.group_by(&:category).each do |category, links| + strong = category + ul + - links.each do |l| + li = link_to(l.text, l.url) + strong Erfolgskriterien + .body_text = scs.map(&:number).join(", ") diff --git a/app/views/layouts/exports.html.slim b/app/views/layouts/exports.html.slim index 28f8a3a..469c94a 100644 --- a/app/views/layouts/exports.html.slim +++ b/app/views/layouts/exports.html.slim @@ -8,5 +8,5 @@ html data-bs-theme="light" data-controller="set-theme" = stylesheet_link_tag "exports", "data-turbo-track": "reload" = javascript_include_tag "application", "data-turbo-track": "reload", type: "module" body - main#main-content + main.container#main-content = yield