Compare commits

...

11 Commits

Author SHA1 Message Date
504d237405 swag 2026-02-25 15:53:41 +00:00
6696bcc4e7 a 2026-02-25 15:36:18 +00:00
32a1458218 a 2026-02-25 15:33:42 +00:00
4697086f86 a 2026-02-25 15:32:36 +00:00
c4b9e5f360 w 2026-02-25 15:14:30 +00:00
0a9934b889 b 2026-02-25 15:14:07 +00:00
8ad1650079 a 2026-02-25 15:13:51 +00:00
6e50013a84 swag 2026-02-25 15:03:45 +00:00
dba9a7690d a 2026-02-25 14:59:35 +00:00
319d237e5d omg 2026-02-25 14:58:11 +00:00
af6515e55f a 2026-02-25 14:44:54 +00:00
3 changed files with 51 additions and 10 deletions

View File

@@ -1,8 +1,11 @@
from flask import Flask, render_template, request, redirect, url_for, jsonify from flask import Flask, render_template, request, redirect, url_for, jsonify
import sqlite3 import sqlite3
import re
app = Flask(__name__) app = Flask(__name__)
pattern = re.compile(r"^(?:[01]\d|2[0-3]):[0-5]\d$") # Regex "XX:XX"
DB_PATH = "data.db" DB_PATH = "data.db"
conn = sqlite3.connect(DB_PATH) conn = sqlite3.connect(DB_PATH)
@@ -16,6 +19,15 @@ CREATE TABLE IF NOT EXISTS items (
noshutdown INTEGER DEFAULT 0 noshutdown INTEGER DEFAULT 0
) )
""") """)
cursor.execute("""
CREATE TABLE IF NOT EXISTS val (
default_time TEXT NOT NULL DEFAULT '21:00'
)
""")
cursor.execute("SELECT COUNT(*) FROM val")
count = cursor.fetchone()[0]
if count == 0:
cursor.execute("INSERT INTO val (default_time) VALUES (?)", ('21:00',))
conn.commit() conn.commit()
conn.close() conn.close()
@@ -30,9 +42,11 @@ def mainpage():
cursor = conn.cursor() cursor = conn.cursor()
cursor.execute("SELECT name, time, noshutdown FROM items ORDER BY name") cursor.execute("SELECT name, time, noshutdown FROM items ORDER BY name")
items = cursor.fetchall() items = cursor.fetchall()
cursor.execute("SELECT default_time FROM val")
default_time_row = cursor.fetchone()
default_time = default_time_row[0] if default_time_row else '21:00'
conn.close() conn.close()
print(items) return render_template('index.html', title='BS Shutdown', items=items, default_time=default_time)
return render_template('index.html', title='BS Shutdown', items=items)
@app.route('/submit', methods =['POST']) @app.route('/submit', methods =['POST'])
def submit(): def submit():
@@ -45,6 +59,9 @@ def submit():
return redirect(url_for("mainpage")) return redirect(url_for("mainpage"))
if noshutdown == 1: if noshutdown == 1:
time_value = 'None' time_value = 'None'
if time_value != 'None':
if bool(pattern.match(time_value)) is not True:
return redirect(url_for("mainpage"))
conn = get_db_connection() conn = get_db_connection()
cursor = conn.cursor() cursor = conn.cursor()
cursor.execute('SELECT 1 FROM items WHERE name = ?', (value,)) cursor.execute('SELECT 1 FROM items WHERE name = ?', (value,))
@@ -57,6 +74,18 @@ def submit():
conn.close() conn.close()
return redirect(url_for("mainpage")) return redirect(url_for("mainpage"))
@app.route("/submit-default", methods=["POST"])
def submit_default():
time_value = request.form.get("default-time")
conn = get_db_connection()
cursor = conn.cursor()
if bool(pattern.match(time_value)) is not True:
return redirect(url_for("mainpage"))
cursor.execute("UPDATE val SET default_time = ?", (time_value,))
conn.commit()
conn.close()
return redirect(url_for("mainpage"))
@app.route("/delete", methods=["POST"]) @app.route("/delete", methods=["POST"])
def delete(): def delete():
value = request.form.get("item_name") value = request.form.get("item_name")

View File

@@ -42,7 +42,10 @@
<div class="collapse navbar-collapse" id="navbarNav"> <div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto"> <ul class="navbar-nav ms-auto">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link {% if title=='BG Shutdown' %}active{% endif %}" href="{{ url_for('mainpage') }}">Accueil</a> <a class="nav-link {% if title=='BS Shutdown' %}active{% endif %}" href="{{ url_for('mainpage') }}">Accueil</a>
</li>
<li class="nav-item">
<a class="nav-link {% if title=='BG Shutdown' %}active{% endif %}" href="{{ url_for('mainpage') }}">Groupes</a>
</li> </li>
</ul> </ul>
</div> </div>

View File

@@ -10,14 +10,14 @@
<div class="col-10"> <div class="col-10">
<form method="post" action="/submit" class="row g-2 align-items-center"> <form method="post" action="/submit" class="row g-2 align-items-center">
<div class="col-md-3"> <div class="col-md-2">
<input <input
type="text" type="text"
name="query" name="query"
class="form-control bg-dark text-white" class="form-control bg-dark text-white"
placeholder="Nom de la machine"> placeholder="Nom de la machine">
</div> </div>
<div class="col-md-3"> <div class="col-md-2">
<select name="time" class="form-select bg-dark text-white" id="time-select"> <select name="time" class="form-select bg-dark text-white" id="time-select">
{% for hour in range(0, 24) %} {% for hour in range(0, 24) %}
<option value="{{ '%02d:00'|format(hour) }}">{{ '%02d:00'|format(hour) }}</option> <option value="{{ '%02d:00'|format(hour) }}">{{ '%02d:00'|format(hour) }}</option>
@@ -40,15 +40,24 @@
</div> </div>
<div class="col-auto gap-1 ms-auto"> <div class="col-auto gap-1 ms-auto">
<form method="post" action="/submit-default" class="d-flex gap-1"> <form method="post" action="/submit-default" class="d-flex align-items-center gap-1">
<span class="text-white">Heure par défaut :</span>
<select name="default-time" class="form-select bg-dark text-white flex-grow-1" id="default-time-select"> <select name="default-time" class="form-select bg-dark text-white flex-grow-1" id="default-time-select">
{% for hour in range(0, 24) %} {% for hour in range(0, 24) %}
<option value="{{ '%02d:00'|format(hour) }}">{{ '%02d:00'|format(hour) }}</option> {% set h1 = '%02d:00'|format(hour) %}
<option value="{{ '%02d:30'|format(hour) }}">{{ '%02d:30'|format(hour) }}</option> {% set h2 = '%02d:30'|format(hour) %}
<option value="{{ h1 }}"
{% if h1 == default_time %}selected{% endif %}>
{{ h1 }}
</option>
<option value="{{ h2 }}"
{% if h2 == default_time %}selected{% endif %}>
{{ h2 }}
</option>
{% endfor %} {% endfor %}
</select> </select>
<button type="submit" class="btn btn-sm btn-primary"> <button type="submit" class="btn btn-sm btn-primary w-100">
<i class="bi bi-save"> Save</i> <i class="bi bi-save"> Save</i>
</button> </button>
</form> </form>