Files
ProjectIOT/application/dashboard/views.py
2025-05-23 12:54:42 +02:00

41 lines
1.4 KiB
Python

from flask import Blueprint, render_template, request, jsonify
from flask_login import login_required
from application.dashboard.models import AllowedPlate, LoggedItem
from application import db, app
from application.dashboard.forms import npForm
dash_blueprint = Blueprint("dash", __name__, template_folder="templates")
@dash_blueprint.route('/dashboard')
#@login_required
def dashboard():
Plates = AllowedPlate.query.all()
recent_logs = LoggedItem.query.order_by(LoggedItem.dateLogged.desc()).limit(50).all()
return render_template("dashboard.html", plates=Plates, recent_logs=recent_logs)
@dash_blueprint.route('/add', methods=['GET', 'POST'])
#@login_required
def add():
Plates = AllowedPlate.query.all()
form = npForm()
if form.validate_on_submit():
if form.numberplate.data:
ap = AllowedPlate(plate=form.numberplate.data)
db.session.add(ap)
db.session.commit()
# AJAX response
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]
})
# Normal GET or failed POST
Plates = AllowedPlate.query.order_by(AllowedPlate.id).all()
return render_template("add.html", form=form, plates=Plates)