add public view

This commit is contained in:
2025-12-02 14:41:31 +01:00
parent 674ad5f06f
commit 6acb633c2e
4 changed files with 297 additions and 0 deletions

View File

@@ -0,0 +1,145 @@
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>{{ project.name }} - Calendrier public</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet" />
<style>
body {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
.winner {
color: gold;
text-shadow: 0 0 10px #ffd700;
font-size: 2.5rem;
font-weight: bold;
}
</style>
</head>
<body>
<div class="container py-5">
<div class="text-center mb-5">
{% if project.image_url %}
<img src="{{ project.image_url }}" alt="Illustration" class="mb-4 rounded shadow-lg" style="max-height: 200px; object-fit: cover;" />
{% endif %}
<h1 class="display-4 fw-bold mb-2">{{ project.name }}</h1>
{% if project.description %}
<p class="lead text-light">{{ project.description }}</p>
{% endif %}
</div>
<div class="card mb-5 text-center p-5 bg-dark bg-opacity-75 border-0 shadow-lg">
<h2 class="display-5 mb-4">🎁 Jour {{ today_day }} 🎁</h2>
{% if today_draw %}
<div class="mb-4">
<i class="fas fa-crown fa-4x text-warning mb-4"></i>
<div class="winner">{{ today_draw.name }}</div>
<small class="text-light">{{ today_draw.draw_time }}</small>
</div>
<div class="alert alert-success">
<i class="fas fa-check-circle me-2"></i>Tirage effectué
</div>
{% else %}
<div class="mb-4">
<i class="fas fa-question-circle fa-5x text-muted mb-4"></i>
<h3 class="text-light">Pas encore tiré aujourd'hui</h3>
</div>
<div class="alert alert-info">
<i class="fas fa-clock me-2"></i>Attente du tirage du jour...
</div>
{% endif %}
</div>
<div class="row mb-5">
<div class="col-12">
<div class="card bg-dark bg-opacity-75 border-0 shadow-lg text-center">
<div class="card-body">
<h5><i class="fas fa-chart-line me-2"></i>Progression</h5>
<h2>{{ all_draws|length }} / {{ project.total_days }} jours</h2>
<div class="progress" style="height: 30px;">
<div class="progress-bar bg-success" style="width: {{ (all_draws|length / project.total_days * 100) | round(0) }}%">
{{ (all_draws|length / project.total_days * 100) | round(0) }}%
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row g-4">
<div class="col-md-6">
<div class="card bg-dark bg-opacity-75 border-0 shadow-lg">
<div class="card-header text-white">
<h5><i class="fas fa-history me-2"></i>Derniers tirages</h5>
</div>
<div class="card-body p-0">
{% if all_draws %}
<div class="list-group list-group-flush">
{% for draw in all_draws[-10:] %}
<div class="list-group-item bg-transparent border-0 px-4 py-3">
<div class="d-flex justify-content-between align-items-center">
<div>
<span class="badge bg-primary rounded-pill me-2">Jour {{ draw.day }}</span>
<strong>{{ draw.name }}</strong>
</div>
<small class="text-light">{{ draw.draw_time[:10] }}</small>
</div>
</div>
{% endfor %}
</div>
{% else %}
<div class="text-center py-5 text-light">
<i class="fas fa-calendar-times fa-3x mb-3 opacity-75"></i>
<p>Aucun tirage effectué</p>
</div>
{% endif %}
</div>
</div>
</div>
<div class="col-md-6">
<div class="card bg-dark bg-opacity-75 border-0 shadow-lg">
<div class="card-header text-white">
<h5><i class="fas fa-users me-2"></i>Participants ({{ stats|length }})</h5>
</div>
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-dark table-sm mb-0">
<thead>
<tr>
<th>Participant</th>
<th>Tirages</th>
<th>Restant</th>
</tr>
</thead>
<tbody>
{% for stat in stats %}
<tr>
<td>{{ stat.name }}</td>
<td><span class="badge bg-info">{{ stat.draws }}</span></td>
<td>{{ stat.max_draws - stat.draws }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="text-center mt-5">
<a href="{{ url_for('public_dashboard') }}" class="btn btn-outline-light btn-lg me-3">
<i class="fas fa-arrow-left me-2"></i>Tous les calendriers
</a>
<a href="{{ url_for('login') }}" class="btn btn-outline-light btn-lg">
<i class="fas fa-cog me-2"></i>Administration
</a>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>