holzi weg

This commit is contained in:
2026-07-25 13:56:02 +00:00
parent 45b37597a9
commit 4f34d373d5
10 changed files with 26 additions and 18 deletions

View File

@@ -37,7 +37,7 @@ app.config["GOOGLE_MAPS_EMBED_URL"] = os.environ.get(
)
app.config["WEDDING_DATE"] = os.environ.get("WEDDING_DATE", "")
app.config["WEDDING_COUNTDOWN_ISO"] = os.environ.get("WEDDING_COUNTDOWN_ISO", "")
app.config["WEDDING_COUNTDOWN_LOCAL"] = os.environ.get("WEDDING_COUNTDOWN_LOCAL", "2026-09-04 15:00")
app.config["WEDDING_COUNTDOWN_LOCAL"] = os.environ.get("WEDDING_COUNTDOWN_LOCAL", "2026-09-04 16:00")
app.config["WEDDING_TIMEZONE"] = os.environ.get("WEDDING_TIMEZONE", "Europe/Berlin")
app.config["HERO_IMAGE_FILENAME"] = os.environ.get("HERO_IMAGE_FILENAME")
@@ -157,7 +157,6 @@ DEFAULT_INVITATION_GROUPS = [
"members": ["Lana", "Eric"],
},
{"name": "Britta", "password": "Brit!Tanz24#", "role": "guest", "members": ["Britta"]},
{"name": "Holzi", "password": "Holz!Ring24#", "role": "guest", "members": ["Holzi"]},
{"name": "Eirene", "password": "Eire$Fest24!", "role": "guest", "members": ["Eirene"]},
{
"name": "Family Hynes",
@@ -334,13 +333,14 @@ TEXTS = {
"hero_app_hint_single": "In dieser Webapp kannst du zu- oder absagen, Fotos hochladen, die Galerie ansehen und alle wichtigen Infos rund um den Tag finden. Im Header findest du außerdem unsere FAQ und eine Deutsch-Englisch-Übersetzungshilfe. Bitte gib deine Zu- oder Absage möglichst bald ab.",
"hero_app_hint": "In dieser Webapp könnt ihr zu- oder absagen, Fotos hochladen, die Galerie ansehen und alle wichtigen Infos rund um den Tag finden. Im Header findet ihr außerdem unsere FAQ und eine Deutsch-Englisch-Übersetzungshilfe. Bitte gebt eure Zu- oder Absage möglichst bald ab.",
"to_guest_area": "Zum Gästebereich",
"schedule_text": "15:00 Trauung, 17:00 Empfang, 19:00 Dinner.",
"schedule_text": "16:00 Ankunft, 16:15 Trauzeremonie, anschließend Sektempfang.",
"schedule_intro": "Hier findet ihr den Ablauf für unseren Hochzeitstag.",
"schedule_arrival_title": "Ankunft",
"schedule_arrival_text": "Wir freuen uns auf eure Ankunft.",
"schedule_ceremony_title": "Trauzeremonie",
"schedule_ceremony_text": "Trauzeremonie im Hof und Fotos.",
"schedule_reception_title": "Sektempfang & Häppchen",
"schedule_reception_time": "Im Anschluss",
"schedule_reception_text": "Sektempfang im Hof der Hochheimer Terrasse.",
"schedule_buffet_title": "Buffet-Eröffnung",
"schedule_buffet_text": "Das Buffet wird eröffnet, danach folgen die Brautpaarspiele. Später gibt es zusätzlich Käseplatten.",
@@ -418,7 +418,9 @@ TEXTS = {
"faq_change_question": "Kann ich meine Antwort später noch ändern?",
"faq_change_answer": "Ja, ihr könnt eure Zu- oder Absage jederzeit bis zum Ende der Rückmeldefrist anpassen.",
"faq_when_where_question": "Wann und wo findet die Hochzeit statt?",
"faq_when_where_answer": "Unsere Hochzeit beginnt um 15:30 Uhr auf der Hochheimer Terrasse. Weitere Informationen findet ihr auf der Location-Seite.",
"faq_when_where_answer": "Wir erwarten euch ab 16:00 Uhr auf der Hochheimer Terrasse. Die Trauzeremonie beginnt um 16:15 Uhr. Weitere Informationen findet ihr auf der Location-Seite.",
"faq_dresscode_question": "Gibt es einen Dresscode?",
"faq_dresscode_answer": "Wir wünschen uns festliche Abendgarderobe. Wählt gerne ein elegantes Outfit, in dem ihr euch wohlfühlt ob Kleid, Anzug oder eine andere festliche Kombination.",
"faq_parking_question": "Gibt es Parkmöglichkeiten?",
"faq_parking_answer": "In der Hochheimer Altstadt und in der näheren Umgebung gibt es viele Parkmöglichkeiten. Plant bitte etwas Zeit für die Parkplatzsuche und den anschließenden Fußweg ein.",
"faq_hotel_question": "Wo können wir übernachten?",
@@ -530,13 +532,14 @@ TEXTS = {
"hero_app_hint_single": "In this web app, you can send your RSVP, upload photos, view the gallery, and find all important details for the day. The header also includes our FAQ and a German-English translation helper. Please submit your RSVP soon.",
"hero_app_hint": "In this web app, you can send your RSVP, upload photos, view the gallery, and find all important details for the day. The header also includes our FAQ and a German-English translation helper. Please submit your RSVP soon.",
"to_guest_area": "Open guest area",
"schedule_text": "3:00 PM ceremony, 5:00 PM reception, 7:00 PM dinner.",
"schedule_text": "4:00 PM arrival, 4:15 PM wedding ceremony, followed by a sparkling reception.",
"schedule_intro": "Here is the schedule for our wedding day.",
"schedule_arrival_title": "Arrival",
"schedule_arrival_text": "We look forward to welcoming you.",
"schedule_ceremony_title": "Wedding Ceremony",
"schedule_ceremony_text": "Wedding ceremony in the courtyard and photos.",
"schedule_reception_title": "Sparkling Reception & Snacks",
"schedule_reception_time": "Afterwards",
"schedule_reception_text": "Sparkling reception in the courtyard of Hochheimer Terrasse.",
"schedule_buffet_title": "Buffet Opening",
"schedule_buffet_text": "The buffet opens, followed by wedding games. Cheese platters will be served later.",
@@ -614,7 +617,9 @@ TEXTS = {
"faq_change_question": "Can I change my response later?",
"faq_change_answer": "Yes, you can update your RSVP at any time before the response deadline.",
"faq_when_where_question": "When and where is the wedding taking place?",
"faq_when_where_answer": "Our wedding begins at 3:30 PM at Hochheimer Terrasse. You can find more information on the location page.",
"faq_when_where_answer": "We look forward to welcoming you from 4:00 PM at Hochheimer Terrasse. The wedding ceremony begins at 4:15 PM. You can find more information on the location page.",
"faq_dresscode_question": "Is there a dress code?",
"faq_dresscode_answer": "We would love for you to wear formal evening attire. Please choose an elegant outfit you feel comfortable in—whether that is a dress, a suit, or another festive ensemble.",
"faq_parking_question": "Is parking available?",
"faq_parking_answer": "There are plenty of parking options in Hochheim's old town and the surrounding area. Please allow some extra time to find a space and walk to the venue.",
"faq_hotel_question": "Where can we stay overnight?",
@@ -717,7 +722,7 @@ def get_wedding_countdown_iso() -> str:
local_value = str(app.config.get("WEDDING_COUNTDOWN_LOCAL", "") or "").strip()
timezone_name = str(app.config.get("WEDDING_TIMEZONE", "Europe/Berlin") or "Europe/Berlin").strip()
if not local_value:
return "2026-09-04T15:00:00+02:00"
return "2026-09-04T16:00:00+02:00"
parsed_local = None
for fmt in ("%Y-%m-%d %H:%M", "%Y-%m-%dT%H:%M", "%Y-%m-%d %H:%M:%S", "%Y-%m-%dT%H:%M:%S"):
@@ -728,7 +733,7 @@ def get_wedding_countdown_iso() -> str:
continue
if parsed_local is None:
return "2026-09-04T15:00:00+02:00"
return "2026-09-04T16:00:00+02:00"
try:
tz = ZoneInfo(timezone_name)
@@ -1141,6 +1146,7 @@ def faq():
("faq_deadline_question", "faq_deadline_answer"),
("faq_change_question", "faq_change_answer"),
("faq_when_where_question", "faq_when_where_answer"),
("faq_dresscode_question", "faq_dresscode_answer"),
("faq_parking_question", "faq_parking_answer"),
("faq_hotel_question", "faq_hotel_answer"),
("faq_upload_question", "faq_upload_answer"),

Binary file not shown.

View File

@@ -707,6 +707,12 @@ input[type="file"]:focus {
height: 1.02rem;
}
.toolbar-translate-btn svg path {
stroke: currentColor;
stroke-width: 0.9;
stroke-linejoin: round;
}
.toolbar-row {
display: inline-flex;
align-items: center;

View File

@@ -7,7 +7,7 @@
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700&family=Source+Sans+3:wght@400;500;600&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="{{ url_for('static', filename='styles.css', v='20260724v') }}" />
<link rel="stylesheet" href="{{ url_for('static', filename='styles.css', v='20260724x') }}" />
</head>
<body>
<header class="topbar">

View File

@@ -13,17 +13,17 @@
<p>{{ t('schedule_intro') }}</p>
<div class="schedule-timeline">
<article class="schedule-item" style="--schedule-card-image: url('{{ url_for('static', filename='assets/ankunft.png') }}'); --schedule-card-position: center 18%;">
<p class="schedule-time">15:00</p>
<p class="schedule-time">16:00</p>
<h2>{{ t('schedule_arrival_title') }}</h2>
<p>{{ t('schedule_arrival_text') }}</p>
</article>
<article class="schedule-item" style="--schedule-card-image: url('{{ url_for('static', filename='assets/trauzermonie.png') }}'); --schedule-card-position: center 25%;">
<p class="schedule-time">15:30</p>
<p class="schedule-time">16:15</p>
<h2>{{ t('schedule_ceremony_title') }}</h2>
<p>{{ t('schedule_ceremony_text') }}</p>
</article>
<article class="schedule-item" style="--schedule-card-image: url('{{ url_for('static', filename='assets/sektempfang.png') }}'); --schedule-card-position: center 32%;">
<p class="schedule-time">16:00</p>
<p class="schedule-time">{{ t('schedule_reception_time') }}</p>
<h2>{{ t('schedule_reception_title') }}</h2>
<p>{{ t('schedule_reception_text') }}</p>
</article>