All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.svws_nrw.module.reporting.html.HtmlTemplateDefinition Maven / Gradle / Ivy

Go to download

Diese Bibliothek unterstützt das Generieren von Reports in den Formaten HTML und PDF für die Schulverwaltungssoftware in NRW

There is a newer version: 1.0.1
Show newest version
package de.svws_nrw.module.reporting.html;

import java.util.Arrays;
import java.util.List;

import de.svws_nrw.core.types.benutzer.BenutzerKompetenz;
import de.svws_nrw.core.types.reporting.ReportingReportvorlage;

/**
 * Eine ENUM der integrierten Report-Vorlagen des SVWS-Servers.
 * Sie definiert die im CoreType {@link ReportingReportvorlage} angelegten Report-Vorlagen
 * hinsichtlich der verwendeten Template-Dateien und Benutzerrechte genauer.
 * --------
 * Hinweis:
 * --------
 * Die Bezeichnungen der ENUM-Werte dienen auch dazu, die Daten-Contexts korrekt zu füllen.
 * Die Benennung der Vorlagen erfolgt nach dem Schema Hauptdaten_v_Detaildaten. Bei der Report-Generierung erfolgt in
 * Teilen ein entsprechendes Füllen der Datenkontexte anhand der Benennung.
 * ----------
 * Anmerkung:
 * ----------
 * Es gibt zwei Einträge für die erzeugung des Dateinamens. Einen "statischen" Dateinamen und eine Dateinamensvorlage.
 * Die Vorlage stellt den BODY eines html-Thymeleaf-Templates dar, welches eine einzige Zeile mit einem Absatz-Tag
 * ergeben muss. Diese Zeile wird dann für die Erzeugung des Dateinamens aus den Daten genutzt.
 */
public enum HtmlTemplateDefinition {

