OpenSTR/app/routes/admin.py

54 lines
No EOL
2.1 KiB
Python

from flask import Blueprint, render_template, request, redirect, url_for, flash
from app.forms import UserForm, RepairBayForm
from app.models import User, RepairBay
from app import db
admin_bp = Blueprint('admin', __name__)
@admin_bp.route('/admin/dashboard', methods=['GET', 'POST'])
def dashboard():
if request.method == 'POST':
# Handle form submission for creating/removing users or repair bays
pass # Implementation will go here
users = User.query.all()
repair_bays = RepairBay.query.all()
return render_template('admin/dashboard.html', users=users, repair_bays=repair_bays)
@admin_bp.route('/admin/user/create', methods=['GET', 'POST'])
def create_user():
form = UserForm()
if form.validate_on_submit():
new_user = User(username=form.username.data, email=form.email.data)
db.session.add(new_user)
db.session.commit()
flash('User created successfully!', 'success')
return redirect(url_for('admin.dashboard'))
return render_template('admin/create_user.html', form=form)
@admin_bp.route('/admin/user/delete/<int:user_id>', methods=['POST'])
def delete_user(user_id):
user = User.query.get_or_404(user_id)
db.session.delete(user)
db.session.commit()
flash('User deleted successfully!', 'success')
return redirect(url_for('admin.dashboard'))
@admin_bp.route('/admin/repair_bay/create', methods=['GET', 'POST'])
def create_repair_bay():
form = RepairBayForm()
if form.validate_on_submit():
new_bay = RepairBay(name=form.name.data)
db.session.add(new_bay)
db.session.commit()
flash('Repair bay created successfully!', 'success')
return redirect(url_for('admin.dashboard'))
return render_template('admin/create_repair_bay.html', form=form)
@admin_bp.route('/admin/repair_bay/delete/<int:bay_id>', methods=['POST'])
def delete_repair_bay(bay_id):
bay = RepairBay.query.get_or_404(bay_id)
db.session.delete(bay)
db.session.commit()
flash('Repair bay deleted successfully!', 'success')
return redirect(url_for('admin.dashboard'))