Make the calendar using pure HTML in Hugo

This commit is contained in:
Christian Wolf 2024-01-13 20:30:30 +01:00
parent 30bf4dab28
commit a2a55bf3a7
4 changed files with 350 additions and 0 deletions

View File

@ -0,0 +1,56 @@
---
title: "Raumbelegung man"
date: 2023-01-21T18:20:35+01:00
draft: false
menu:
main:
parent: info
weight: 1
---
Hier finden Sie die planmäßige Raumbelegung.
_Außerhalb der Trainings- und Kurszeiten können die Räume für Ihr freies Training gebucht werden._
Um die Verfügbarkeit für alle Mitgieder transparent zu halten und Überschneidungen zu vermeiden, bitten wir Sie, Ihre Belegung eines Saals hier frühzeitig zu hinterlegen. Die Anleitung finden Sie unten.
Bitte beachten Sie, dass die Nutzung der Räumlichkeiten ausschließlich zum Zwecke des Tanztrainings zulässig ist.
## Raumbelegung - planmäßig
Stand 02.12.2022
Die komplette {{< dld src="plan/2022-12-02/Belegung.pdf" >}}Saalbelegung als PDF{{< /dld >}} herunter laden.
![](plan/2022-12-02/Saalbelegung_A.jpg)
![](plan/2022-12-02/Saalbelegung_B.jpg)
{{< tsc/show-calendar 10 23 "Mo" "Di" "Mi" >}}
{{< tsc/show-calendar 14 23 "Do" "Fr" >}}
## Raumbelegung außerplanmäßig
### Belegungsplan heute
{{< tsc/iframe >}}https://cloud.tsc-vfl.de/index.php/apps/calendar/embed/d5KikZAZJfJxMHyK-RyoP44ym84oa5NFm-8DBYtgZwmkDsdemr/timeGridWeek/now{{< /tsc/iframe >}}
{{<tsc/calendar-color-table>}}
### Anleitung zur Raumbuchung
Wenn Sie **einmalig einen Raum buchen möchten**, senden Sie mindestens zwei Tage vor dem gewünschten Termin eine E-Mail an raumbuchung@dummy.com mit folgenden Angaben:
- Ihr Name (für Rückfragen, wird nicht öffentlich sichtbar)
- den Anlass (wird öffentlich sichtbar)
- gewünschter Saal
- konkreter Termin mit Datum, Uhrzeit und Dauer
Das TSC Team wird die Eintragung für Sie übernehmen. Sollten Sie die Reservierung doch nicht wahrnehmen können, bitten wir Sie um eine Info, damit der Saal für andere Mitglieder verfügbar sein kann.
**Bitte beachten Sie, dass das Team keine Überschneidungsprüfung vornehmen kann. Also prüfen Sie bitte stets vor der Anfrage die Verfügbarkeit.**
Wenn Sie **regelmäßig einen Raum buchen**, benötigen Sie einen Account in unserer Vereinsplattform "TSC Cloud Kalender". Um diesen Account zu erhalten, senden Sie bitte eine E-Mail an dummy-kontakt@dummy.com mit folgenden Angaben:
- Ihrem vollständigen Namen
- der gewünschten E-Mailadresse für den Account
- sowie das Stichwort "Registrierung Raumbuchung".
Sie erhalten zeitnah einen Registrierungslink sowie eine Anleitung, wie Sie Termine eintragen können.
Mit Ihren Anmeldedaten können Sie sich im TSC Cloud Kalender anmelden und Ihre Trainingstermine selbstständig eintragen. Bitte achten Sie auf die Verfügbarkeit des Saals!

145
data/calendar.yaml Normal file
View File