	/** Report-Vorlage: GOSt - Klausurplanung - Klausurtermine - Kurse */
	GOST_KLAUSURPLANUNG_v_KLAUSURTERMINE_MIT_KURSEN(
			ReportingReportvorlage.GOST_KLAUSURPLANUNG_v_KLAUSURTERMINE_MIT_KURSEN,
			"de/svws_nrw/module/reporting/gost/klausurplanung/GostKlausurplanungKlausurtermineMitKursen.html",
			"de/svws_nrw/module/reporting/gost/klausurplanung/GostKlausurplanungKlausurtermineMitKursen.css",
			"GOSt-Klausurplanung-Klausurtermine-Kurse",
			"""
			        

""", Arrays.asList(BenutzerKompetenz.OBERSTUFE_LAUFBAHNPLANUNG_ALLGEMEIN, BenutzerKompetenz.OBERSTUFE_LAUFBAHNPLANUNG_FUNKTIONSBEZOGEN, BenutzerKompetenz.OBERSTUFE_KURSPLANUNG_ALLGEMEIN, BenutzerKompetenz.OBERSTUFE_KURSPLANUNG_FUNKTIONSBEZOGEN)), /** Report-Vorlage: GOSt - Kursplanung - Kurs - Kurschüler */ GOST_KURSPLANUNG_v_KURS_MIT_KURSSCHUELERN( ReportingReportvorlage.GOST_KURSPLANUNG_v_KURS_MIT_KURSSCHUELERN, "de/svws_nrw/module/reporting/gost/kursplanung/GostKursplanungKursMitKursschuelern.html", "de/svws_nrw/module/reporting/gost/kursplanung/GostKursplanungKursMitKursschuelern.css", "GOSt-Blockungsergebnis-Kurs-Schueler", """

""", Arrays.asList(BenutzerKompetenz.OBERSTUFE_LAUFBAHNPLANUNG_ALLGEMEIN, BenutzerKompetenz.OBERSTUFE_LAUFBAHNPLANUNG_FUNKTIONSBEZOGEN, BenutzerKompetenz.OBERSTUFE_KURSPLANUNG_ALLGEMEIN, BenutzerKompetenz.OBERSTUFE_KURSPLANUNG_FUNKTIONSBEZOGEN)), /** Report-Vorlage: GOSt - Kursplanung - Kurse - Statistikwerten */ GOST_KURSPLANUNG_v_KURSE_MIT_STATISTIKWERTEN( ReportingReportvorlage.GOST_KURSPLANUNG_v_KURSE_MIT_STATISTIKWERTEN, "de/svws_nrw/module/reporting/gost/kursplanung/GostKursplanungKurseMitStatistikwerten.html", "de/svws_nrw/module/reporting/gost/kursplanung/GostKursplanungKurseMitStatistikwerten.css", "GOSt-Blockungsergebnis-Kurse-Statistikwerte", """

""", Arrays.asList(BenutzerKompetenz.OBERSTUFE_LAUFBAHNPLANUNG_ALLGEMEIN, BenutzerKompetenz.OBERSTUFE_LAUFBAHNPLANUNG_FUNKTIONSBEZOGEN, BenutzerKompetenz.OBERSTUFE_KURSPLANUNG_ALLGEMEIN, BenutzerKompetenz.OBERSTUFE_KURSPLANUNG_FUNKTIONSBEZOGEN)), /** Report-Vorlage: GOSt - Kursplanung - Schüler - Kurse */ GOST_KURSPLANUNG_v_SCHUELER_MIT_KURSEN( ReportingReportvorlage.GOST_KURSPLANUNG_v_SCHUELER_MIT_KURSEN, "de/svws_nrw/module/reporting/gost/kursplanung/GostKursplanungSchuelerMitKursen.html", "de/svws_nrw/module/reporting/gost/kursplanung/GostKursplanungSchuelerMitKursen.css", "GOSt-Blockungsergebnis-Schueler-Kurse", """

""", Arrays.asList(BenutzerKompetenz.OBERSTUFE_LAUFBAHNPLANUNG_ALLGEMEIN, BenutzerKompetenz.OBERSTUFE_LAUFBAHNPLANUNG_FUNKTIONSBEZOGEN, BenutzerKompetenz.OBERSTUFE_KURSPLANUNG_ALLGEMEIN, BenutzerKompetenz.OBERSTUFE_KURSPLANUNG_FUNKTIONSBEZOGEN)), /** Report-Vorlage: GOSt - Kursplanung - Schüler - Schienen-Kurse */ GOST_KURSPLANUNG_v_SCHUELER_MIT_SCHIENEN_KURSEN( ReportingReportvorlage.GOST_KURSPLANUNG_v_SCHUELER_MIT_SCHIENEN_KURSEN, "de/svws_nrw/module/reporting/gost/kursplanung/GostKursplanungSchuelerMitSchienenKursen.html", "de/svws_nrw/module/reporting/gost/kursplanung/GostKursplanungSchuelerMitSchienenKursen.css", "GOSt-Blockungsergebnis-Schueler-Schienen-Kurse", """

""", Arrays.asList(BenutzerKompetenz.OBERSTUFE_LAUFBAHNPLANUNG_ALLGEMEIN, BenutzerKompetenz.OBERSTUFE_LAUFBAHNPLANUNG_FUNKTIONSBEZOGEN, BenutzerKompetenz.OBERSTUFE_KURSPLANUNG_ALLGEMEIN, BenutzerKompetenz.OBERSTUFE_KURSPLANUNG_FUNKTIONSBEZOGEN)), /** Report-Vorlage: Schüler - GOSt - Abitur - APO - Anlage 12 (Abiturzeugnis) */ SCHUELER_v_GOST_ABITUR_APO_ANLAGE_12( ReportingReportvorlage.SCHUELER_v_GOST_ABITUR_APO_ANLAGE_12, "de/svws_nrw/module/reporting/schueler/gost/abitur/apo/SchuelerGostAbiturApoAnlage12.html", "de/svws_nrw/module/reporting/schueler/gost/abitur/apo/SchuelerGostAbiturApoAnlage12.css", "APO-GOSt-Anlage12", """

APO-GOSt-Anlage12

""", Arrays.asList(BenutzerKompetenz.ABITUR_ANSEHEN_ALLGEMEIN, BenutzerKompetenz.ABITUR_ANSEHEN_FUNKTIONSBEZOGEN)), /** Report-Vorlage: Schüler - GOSt - Laufbahnplanung - Ergebnisübersicht */ SCHUELER_v_GOST_LAUFBAHNPLANUNG_ERGEBNISUEBERSICHT( ReportingReportvorlage.SCHUELER_v_GOST_LAUFBAHNPLANUNG_ERGEBNISUEBERSICHT, "de/svws_nrw/module/reporting/schueler/gost/laufbahnplanung/SchuelerGostLaufbahnplanungErgebnisuebersicht.html", "de/svws_nrw/module/reporting/schueler/gost/laufbahnplanung/SchuelerGostLaufbahnplanungErgebnisuebersicht.css", "GOSt-Laufbahnplanung-Pruefungsergebnisse", """

GOSt-Laufbahnplanung-Pruefungsergebnisse"

""", Arrays.asList(BenutzerKompetenz.OBERSTUFE_LAUFBAHNPLANUNG_ALLGEMEIN, BenutzerKompetenz.OBERSTUFE_LAUFBAHNPLANUNG_FUNKTIONSBEZOGEN, BenutzerKompetenz.OBERSTUFE_KURSPLANUNG_ALLGEMEIN, BenutzerKompetenz.OBERSTUFE_KURSPLANUNG_FUNKTIONSBEZOGEN)), /** Report-Vorlage: Schüler - GOSt - Laufbahnplanung - Wahlbogen */ SCHUELER_v_GOST_LAUFBAHNPLANUNG_WAHLBOGEN( ReportingReportvorlage.SCHUELER_v_GOST_LAUFBAHNPLANUNG_WAHLBOGEN, "de/svws_nrw/module/reporting/schueler/gost/laufbahnplanung/SchuelerGostLaufbahnplanungWahlbogen.html", "de/svws_nrw/module/reporting/schueler/gost/laufbahnplanung/SchuelerGostLaufbahnplanungWahlbogen.css", "GOSt-Laufbahnplanung-Wahlboegen", """

GOSt-Laufbahnplanung-Wahlboegen"

""", Arrays.asList(BenutzerKompetenz.OBERSTUFE_LAUFBAHNPLANUNG_ALLGEMEIN, BenutzerKompetenz.OBERSTUFE_LAUFBAHNPLANUNG_FUNKTIONSBEZOGEN, BenutzerKompetenz.OBERSTUFE_KURSPLANUNG_ALLGEMEIN, BenutzerKompetenz.OBERSTUFE_KURSPLANUNG_FUNKTIONSBEZOGEN)); /** Der CoreType {@link ReportingReportvorlage} dieser Template-Definition. */ private final ReportingReportvorlage reportingReportvorlage; /** Der Pfad zur html-Template-Datei dieser Template-Definition. */ private final String pfadHtmlTemplate; /** Der Pfad zur CSS-Datei der html-Template-Datei dieser Template-Definition. */ private final String pfadCss; /** Der statische Dateiname ohne Dateiendung, der bei der Ausgabe als ZIP-Datei verwendet wird. */ private final String dateiname; /** Die Vorlage für dynamische Generierung des Dateinamens ohne Dateiendung. Sie ist in der Form eines thymeleaf-html-Templates anzulegen. */ private final String dateinamensvorlage; /** Die List mit Benutzerkompetenzen gemäß {@link BenutzerKompetenz}, die zur Nutzung des Templates erforderlich sind. */ private final List benutzerKompetenzen; /** * Erstellt eine neue Template-Definition * @param reportingReportvorlage Der CoreType {@link ReportingReportvorlage} des Templates * @param pfadHtmlTemplate Der Pfad zur html-Template-Datei * @param pfadCss Pfad zur CSS-Datei der html-Template-Datei * @param dateiname Der statische Dateiname ohne Dateiendung, der bei der Ausgabe als ZIP-Datei verwendet wird. * @param dateinamensvorlage Die Vorlage für dynamische Generierung des Dateinamens ohne Dateiendung. Sie ist in der Form eines thymeleaf-html-Templates anzulegen. * @param benutzerKompetenzen Die List mit Benutzerkompetenzen gemäß {@link BenutzerKompetenz}, die zur Nutzung des Templates erforderlich sind. */ HtmlTemplateDefinition(final ReportingReportvorlage reportingReportvorlage, final String pfadHtmlTemplate, final String pfadCss, final String dateiname, final String dateinamensvorlage, final List benutzerKompetenzen) { this.reportingReportvorlage = reportingReportvorlage; this.pfadHtmlTemplate = pfadHtmlTemplate; this.pfadCss = pfadCss; this.dateiname = dateiname; this.dateinamensvorlage = dateinamensvorlage; this.benutzerKompetenzen = benutzerKompetenzen; } /** * Gibt den CoreType {@link ReportingReportvorlage} dieser Template-Definition zurück * @return Der CoreType dieser Template-Definition */ public ReportingReportvorlage getReportingReportvorlage() { return this.reportingReportvorlage; } /** * Gibt den Dateipfad der html-Template-Datei dieser Template-Definition zurück * @return Der Dateipfad zur html-Template-Datei */ public String getPfadHtmlTemplate() { return this.pfadHtmlTemplate; } /** * Gibt den Dateipfad der CSS_Datei zur html-Template-Datei dieser Template-Definition zurück * @return Der Dateipfad zur CSS-Datei */ public String getPfadCss() { return this.pfadCss; } /** * Gibt den statischen Dateinamen ohne Dateiendung zurück, der bei der Ausgabe als ZIP-Datei verwendet wird. * @return Der statische Dateiname */ public String getDateiname() { return this.dateiname; } /** * Gibt die Vorlage für die dynamische Generierung des Dateinamens ohne Dateiendung zurück. * @return Die Vorlage für den Dateinamen */ public String getDateinamensvorlage() { return """ Dateinamensdefinition %s """.formatted(this.dateinamensvorlage); } /** * Gibt die Benutzer-Kompetenzen für diese Template-Definition zurück * @return Die Liste der Benutzerkompetenzen */ public List getBenutzerKompetenzen() { return this.benutzerKompetenzen; } /** * Diese Methode ermittelt die Report-Vorlage anhand des übergebenen Namens. * @param reportingReportvorlage Der CoreType der Report-Vorlage * @return Die TemplateDefinition */ public static HtmlTemplateDefinition getByType(final ReportingReportvorlage reportingReportvorlage) { for (final HtmlTemplateDefinition td : HtmlTemplateDefinition.values()) if (td.reportingReportvorlage == reportingReportvorlage) return td; return null; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy