Files
ProjectIOT/application/dashboard/views.py
2025-06-02 12:29:27 +02:00

55 lines
1.8 KiB
Python

from flask import Blueprint, render_template, request, jsonify, flash
from application.dashboard.models import AllowedPlate, LoggedItem
from application import db
from application.dashboard.forms import npForm
from flask_login import login_required
dash_blueprint = Blueprint("dash", __name__, template_folder="templates")
@dash_blueprint.route("/dashboard")
@login_required
def dashboard():
Plates = AllowedPlate.query.all()
logs = (
LoggedItem.query.order_by(LoggedItem.dateLogged.desc()).limit(50).all()
)
return render_template("dashboard.html", plates=Plates, logs=logs)
@dash_blueprint.route("/add", methods=["GET", "POST"])
@login_required
def add():
Plates = AllowedPlate.query.all()
form = npForm()
if form.validate_on_submit():
plate = form.numberplate.data
print("test")
if AllowedPlate.query.filter_by(plate=plate).first():
print("test1")
flash("Numberplate is already registered")
return render_template(
"dashboard.html",
form=npForm(formdata=None),
feedback="Numberplate is already registered",
)
ap = AllowedPlate(plate=plate)
db.session.add(ap)
db.session.commit()
print("test2")
flash("Numberplate succesfully added")
# Update the list on the page with JavaScript
if request.headers.get("X-Requested-With") == "XMLHttpRequest":
plates = AllowedPlate.query.order_by(AllowedPlate.id).all()
return jsonify(
{
"plates": [
{"id": p.id, "plate": p.plate} for p in plates
]
}
)
Plates = AllowedPlate.query.order_by(AllowedPlate.id).all()
return render_template("add.html", form=npForm(formdata=None), plates=Plates)