Testversion 1

This commit is contained in:
2026-02-19 19:03:20 +00:00
parent 879ebd53b0
commit 6353ba4707
18 changed files with 734 additions and 58 deletions

View File

@@ -0,0 +1,45 @@
<!doctype html>
<html lang="{{ lang }}">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>{{ t('brand') }}</title>
<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') }}" />
</head>
<body>
<header class="topbar">
<div>
<a class="brand" href="{{ url_for('dashboard') if guest_name else url_for('landing') }}">{{ t('brand') }}</a>
<div class="host">{{ request.host }}</div>
</div>
<div class="toolbar">
<form method="post" action="{{ url_for('set_lang', code='de') }}">
<button class="btn btn-ghost" type="submit">DE</button>
</form>
<form method="post" action="{{ url_for('set_lang', code='en') }}">
<button class="btn btn-ghost" type="submit">EN</button>
</form>
{% if guest_name %}
<form method="post" action="{{ url_for('logout') }}">
<button class="btn btn-ghost" type="submit">{{ t('logout') }}</button>
</form>
{% endif %}
</div>
</header>
<main class="container">
{% with messages = get_flashed_messages() %}
{% if messages %}
{% for message in messages %}
<p class="flash">{{ message }}</p>
{% endfor %}
{% endif %}
{% endwith %}
{% block content %}{% endblock %}
</main>
</body>
</html>

View File

@@ -0,0 +1,17 @@
{% extends 'base.html' %}
{% block content %}
<section class="card">
<h1>{{ t('dashboard') }}</h1>
<p>Hallo {{ guest_name }}.</p>
</section>
<section class="card-grid">
<a class="card link-card" href="{{ url_for('rsvp') }}">{{ t('rsvp') }}</a>
<a class="card link-card" href="{{ url_for('upload') }}">{{ t('upload') }}</a>
<a class="card link-card" href="{{ url_for('gallery') }}">{{ t('gallery') }}</a>
<a class="card link-card" href="{{ url_for('info', page='schedule') }}">{{ t('schedule') }}</a>
<a class="card link-card" href="{{ url_for('info', page='hotels') }}">{{ t('hotels') }}</a>
<a class="card link-card" href="{{ url_for('info', page='taxi') }}">{{ t('taxi') }}</a>
<a class="card link-card" href="{{ url_for('info', page='location') }}">{{ t('location') }}</a>
</section>
{% endblock %}

View File

@@ -0,0 +1,20 @@
{% extends 'base.html' %}
{% block content %}
<section class="card">
<h1>{{ t('gallery') }}</h1>
{% if images %}
<div class="gallery-grid">
{% for image in images %}
<figure class="gallery-item">
<a href="{{ url_for('serve_upload', filename=image['filename']) }}" target="_blank" rel="noopener">
<img src="{{ url_for('serve_upload', filename=image['filename']) }}" alt="Upload von {{ image['uploaded_by'] }}" loading="lazy" />
</a>
<figcaption>von {{ image['uploaded_by'] }}</figcaption>
</figure>
{% endfor %}
</div>
{% else %}
<p>Noch keine Bilder vorhanden.</p>
{% endif %}
</section>
{% endblock %}

View File

@@ -0,0 +1,31 @@
{% extends 'base.html' %}
{% block content %}
<section class="card">
<h1>
{% if page == 'schedule' %}{{ t('schedule') }}{% endif %}
{% if page == 'hotels' %}{{ t('hotels') }}{% endif %}
{% if page == 'taxi' %}{{ t('taxi') }}{% endif %}
{% if page == 'location' %}{{ t('location') }}{% endif %}
</h1>
{% if page == 'schedule' %}
<p>15:00 Trauung, 17:00 Empfang, 19:00 Dinner.</p>
{% elif page == 'hotels' %}
<p>Empfehlungen folgen. Bitte frühzeitig buchen.</p>
{% elif page == 'taxi' %}
<p>Taxi-Service: 01234 / 567890 (24/7).</p>
{% elif page == 'location' %}
<p><strong>{{ location_name }}</strong></p>
<p>{{ location_address }}</p>
<div class="map-wrap">
<iframe
src="{{ google_maps_embed_url }}"
loading="lazy"
referrerpolicy="no-referrer-when-downgrade"
allowfullscreen
></iframe>
</div>
<a class="btn" href="{{ location_website_url }}" target="_blank" rel="noopener">{{ t('visit_location') }}</a>
{% endif %}
</section>
{% endblock %}

View File

@@ -0,0 +1,24 @@
{% extends 'base.html' %}
{% block content %}
<section class="hero card">
<h1>{{ t('subtitle') }}</h1>
<p>Passwortgeschützter Zugriff für unsere Gäste.</p>
</section>
<section class="card form-card">
<h2>{{ t('login') }}</h2>
<form method="post" action="{{ url_for('login') }}" class="form-grid">
<label>
{{ t('name') }}
<input type="text" name="name" required />
</label>
<label>
{{ t('event_password') }}
<input type="password" name="event_password" required />
</label>
<button class="btn" type="submit">{{ t('login_submit') }}</button>
</form>
</section>
{% endblock %}

View File

@@ -0,0 +1,24 @@
{% extends 'base.html' %}
{% block content %}
<section class="card form-card">
<h1>{{ t('rsvp') }}</h1>
<form method="post" class="form-grid">
<label class="radio-row">
<input type="radio" name="attending" value="yes" {% if guest and guest['attending'] == 1 %}checked{% endif %} />
{{ t('attending') }}
</label>
<label class="radio-row">
<input type="radio" name="attending" value="no" {% if guest and guest['attending'] == 0 %}checked{% endif %} />
{{ t('not_attending') }}
</label>
<label>
<input type="checkbox" name="plus_one" {% if guest and guest['plus_one'] == 1 %}checked{% endif %} />
{{ t('plus_one') }}
</label>
<button class="btn" type="submit">{{ t('save') }}</button>
</form>
</section>
{% endblock %}

View File

@@ -0,0 +1,13 @@
{% extends 'base.html' %}
{% block content %}
<section class="card form-card">
<h1>{{ t('upload') }}</h1>
<form method="post" enctype="multipart/form-data" class="form-grid">
<label>
{{ t('file') }}
<input type="file" name="photo" accept=".jpg,.jpeg,.png" required />
</label>
<button class="btn" type="submit">{{ t('upload_submit') }}</button>
</form>
</section>
{% endblock %}