Merge pull request 'Füge Funktion zur Umwandlung von Saison-Slugs in Labels hinzu und aktualisiere PDF-Daten mit saisonalen Informationen' (#45) from dev into main
Reviewed-on: #45
This commit was merged in pull request #45.
This commit is contained in:
@@ -3,6 +3,12 @@ import path from 'path'
|
||||
import { readSpielplanData, validateSeasonSlug } from '../../utils/spielplan-data.js'
|
||||
import { info as loggerInfo, error as loggerError } from '../../utils/logger.js'
|
||||
|
||||
function seasonSlugToLabel(slug) {
|
||||
const match = String(slug || '').match(/^(\d{2})--(\d{2})$/)
|
||||
if (!match) return ''
|
||||
return `20${match[1]}/${match[2]}`
|
||||
}
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
try {
|
||||
const query = getQuery(event)
|
||||
@@ -121,19 +127,19 @@ export default defineEventHandler(async (event) => {
|
||||
}
|
||||
|
||||
// Filtere nach Wettbewerb (Standard: Punktrunde)
|
||||
const wettbewerb = query.wettbewerb || 'punktrunde'
|
||||
// Muss zur Frontend-Logik passen: Punktrunde = alles, was kein Pokal ist.
|
||||
const wettbewerb = String(query.wettbewerb || 'punktrunde').toLowerCase().trim()
|
||||
if (wettbewerb !== 'alle') {
|
||||
filteredData = filteredData.filter(row => {
|
||||
const runde = (row.Runde || '').toLowerCase()
|
||||
const staffel = (row.Staffel || '').toLowerCase()
|
||||
const liga = (row.Liga || '').toLowerCase()
|
||||
const isPokal = runde.includes('pokal') || staffel.includes('pokal') || liga.includes('pokal')
|
||||
|
||||
if (wettbewerb === 'punktrunde') {
|
||||
return runde === 'vr' ||
|
||||
runde.includes('vorrunde') ||
|
||||
runde === 'rr' ||
|
||||
runde.includes('rückrunde') ||
|
||||
runde.includes('verbandsrunde')
|
||||
return !isPokal
|
||||
} else if (wettbewerb === 'pokal') {
|
||||
return runde === 'pokal' || runde.includes('pokal')
|
||||
return isPokal
|
||||
}
|
||||
|
||||
return true
|
||||
@@ -182,6 +188,15 @@ export default defineEventHandler(async (event) => {
|
||||
// Generiere LaTeX-Code für PDF
|
||||
const teamName = team.replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase())
|
||||
const currentDate = new Date().toLocaleDateString('de-DE')
|
||||
const seasonLabel = seasonSlugToLabel(spielplan.season) || 'Unbekannt'
|
||||
|
||||
loggerInfo('Spielplan-PDF Filterergebnis', {
|
||||
team,
|
||||
wettbewerb,
|
||||
season: spielplan.season,
|
||||
totalRows: dataRows.length,
|
||||
filteredRows: filteredData.length
|
||||
})
|
||||
|
||||
let latexContent = `
|
||||
\\documentclass[9pt,a4paper]{article}
|
||||
@@ -197,13 +212,13 @@ export default defineEventHandler(async (event) => {
|
||||
|
||||
\\title{Spielplan ${teamName}}
|
||||
\\author{Harheimer TC}
|
||||
\\date{Saison 2025/26 - Stand: ${currentDate}}
|
||||
\\date{Saison ${seasonLabel} - Stand: ${currentDate}}
|
||||
|
||||
% PDF-Metadaten für Sicherheit
|
||||
\\usepackage[pdftex]{hyperref}
|
||||
\\hypersetup{
|
||||
pdfauthor={Harheimer TC},
|
||||
pdftitle={Spielplan ${teamName} - Saison 2025/26},
|
||||
pdftitle={Spielplan ${teamName} - Saison ${seasonLabel}},
|
||||
pdfsubject={Vereinsspielplan},
|
||||
pdfkeywords={Tischtennis, Spielplan, Harheimer TC, ${teamName}},
|
||||
pdfcreator={Harheimer TC CMS},
|
||||
|
||||
Reference in New Issue
Block a user