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
179 lines
12 KiB
HTML
179 lines
12 KiB
HTML
<h2>Pro Ringer: eigene Übungen, auto-start nach Erledigt</h2>
|
|
<p class="subtitle">Klick "Erledigt" → nächste Übung startet automatisch. Alle Ringer parallel, eigene Geschwindigkeit.</p>
|
|
|
|
<div style="display:flex;gap:16px;align-items:flex-start">
|
|
|
|
<!-- LINKS: Ringer-Liste -->
|
|
<div style="width:240px;flex-shrink:0">
|
|
<div style="font-weight:600;font-size:13px;color:#475569;margin-bottom:8px;text-transform:uppercase;letter-spacing:0.5px">Ringer</div>
|
|
<div style="border:1px solid #e2e8f0;border-radius:10px;overflow:hidden">
|
|
<div style="background:#f1f5f9;padding:10px 12px;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center">
|
|
<span style="font-size:12px;font-weight:600;color:#475569">3 Ringer</span>
|
|
<span style="font-size:11px;color:#64748b">2/3 ✓</span>
|
|
</div>
|
|
<div style="padding:8px;display:flex;flex-direction:column;gap:4px">
|
|
|
|
<!-- Max: alle erledigt -->
|
|
<div style="padding:10px;border-radius:8px;border:2px solid #22c55e;background:#dcfce7;cursor:pointer">
|
|
<div style="font-weight:600;font-size:13px">Max Mustermann</div>
|
|
<div style="font-size:11px;color:#166534;margin-top:3px">✓ Alle 3 Übungen</div>
|
|
<div style="margin-top:6px;display:flex;flex-direction:column;gap:3px">
|
|
<div style="font-size:10px;background:#bbf7d0;color:#166534;padding:2px 6px;border-radius:4px;text-align:center">✓ Liegestütze 0:28</div>
|
|
<div style="font-size:10px;background:#bbf7d0;color:#166534;padding:2px 6px;border-radius:4px;text-align:center">✓ Kniebeugen 0:44</div>
|
|
<div style="font-size:10px;background:#bbf7d0;color:#166534;padding:2px 6px;border-radius:4px;text-align:center">✓ Burpees 0:19</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Anna: aktiv bei Übung 2 -->
|
|
<div style="padding:10px;border-radius:8px;border:2px solid #1B1A55;background:#f8fafc;cursor:pointer">
|
|
<div style="font-weight:600;font-size:13px">Anna Schmidt</div>
|
|
<div style="font-size:11px;color:#1B1A55;margin-top:3px">Übung 2 von 3</div>
|
|
<div style="margin-top:6px;display:flex;flex-direction:column;gap:3px">
|
|
<div style="font-size:10px;background:#bbf7d0;color:#166534;padding:2px 6px;border-radius:4px;text-align:center">✓ Liegestütze 0:28</div>
|
|
<div style="font-size:10px;background:#fef9c3;color:#a16207;padding:2px 6px;border-radius:4px;text-align:center;border:1px solid #fde047">▶ Kniebeugen 0:31</div>
|
|
<div style="font-size:10px;background:#f1f5f9;color:#94a3b8;padding:2px 6px;border-radius:4px;text-align:center">○ Burpees</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Tom: noch nicht gestartet -->
|
|
<div style="padding:10px;border-radius:8px;border:1px solid #e2e8f0;background:#f8fafc;cursor:pointer;opacity:0.7">
|
|
<div style="font-weight:500;font-size:13px">Tom Klein</div>
|
|
<div style="font-size:11px;color:#94a3b8;margin-top:3px">Noch nicht gestartet</div>
|
|
<div style="margin-top:6px;display:flex;flex-direction:column;gap:3px">
|
|
<div style="font-size:10px;background:#f1f5f9;color:#94a3b8;padding:2px 6px;border-radius:4px;text-align:center">○ Liegestütze</div>
|
|
<div style="font-size:10px;background:#f1f5f9;color:#94a3b8;padding:2px 6px;border-radius:4px;text-align:center">○ Kniebeugen</div>
|
|
<div style="font-size:10px;background:#f1f5f9;color:#94a3b8;padding:2px 6px;border-radius:4px;text-align:center">○ Burpees</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- RECHTS: Detail-Ansicht des ausgewählten Ringers -->
|
|
<div style="flex:1">
|
|
<!-- Globaler Timer -->
|
|
<div style="background:#1B1A55;border-radius:12px;padding:20px;text-align:center;margin-bottom:16px">
|
|
<div style="font-size:14px;font-weight:600;color:#9290C3;margin-bottom:4px;text-transform:uppercase;letter-spacing:1px">Gemeinsame Zeit</div>
|
|
<div style="font-size:64px;font-weight:bold;color:white;font-family:monospace;letter-spacing:2px">05:23</div>
|
|
<div style="margin-top:12px;display:flex;gap:8px;justify-content:center">
|
|
<button style="background:rgba(255,255,255,0.15);color:white;padding:8px 20px;border-radius:8px;border:none;font-size:13px;font-weight:500;cursor:pointer">⏸ Pausieren</button>
|
|
<button style="background:#dc2626;color:white;padding:8px 20px;border-radius:8px;border:none;font-size:13px;font-weight:500;cursor:pointer">■ Training beenden</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Ringer Header -->
|
|
<div style="margin-bottom:12px;display:flex;align-items:center;gap:10px">
|
|
<div style="width:10px;height:10px;border-radius:50%;background:#1B1A55"></div>
|
|
<span style="font-weight:700;font-size:18px">Anna Schmidt</span>
|
|
<span style="font-size:12px;color:#64748b;background:#f1f5f9;padding:3px 10px;border-radius:10px">Übung 2 von 3</span>
|
|
<span style="font-size:12px;color:#166534;background:#dcfce7;padding:3px 10px;border-radius:10px">1/3 ✓</span>
|
|
</div>
|
|
|
|
<!-- Anna's Übungen -->
|
|
<div style="border:1px solid #e2e8f0;border-radius:10px;overflow:hidden">
|
|
<div style="background:#f1f5f9;padding:10px 14px;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center">
|
|
<span style="font-size:12px;font-weight:600;color:#475569">ANNA's ÜBUNGEN</span>
|
|
<span style="font-size:11px;color:#64748b">Soll-Zeit</span>
|
|
</div>
|
|
|
|
<!-- Übung 1: Erledigt -->
|
|
<div style="padding:14px;display:flex;align-items:center;gap:14px;border-bottom:1px solid #f1f5f9;background:#dcfce7">
|
|
<div style="width:32px;height:32px;border-radius:50%;background:#22c55e;display:flex;align-items:center;justify-content:center;color:white;font-size:18px;font-weight:bold;flex-shrink:0">✓</div>
|
|
<div style="flex:1">
|
|
<div style="font-weight:600;font-size:15px">Liegestütze</div>
|
|
</div>
|
|
<div style="text-align:right">
|
|
<div style="font-size:13px;color:#64748b;text-decoration:line-through">Soll: 30s</div>
|
|
<div style="font-size:14px;font-weight:700;color:#166534">✓ 0:28</div>
|
|
</div>
|
|
<div style="width:80px;text-align:center">
|
|
<span style="font-size:11px;color:#166534;background:#bbf7d0;padding:3px 8px;border-radius:10px;font-weight:600">+2s</span>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Übung 2: Aktiv — läuft gerade -->
|
|
<div style="padding:18px;display:flex;align-items:center;gap:14px;border-bottom:1px solid #f1f5f9;background:#fef9c3;border-left:4px solid #eab308">
|
|
<div style="width:32px;height:32px;border-radius:50%;background:#eab308;display:flex;align-items:center;justify-content:center;color:white;font-size:14px;font-weight:bold;flex-shrink:0">▶</div>
|
|
<div style="flex:1">
|
|
<div style="font-weight:700;font-size:15px;color:#a16207">Kniebeugen</div>
|
|
<div style="font-size:12px;color:#a16207;font-weight:500">Aktiv — Zeit läuft!</div>
|
|
</div>
|
|
<div style="text-align:right">
|
|
<div style="font-size:13px;color:#a16207;font-weight:600">Soll: 45s</div>
|
|
<div style="font-size:22px;font-weight:700;color:#a16207;font-family:monospace">0:31</div>
|
|
</div>
|
|
<button style="background:#166534;color:white;padding:10px 18px;border-radius:8px;border:none;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap">✓ Erledigt</button>
|
|
</div>
|
|
|
|
<!-- Übung 3: Ausstehend — kommt als nächstes -->
|
|
<div style="padding:14px;display:flex;align-items:center;gap:14px;border-bottom:1px solid #f1f5f9;background:#f8fafc;opacity:0.8">
|
|
<div style="width:32px;height:32px;border-radius:50%;background:#e2e8f0;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:13px;font-weight:bold;flex-shrink:0">3</div>
|
|
<div style="flex:1">
|
|
<div style="font-weight:500;font-size:15px;color:#64748b">Burpees</div>
|
|
<div style="font-size:11px;color:#94a3b8">Startet automatisch nach Kniebeugen</div>
|
|
</div>
|
|
<div style="text-align:right">
|
|
<div style="font-size:13px;color:#94a3b8">Soll: 20s</div>
|
|
</div>
|
|
<div style="width:80px;text-align:center">
|
|
<span style="font-size:11px;color:#94a3b8;background:#f1f5f9;padding:3px 8px;border-radius:10px">Ausstehend</span>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<!-- Auto-Start Hinweis -->
|
|
<div style="margin-top:12px;padding:12px;background:#fffbeb;border:1px solid #fde047;border-radius:8px;font-size:12px;color:#92400e">
|
|
<strong>Auto-Start:</strong> Wenn Anna bei "Kniebeugen" auf "✓ Erledigt" klickt → startet "Burpees" automatisch. Der globale Timer läuft weiter. Andere Ringer (Tom) können parallel starten wenn du ihn auswählst.
|
|
</div>
|
|
|
|
<!-- Tom's Ansicht (grau weil nicht ausgewählt) -->
|
|
<div style="margin-top:24px;padding-top:16px;border-top:2px dashed #e2e8f0">
|
|
<div style="margin-bottom:12px;display:flex;align-items:center;gap:10px">
|
|
<div style="width:10px;height:10px;border-radius:50%;background:#94a3b8"></div>
|
|
<span style="font-weight:600;font-size:16px;color:#64748b">Tom Klein</span>
|
|
<span style="font-size:12px;color:#94a3b8;background:#f1f5f9;padding:3px 10px;border-radius:10px">0/3</span>
|
|
<span style="font-size:11px;color:#94a3b8;margin-left:4px">(klicken zum Starten)</span>
|
|
</div>
|
|
<div style="border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;opacity:0.6">
|
|
<div style="padding:14px;display:flex;align-items:center;gap:14px;border-bottom:1px solid #f1f5f9;background:#f8fafc">
|
|
<div style="width:32px;height:32px;border-radius:50%;background:#e2e8f0;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:13px;font-weight:bold;flex-shrink:0">1</div>
|
|
<div style="flex:1">
|
|
<div style="font-weight:500;font-size:14px;color:#64748b">Liegestütze</div>
|
|
</div>
|
|
<div style="text-align:right">
|
|
<div style="font-size:13px;color:#94a3b8">Soll: 30s</div>
|
|
</div>
|
|
<button style="background:#64748b;color:white;padding:8px 16px;border-radius:8px;border:none;font-size:13px;cursor:not-allowed">▶ Start</button>
|
|
</div>
|
|
<div style="padding:14px;display:flex;align-items:center;gap:14px;border-bottom:1px solid #f1f5f9;background:#f8fafc">
|
|
<div style="width:32px;height:32px;border-radius:50%;background:#e2e8f0;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:13px;font-weight:bold;flex-shrink:0">2</div>
|
|
<div style="flex:1">
|
|
<div style="font-weight:500;font-size:14px;color:#64748b">Kniebeugen</div>
|
|
</div>
|
|
<div style="text-align:right">
|
|
<div style="font-size:13px;color:#94a3b8">Soll: 45s</div>
|
|
</div>
|
|
<div style="width:80px"></div>
|
|
</div>
|
|
<div style="padding:14px;display:flex;align-items:center;gap:14px;background:#f8fafc">
|
|
<div style="width:32px;height:32px;border-radius:50%;background:#e2e8f0;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:13px;font-weight:bold;flex-shrink:0">3</div>
|
|
<div style="flex:1">
|
|
<div style="font-weight:500;font-size:14px;color:#64748b">Burpees</div>
|
|
</div>
|
|
<div style="text-align:right">
|
|
<div style="font-size:13px;color:#94a3b8">Soll: 20s</div>
|
|
</div>
|
|
<div style="width:80px"></div>
|
|
</div>
|
|
</div>
|
|
<div style="margin-top:10px;padding:10px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;text-align:center">
|
|
<span style="font-size:12px;color:#94a3b8">Klicke auf Tom in der Liste um seine Übungen zu starten</span>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|