Création d'une page de gestion des humeurs

This commit is contained in:
Kepka Ludovic
2025-08-09 09:08:27 +02:00
parent 21b5cf8669
commit 7db8b1ff7b
11 changed files with 77 additions and 21 deletions

View File

@@ -6,7 +6,12 @@ webapp.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
db = SQLAlchemy(webapp)
with webapp.app_context():
with open('database/schema.sql', 'r') as f:
sql_script = f.read()
db.session.execute(text(sql_script))
db.session.commit()
with open('database/schema.sql', 'r') as f:
sql = f.read()
connection = db.session.connection().connection
try:
cursor = connection.cursor()
cursor.executescript(sql)
cursor.close()
finally:
connection.close()

View File

@@ -1,6 +1,10 @@
# from webapp import db
from database import db
class Humeur(db.Model):
id = db.Column(db.Integer, primary_key=True)
enable = db.Column(db.Boolean, default=True)
text = db.Column(db.String(200))
class Message(db.Model):
id = db.Column(db.Integer, primary_key=True)
enable = db.Column(db.Boolean, default=False)

View File

@@ -4,3 +4,9 @@ CREATE TABLE IF NOT EXISTS `message` (
`text` VARCHAR(256) NULL,
periodicity INTEGER NULL
);
CREATE TABLE IF NOT EXISTS `humeur` (
id INTEGER PRIMARY KEY AUTOINCREMENT,
`enable` BOOLEAN NOT NULL DEFAULT TRUE,
`text` VARCHAR(256) NULL
);

View File

@@ -2,4 +2,4 @@ from flask import Flask
webapp = Flask(__name__)
from webapp import commandes, index, messages, moderation
from webapp import commandes, index, humeurs, messages, moderation

View File

@@ -3,4 +3,4 @@ from webapp import webapp
@webapp.route("/commandes")
def commandes():
return render_template("commandes.html")
return render_template("commandes.html")

22
webapp/humeurs.py Normal file
View File

@@ -0,0 +1,22 @@
from flask import render_template, request, redirect, url_for
from webapp import webapp
from database import db
from database.models import Humeur
@webapp.route("/humeurs")
def listHumeurs():
humeurs = Humeur.query.all()
return render_template("humeurs.html", humeurs = humeurs)
@webapp.route('/humeurs/add', methods=['POST'])
def addHumeur():
humeur = Humeur(text=request.form['text'])
db.session.add(humeur)
db.session.commit()
return redirect(url_for('listHumeurs'))
@webapp.route('/humeurs/del/<id>')
def delHumeur(id):
Humeur.query.filter_by(id=id).delete()
db.session.commit()
return redirect(url_for('listHumeurs'))

View File

@@ -1,11 +1,6 @@
from flask import render_template
from webapp import webapp
# from database import db
# from database.message import Message
@webapp.route("/")
def index():
# message = Message(text="bla bla", periodicity = 3600)
# db.session.add(message)
# db.session.commit()
return render_template("index.html")
return render_template("index.html")

View File

@@ -1,11 +1,6 @@
from flask import render_template
from webapp import webapp
# from database import db
# from database.message import Message
@webapp.route("/messages")
def messages():
# message = Message(text="bla bla", periodicity = 3600)
# db.session.add(message)
# db.session.commit()
return render_template("messages.html")
return render_template("messages.html")

View File

@@ -3,4 +3,4 @@ from webapp import webapp
@webapp.route("/moderation")
def moderation():
return render_template("moderation.html")
return render_template("moderation.html")

View File

@@ -0,0 +1,28 @@
{% extends "template.html" %}
{% block content %}
<h1>Humeurs de Mamie.</h1>
<table>
<thead>
<tr>
<th>Text</th>
<th>Action</th>
</tr>
</thead>
<tbody>
{% for humeur in humeurs %}
<tr>
<td>{{humeur.text}}</td>
<td><a href="{{ url_for('delHumeur', id = humeur.id) }}">Supprimer</a></td>
</tr>
{% endfor %}
</tbody>
</table>
<h2>Ajouter une humeur</h2>
<form action="{{ url_for('addHumeur') }}" method="POST">
<label for="text">Text</label>
<input name="text" type="text" />
<input type="Submit" value="Ajouter">
</form>
{% endblock %}

View File

@@ -19,6 +19,7 @@
<a href="/"><img src="/static/ico/favicon.ico"></a>
<ul>
<li><a href="/commandes">Commandes</a></li>
<li><a href="/humeurs">Humeurs</a></li>
<li><a href="/messages">Messages</a></li>
<li><a href="/moderation">Modération</a></li>
</ul>