Refactored eintrag

This commit is contained in:
Simon Martens
2025-09-19 19:26:26 +02:00
parent 1d218f55b8
commit 2e6803afbe
6 changed files with 289 additions and 146 deletions

View File

@@ -0,0 +1,140 @@
package templatefunctions
import "github.com/Theodor-Springmann-Stiftung/kgpz_web/xmlmodels"
// CategoryFlags represents all possible category flags for a piece
type CategoryFlags struct {
Rezension bool
Weltnachrichten bool
EinkommendeFremde bool
Wechselkurse bool
Buecher bool
Lokalanzeigen bool
Lokalnachrichten bool
Lotterie bool
Gedicht bool
Vorladung bool
Auszug bool
Aufsatz bool
GelehrteNachrichten bool
Theaterkritik bool
Uebersetzung bool
Kommentar bool
Nachruf bool
Replik bool
Proklamation bool
Ineigenersache bool
Brief bool
Anzeige bool
Desertionsliste bool
Notenblatt bool
Vorlesungsverzeichnis bool
Erzaehlung bool
Nachtrag bool
Panegyrik bool
Kriminalanzeige bool
Abbildung bool
Rezepte bool
Korrektur bool
}
// GetCategoryFlags analyzes a piece and returns a CategoryFlags struct with all category flags set
func GetCategoryFlags(piece xmlmodels.Piece) CategoryFlags {
flags := CategoryFlags{}
// Process CategoryRefs
for _, catref := range piece.CategoryRefs {
switch catref.Ref {
case "rezension":
flags.Rezension = true
case "weltnachrichten":
flags.Weltnachrichten = true
case "einkommende-fremde":
flags.EinkommendeFremde = true
case "wechselkurse":
flags.Wechselkurse = true
case "buecher":
flags.Buecher = true
case "lokalanzeigen":
flags.Lokalanzeigen = true
case "lokalnachrichten":
flags.Lokalnachrichten = true
case "lotterie":
flags.Lotterie = true
case "gedicht":
flags.Gedicht = true
case "vorladung":
flags.Vorladung = true
case "auszug":
flags.Auszug = true
case "aufsatz":
flags.Aufsatz = true
case "gelehrte-nachrichten":
flags.GelehrteNachrichten = true
case "theaterkritik":
flags.Theaterkritik = true
case "uebersetzung":
flags.Uebersetzung = true
case "kommentar":
flags.Kommentar = true
case "nachruf":
flags.Nachruf = true
case "replik":
flags.Replik = true
case "proklamation":
flags.Proklamation = true
case "ineigenersache":
flags.Ineigenersache = true
case "brief":
flags.Brief = true
case "anzeige":
flags.Anzeige = true
case "desertionsliste":
flags.Desertionsliste = true
case "notenblatt":
flags.Notenblatt = true
case "vorlesungsverzeichnis":
flags.Vorlesungsverzeichnis = true
case "erzaehlung":
flags.Erzaehlung = true
case "nachtrag":
flags.Nachtrag = true
case "panegyrik":
flags.Panegyrik = true
case "kriminalanzeige":
flags.Kriminalanzeige = true
case "abbildung":
flags.Abbildung = true
case "rezepte":
flags.Rezepte = true
case "korrektur":
flags.Korrektur = true
}
}
// Process WorkRefs with category mapping
for _, workref := range piece.WorkRefs {
kat := workref.Category
if kat == "" {
kat = "rezension" // Default category for WorkRefs
}
switch kat {
case "rezension":
flags.Rezension = true
case "auszug":
flags.Auszug = true
case "theaterkritik":
flags.Theaterkritik = true
case "uebersetzung":
flags.Uebersetzung = true
case "kommentar":
flags.Kommentar = true
case "anzeige":
flags.Anzeige = true
case "replik":
flags.Replik = true
}
}
return flags
}