- Update Google Sheets integration to support optional tab names. - Add functionality to fetch and display public participants. - Revise event configuration in YAML for clarity and consistency. - Improve form layout with additional fields for contact information and meal preferences. - Create a new home page template for event selection. - Update success page to link back to the participants list.
196 lines
No EOL
8.6 KiB
HTML
196 lines
No EOL
8.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="nl">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>{{ event.title }}</title>
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
<style>
|
|
body { background-color: #f0f2f5; }
|
|
.form-card { max-width: 800px; margin: 40px auto; background: white; padding: 30px; border-radius: 10px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); }
|
|
.section-title { border-bottom: 2px solid #0d6efd; padding-bottom: 10px; margin-bottom: 20px; color: #0d6efd; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<div class="container">
|
|
<div class="form-card">
|
|
<h1 class="text-center mb-2">{{ event.title }}</h1>
|
|
<p class="text-center text-muted mb-4">{{ event.description }}</p>
|
|
|
|
<form method="POST">
|
|
<!-- Boot Info -->
|
|
<h4 class="section-title">De Boot</h4>
|
|
<div class="row g-3 mb-3">
|
|
<div class="col-md-6">
|
|
<label class="form-label">Klasse</label>
|
|
<select class="form-select" name="klasse" required>
|
|
<option value="" disabled selected>Kies...</option>
|
|
<option>Kajuitklasse</option>
|
|
<option>Openmeermans</option>
|
|
<option>Openeenmans</option>
|
|
</select>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label">Zeilnummer</label>
|
|
<input type="text" class="form-control" name="zeilnummer" required>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label">Bootnaam</label>
|
|
<input type="text" class="form-control" name="bootnaam" required>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label">Type</label>
|
|
<input type="text" class="form-control" name="boottype">
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Zeilvoering -->
|
|
<h4 class="section-title mt-4">Zeilvoering</h4>
|
|
<div class="row mb-3">
|
|
{% for sail in ['Genua', 'Rolfok', 'Spinaker', 'Halfwinder', 'Genaker', 'Alleen dacron'] %}
|
|
<div class="col-md-4">
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="checkbox" name="{{ sail|lower|replace(' ', '') }}" id="sail{{ loop.index }}">
|
|
<label class="form-check-label" for="sail{{ loop.index }}">{{ sail }}</label>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
|
|
<!-- Motor -->
|
|
<h4 class="section-title mt-4">Motor / Schroef</h4>
|
|
<div class="mb-3">
|
|
<select class="form-select" name="schroef">
|
|
<option>Geen motor</option>
|
|
<option>Buitenboordmotor uit het water</option>
|
|
<option>Buitenboordmotor in bun</option>
|
|
<option>Vaste schroef</option>
|
|
<option>Vaanstand/klap schroef</option>
|
|
</select>
|
|
</div>
|
|
|
|
<!-- Person Info -->
|
|
<h4 class="section-title mt-4">Schipper / Eigenaar</h4>
|
|
<div class="row g-3 mb-3">
|
|
<div class="col-12">
|
|
<label class="form-label">Naam</label>
|
|
<input type="text" class="form-control" name="naam" required>
|
|
</div>
|
|
<div class="col-md-8">
|
|
<label class="form-label">Straat + Huisnr</label>
|
|
<input type="text" class="form-control" name="straat">
|
|
</div>
|
|
<div class="col-md-4">
|
|
<label class="form-label">Postcode</label>
|
|
<input type="text" class="form-control" name="postcode">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label">Plaats</label>
|
|
<input type="text" class="form-control" name="plaats">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label">Land</label>
|
|
<input type="text" class="form-control" name="land" value="Nederland">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label">Telefoon (Mobiel)</label>
|
|
<input type="text" class="form-control" name="telefoonmobiel" required>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label">Telefoon (Vast)</label>
|
|
<input type="text" class="form-control" name="telefoonvast">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label">Email</label>
|
|
<input type="email" class="form-control" name="email" required>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label">Vereniging</label>
|
|
<input type="text" class="form-control" name="vereniging">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label">Licentienummer</label>
|
|
<input type="text" class="form-control" name="startlicentienummer">
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Eten & Drinken -->
|
|
<h4 class="section-title mt-4">Eten & Drinken</h4>
|
|
<div class="row g-3 mb-3">
|
|
<div class="col-md-6">
|
|
<label class="form-label">Aantal personen Buffet (Zaterdag)</label>
|
|
<input type="number" class="form-control" name="buffet" min="0" placeholder="0">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label">Aantal personen Ontbijt (Zondag)</label>
|
|
<input type="number" class="form-control" name="ontbijt" min="0" placeholder="0">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mb-4">
|
|
<label class="form-label">Opmerkingen</label>
|
|
<textarea class="form-control" name="opmerkingen" rows="3"></textarea>
|
|
</div>
|
|
|
|
<!-- Terms -->
|
|
<div class="alert alert-secondary text-small" style="font-size: 0.85rem; max-height: 150px; overflow-y: auto;">
|
|
<strong>Voorwaarden:</strong><br>
|
|
Deelnemers nemen deel aan dit evenement voor geheel eigen risico.
|
|
De organiserende vereniging kan nimmer aansprakelijk gesteld worden.
|
|
(Zie wedstrijdreglement voor volledige tekst).
|
|
</div>
|
|
|
|
<div class="form-check mb-4">
|
|
<input class="form-check-input" type="checkbox" required id="terms">
|
|
<label class="form-check-label" for="terms">Ik ga akkoord met de voorwaarden.</label>
|
|
</div>
|
|
|
|
<div class="d-grid">
|
|
<button type="submit" class="btn btn-primary btn-lg">Inschrijven</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
<!-- Participants List Section -->
|
|
<div class="form-card mt-5" id="deelnemers">
|
|
<h3 class="section-title">Huidige Deelnemers</h3>
|
|
|
|
{% if participants|length > 0 %}
|
|
<div class="table-responsive">
|
|
<table class="table table-striped table-hover">
|
|
<thead class="table-dark">
|
|
<tr>
|
|
<th>Klasse</th>
|
|
<th>Zeilnr</th>
|
|
<th>Bootnaam</th>
|
|
<th>Type</th>
|
|
<th>Schipper</th>
|
|
<th>Vereniging</th>
|
|
<th>Plaats</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for p in participants %}
|
|
<tr>
|
|
<td>{{ p.klasse }}</td>
|
|
<td>{{ p.zeilnummer }}</td>
|
|
<td>{{ p.bootnaam }}</td>
|
|
<td>{{ p.boottype }}</td>
|
|
<td>{{ p.naam }}</td>
|
|
<td>{{ p.vereniging }}</td>
|
|
<td>{{ p.plaats }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
{% else %}
|
|
<p class="text-center text-muted">Er zijn nog geen inschrijvingen.</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</body>
|
|
</html> |