3fefc550fe
- Django backend with DRF (clubs, wrestlers, trainers, exercises, templates, trainings, homework, locations, leistungstest) - Next.js 16 frontend with React, Shadcn UI, Tailwind - JWT authentication - Full CRUD for all entities - Calendar view for trainings - Homework management system - Leistungstest tracking
133 lines
8.9 KiB
HTML
133 lines
8.9 KiB
HTML
<h2>Drei Ringer parallel — jeder seine eigene Zeile</h2>
|
|
<p class="subtitle">Wie eine Tabelle: pro Ringer eine Zeile. Alle 3 parallel. Eigene Zeiten pro Übung.</p>
|
|
|
|
<!-- Header: Timer -->
|
|
<div style="background:#1B1A55;border-radius:12px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;margin-bottom:16px">
|
|
<div style="display:flex;align-items:center;gap-16px">
|
|
<span style="font-size:13px;font-weight:600;color:#9290C3;text-transform:uppercase;letter-spacing:1px">Gemeinsame Zeit</span>
|
|
<div style="font-size:36px;font-weight:bold;color:white;font-family:monospace;letter-spacing:2px;margin-left:24px">05:23</div>
|
|
</div>
|
|
<div style="display:flex;gap:8px">
|
|
<button style="background:rgba(255,255,255,0.15);color:white;padding:8px 18px;border-radius:8px;border:none;font-size:13px;font-weight:500;cursor:pointer">⏸ Pausieren</button>
|
|
<button style="background:#dc2626;color:white;padding:8px 18px;border-radius:8px;border:none;font-size:13px;font-weight:500;cursor:pointer">■ Training beenden</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- WRESTLER ROWS: wie eine tabelle, aber pro ringer eine "zeile" -->
|
|
<div style="display:flex;flex-direction:column;gap:12px">
|
|
|
|
<!-- RINGER 1: Max — alle erledigt -->
|
|
<div style="border:2px solid #22c55e;border-radius:12px;overflow:hidden;background:#f0fdf4">
|
|
<div style="display:flex;align-items:center;padding:12px 16px;background:#dcfce7;border-bottom:1px solid #bbf7d0">
|
|
<div style="width:12px;height:12px;border-radius:50%;background:#22c55e;margin-right:10px;flex-shrink:0"></div>
|
|
<div style="flex:1">
|
|
<div style="font-weight:700;font-size:16px;color:#166534">Max Mustermann</div>
|
|
<div style="font-size:11px;color:#166534;margin-top:1px">✓ Alle 3 Übungen erledigt</div>
|
|
</div>
|
|
<div style="font-size:11px;color:#166534;background:#bbf7d0;padding:3px 10px;border-radius:10px;font-weight:600">3/3 ✓</div>
|
|
</div>
|
|
<div style="padding:14px 16px;display:flex;gap:10px;flex-wrap:wrap">
|
|
<div style="flex:1;min-width:120px;background:#bbf7d0;border-radius:8px;padding:10px 12px;border:1px solid #86efac">
|
|
<div style="font-size:11px;color:#166534;font-weight:600;margin-bottom:4px">Liegestütze</div>
|
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
<span style="font-size:10px;color:#166534">Soll: 30s</span>
|
|
<span style="font-size:13px;font-weight:700;color:#166534">✓ 0:28</span>
|
|
</div>
|
|
</div>
|
|
<div style="flex:1;min-width:120px;background:#bbf7d0;border-radius:8px;padding:10px 12px;border:1px solid #86efac">
|
|
<div style="font-size:11px;color:#166534;font-weight:600;margin-bottom:4px">Kniebeugen</div>
|
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
<span style="font-size:10px;color:#166534">Soll: 45s</span>
|
|
<span style="font-size:13px;font-weight:700;color:#166534">✓ 0:44</span>
|
|
</div>
|
|
</div>
|
|
<div style="flex:1;min-width:120px;background:#bbf7d0;border-radius:8px;padding:10px 12px;border:1px solid #86efac">
|
|
<div style="font-size:11px;color:#166534;font-weight:600;margin-bottom:4px">Burpees</div>
|
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
<span style="font-size:10px;color:#166534">Soll: 20s</span>
|
|
<span style="font-size:13px;font-weight:700;color:#166534">✓ 0:19</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- RINGER 2: Anna — aktiv -->
|
|
<div style="border:2px solid #1B1A55;border-radius:12px;overflow:hidden;background:#fff">
|
|
<div style="display:flex;align-items:center;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0">
|
|
<div style="width:12px;height:12px;border-radius:50%;background:#1B1A55;margin-right:10px;flex-shrink:0"></div>
|
|
<div style="flex:1">
|
|
<div style="font-weight:700;font-size:16px;color:#1B1A55">Anna Schmidt</div>
|
|
<div style="font-size:11px;color:#1B1A55;margin-top:1px">Aktive Übung: Kniebeugen</div>
|
|
</div>
|
|
<div style="font-size:11px;color:#a16207;background:#fef9c3;padding:3px 10px;border-radius:10px;font-weight:600">2/3</div>
|
|
</div>
|
|
<div style="padding:14px 16px;display:flex;gap:10px;flex-wrap:wrap">
|
|
<!-- Erledigt -->
|
|
<div style="flex:1;min-width:120px;background:#dcfce7;border-radius:8px;padding:10px 12px;border:1px solid #86efac">
|
|
<div style="font-size:11px;color:#166534;font-weight:600;margin-bottom:4px">Liegestütze</div>
|
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
<span style="font-size:10px;color:#166534">Soll: 30s</span>
|
|
<span style="font-size:13px;font-weight:700;color:#166534">✓ 0:28</span>
|
|
</div>
|
|
</div>
|
|
<!-- Aktiv: läuft -->
|
|
<div style="flex:1;min-width:160px;background:#fef9c3;border-radius:8px;padding:12px 14px;border:2px solid #eab308">
|
|
<div style="font-size:11px;color:#a16207;font-weight:600;margin-bottom:6px">▶ Kniebeugen</div>
|
|
<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:8px">
|
|
<span style="font-size:10px;color:#a16207">Soll: 45s</span>
|
|
<span style="font-size:18px;font-weight:700;color:#a16207;font-family:monospace">0:31</span>
|
|
</div>
|
|
<button style="width:100%;background:#166534;color:white;padding:7px;border-radius:6px;border:none;font-size:12px;font-weight:600;cursor:pointer">✓ Erledigt</button>
|
|
</div>
|
|
<!-- Ausstehend -->
|
|
<div style="flex:1;min-width:120px;background:#f8fafc;border-radius:8px;padding:10px 12px;border:1px solid #e2e8f0;opacity:0.7">
|
|
<div style="font-size:11px;color:#94a3b8;font-weight:600;margin-bottom:4px">Burpees</div>
|
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
<span style="font-size:10px;color:#94a3b8">Soll: 20s</span>
|
|
<span style="font-size:12px;color:#94a3b8">Ausstehend</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- RINGER 3: Tom — Start-Buttons -->
|
|
<div style="border:2px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#f8fafc">
|
|
<div style="display:flex;align-items:center;padding:12px 16px;background:#f1f5f9;border-bottom:1px solid #e2e8f0">
|
|
<div style="width:12px;height:12px;border-radius:50%;background:#94a3b8;margin-right:10px;flex-shrink:0"></div>
|
|
<div style="flex:1">
|
|
<div style="font-weight:600;font-size:16px;color:#64748b">Tom Klein</div>
|
|
<div style="font-size:11px;color:#94a3b8;margin-top:1px">Noch nicht gestartet</div>
|
|
</div>
|
|
<div style="font-size:11px;color:#94a3b8;background:#e2e8f0;padding:3px 10px;border-radius:10px;font-weight:600">0/3</div>
|
|
</div>
|
|
<div style="padding:14px 16px;display:flex;gap:10px;flex-wrap:wrap">
|
|
<div style="flex:1;min-width:140px;background:#fff;border-radius:8px;padding:10px 12px;border:1px solid #e2e8f0">
|
|
<div style="font-size:11px;color:#64748b;font-weight:600;margin-bottom:6px">Liegestütze</div>
|
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
<span style="font-size:10px;color:#94a3b8">Soll: 30s</span>
|
|
<button style="background:#1B1A55;color:white;padding:6px 12px;border-radius:6px;border:none;font-size:11px;font-weight:600;cursor:pointer">▶ Start</button>
|
|
</div>
|
|
</div>
|
|
<div style="flex:1;min-width:140px;background:#fff;border-radius:8px;padding:10px 12px;border:1px solid #e2e8f0">
|
|
<div style="font-size:11px;color:#64748b;font-weight:600;margin-bottom:6px">Kniebeugen</div>
|
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
<span style="font-size:10px;color:#94a3b8">Soll: 45s</span>
|
|
<button style="background:#e2e8f0;color:#94a3b8;padding:6px 12px;border-radius:6px;border:none;font-size:11px;font-weight:600;cursor:not-allowed">▶ Start</button>
|
|
</div>
|
|
</div>
|
|
<div style="flex:1;min-width:140px;background:#fff;border-radius:8px;padding:10px 12px;border:1px solid #e2e8f0">
|
|
<div style="font-size:11px;color:#64748b;font-weight:600;margin-bottom:6px">Burpees</div>
|
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
<span style="font-size:10px;color:#94a3b8">Soll: 20s</span>
|
|
<button style="background:#e2e8f0;color:#94a3b8;padding:6px 12px;border-radius:6px;border:none;font-size:11px;font-weight:600;cursor:not-allowed">▶ Start</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div style="margin-top:14px;padding:12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:12px;color:#64748b">
|
|
<strong>So funktioniert's:</strong> Alle 3 Ringer arbeiten parallel. Anna hat gerade Kniebeugen aktiv (gelb) — nach dem Klick auf "✓ Erledigt" startet Burpees automatisch. Tom kann jederzeit auf "▶ Start" bei Liegestütze klicken um seine erste Übung zu starten. Der globale Timer läuft für alle gemeinsam.
|
|
</div>
|