@ -0,0 +1,145 @@
calendar:
vorne:
Mo:
"17:00":
title: DS Kids 0
slots: 4
"18:15":
title: DS Adults 5
slots: 4
"19:15":
title: DS Contest Gruppe
slots: 8
Di:
"16:30":
title: DS Kids 4
slots: 4
Mi:
"14:30":
title: Kindertanz 4
slots: 4
"15:30":
title: Kindertanz 5
slots: 4
"16:30":
title: Kindertanz 6
slots: 6
"18:00":
title: DS Teens 0
slots: 4
"19:00":
title: Turnieraufbau Std
slots: 6
Do:
"17:00":
title: DS Kids 5
slots: 4
"18:15":
title: DS Kids 1
slots: 4
"19:30":
title: DS Adults 3
slots: 6
Fr:
"16:30":
title: DS Minis
slots: 4
"19:00":
title: Tanzkreis 6
slots: 6
"20:30":
title: Discofox
slots: 4
# Sa: {}
# So: {}
mitte:
Mo:
"17:30":
title: DS Teens 2
slots: 4
"18:30":
title: Ballet
slots: 6
"20:00":
title: Tanzkreis 1
slots: 6
Di:
"18:45":
title: DS Adults 1
slots: 4
"20:00":
title: Tanzkreis 2
slots: 8
Mi:
"17:00":
title: DS Kids 2
slots: 4
"18:00":
title: DS Kids 7
slots: 4
"19:00":
title: Tanzkreis 3
slots: 6
"20:30":
title: Tanzkreis 4
slots: 6
Do:
"19:30":
title: Tanzkreis 5
slots: 6
Fr:
"19:00":
title: Tanzkreis 0
slots: 6
"20:30":
title: Tanzkreis 9
slots: 6
Sa: {}
So: {}
hinten:
Mo:
"15:45":
title: Ballet
slots: 6
# "18:15":
# title: DS Adults 5
# slots: 4
Di:
"19:00":
title: Turnier Latein
slots: 4
"20:00":
title: Turnier Standard
slots: 8
Mi:
"10:30":
title: Ballet
slots: 6
"17:00":
title: DS Kids 3
slots: 4
"18:00":
title: DS Teens 1
slots: 4
"19:00":
title: DS Adults 0
slots: 4
"20:00":
title: Breitensport
slots: 6
Do:
"18:00":
title: Kindertanz 8 (Turnieraufbau)
slots: 6
Fr:
"14:30":
title: Kindertanz 0
slots: 4
"15:30":
title: Kindertanz 7
slots: 4
"16:30":
title: Kindertanz 2 (Turnieraufbau)
slots: 6
Sa: {}
So: {}

View File

@ -157,6 +157,91 @@ h1 {
}
}
.calendar-manual {
font-size: xx-small;
@include media-large() {
font-size: small;
}
tr {
height: 20px;
&.first-min {
border-top: solid lightgray 1px;
}
&:nth-of-type(n) {
background-color: unset;
}
.time {
vertical-align: top;
}
.time:last-of-type, .first-col-of-room {
border-left: solid lightgray 1px;
}
.day-title {
text-align: center;
}
}
.calendar-block {
position: relative;
.calendar-block-entity {
position: absolute;
top: 0;
left: 0;
width: 100%;
padding: 1.5px;
box-sizing: border-box;
&.height-1 {
height: 20px;
}
&.height-2 {
height: 40px;
}
&.height-3 {
height: 60px;
}
&.height-4 {
height: 80px;
}
&.height-5 {
height: 100px;
}
&.height-6 {
height: 120px;
}
&.height-7 {
height: 140px;
}
&.height-8 {
height: 160px;
}
.room-block {
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 3px;
overflow: hidden;
}
.room-vorne {
background-color: var(--color-vhvorne);
}
.room-mitte {
background-color: var(--color-vhmitte);
}
.room-hinten {
background-color: var(--color-vhhinten);
color: white;
}
}
}
}
.float-right {
float: right;
margin: 7px 0 7px 15px;

View File

@ -0,0 +1,64 @@
{{ $start := .Get 0 }}
{{ $end := .Get 1}}
{{ $days := after 2 .Params }}
{{ $calendar := $.Site.Data.calendar.calendar }}
<table class="calendar-manual">
<tr>
<th></th>
{{ range $days }}
<th colspan="3" class="day-title">{{ . }}</th>
{{ end }}
<th></th>
</tr>
<tr>
<th></th>
{{ range $days }}
<th class="first-col-of-room">vorne</th>
<th>mitte</th>
<th>hinten</th>
{{ end }}
<th></th>
</tr>
{{ range seq $start $end }}
{{ $hour := . }}
{{ range seq 0 15 45 }}
{{ $firstMin := "" }}
{{ if eq . 0 }}
{{ $firstMin = "first-min" }}
{{ end }}
<tr class="{{ $firstMin }}">
{{ $time := printf "%2d:%02d" $hour . }}
{{ if or (eq . 0) (eq . 30) }}
<td rowspan="2" class="time">{{ $time }}</td>
{{ end }}
{{ range $days }}
{{ $day := . }}
{{ $firstRoom := true }}
{{ range slice "vorne" "mitte" "hinten" }}
{{ $room := . }}
{{ $addClass := "" }}
{{ if $firstRoom }}
{{ $addClass = "first-col-of-room" }}
{{ $firstRoom = false }}
{{ end }}
{{ with index (index (index $calendar .) $day) $time }}
<td class="calendar-block {{ $addClass }}">
<div class="calendar-block-entity height-{{ .slots }}">
<div class="room-block room-{{ $room }}">
{{ .title }}
</div>
</div>
</td>
{{ else }}
<td class="{{ $addClass }}"></td>
{{ end }}
{{ end }}
{{ end }}
{{ if or (eq . 0) (eq . 30) }}
{{ $time := printf "%2d.%02d" $hour . }}
<td rowspan="2" class="time">{{ $time }}</td>
{{ end }}
</tr>
{{ end }}
{{ end }}
</table>