diff --git a/app.py b/app.py index acd7f41..62b64d0 100644 --- a/app.py +++ b/app.py @@ -13,8 +13,6 @@ from functools import wraps from werkzeug.utils import secure_filename DATABASE = os.path.join(os.path.dirname(__file__), "avent.db") - -# Configuration upload images UPLOAD_FOLDER = os.path.join(os.path.dirname(__file__), "static", "uploads") os.makedirs(UPLOAD_FOLDER, exist_ok=True) ALLOWED_EXTENSIONS = {"png", "jpg", "jpeg", "gif"} @@ -22,7 +20,7 @@ ALLOWED_EXTENSIONS = {"png", "jpg", "jpeg", "gif"} app = Flask(__name__) app.secret_key = "change-me-super-secret-key-2025" app.config["UPLOAD_FOLDER"] = UPLOAD_FOLDER -app.config["MAX_CONTENT_LENGTH"] = 5 * 1024 * 1024 # 5 Mo max +app.config["MAX_CONTENT_LENGTH"] = 5 * 1024 * 1024 # Max 5 MB def allowed_file(filename): return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS @@ -59,11 +57,10 @@ def init_db(): 24 ) ).lastrowid - people_list = ["Valentin", "Nicolas", "Victor", "Julie", "Louis", "Alexandre", "David", "Raphaël"] + people_list = ["User1"] for name in people_list: db.execute("INSERT INTO people (project_id, name, draws, max_draws) VALUES (?, ?, 0, 0)", (project_id, name)) recalc_max_draws_for_project(project_id) - db.commit() def get_user_by_username(username): @@ -175,6 +172,30 @@ def catchup_draws(project_id): db.commit() return new_draws +@app.route("/public") +def public_dashboard(): + projects = get_project() + return render_template("public_projects.html", projects=projects) + +@app.route("/public/project/") +def public_project_view(project_id): + project = get_project(project_id) + if not project: + flash("Projet non trouvé.") + return redirect(url_for('public_dashboard')) + + today = date.today() + today_day = today.day if today.month == 12 else 1 + if today_day > project["total_days"]: + today_day = project["total_days"] + + today_draw = get_draw_for_project_day(project_id, today_day) + all_draws = get_all_draws_for_project(project_id) + stats = get_people_stats(project_id) + + return render_template("public_project_view.html", project=project, today_day=today_day, + today_draw=today_draw, all_draws=all_draws, stats=stats) + @app.route("/") @login_required def dashboard(): @@ -249,7 +270,6 @@ def admin_projects(): description = request.form.get("description", "").strip() total_days = int(request.form.get("total_days", 24)) - # Gestion upload image image_url = None if 'image_file' in request.files: file = request.files['image_file'] @@ -269,7 +289,6 @@ def admin_projects(): flash("Projet ajouté avec succès.") else: # update project_id = int(request.form.get("project_id")) - # Si pas d'image uploadée, conserver l'ancienne if image_url is None: cur = db.execute("SELECT image_url FROM project WHERE id = ?", (project_id,)) row = cur.fetchone() @@ -366,6 +385,7 @@ def logout(): flash("Déconnecté.") return redirect(url_for("login")) + if __name__ == "__main__": if not os.path.exists(DATABASE): with app.app_context():