from flask import request, flash
from flask import Blueprint, render_template, redirect, url_for
from flask_login import login_required, logout_user, current_user
from .models import User
from .modules.interface import Interface
states = Interface().get_states()
main = Blueprint('main', __name__)
@main.route('/')
@login_required
def home():
return render_template('home.html', user=current_user, states=states)
@main.route('/logout')
@login_required
def logout():
logout_user()
return redirect(url_for('auth.login'))
@main.route('/create_user', methods=['POST'])
@login_required
def create_user():
username = request.form.get('username')
password = request.form.get('password')
if current_user.admin != True:
flash('Only admin can create new users.', 'error')
return redirect(url_for('main.home'))
if not username or not password:
flash('Username and password required.', 'error')
return redirect(url_for('main.home'))
user = User.create(username, password)
if user:
flash(f'User {username} created successfully.', 'success')
else:
flash(f'User {username} already exists.', 'error')
return redirect(url_for('main.home'))
@main.route('/enqueue_job', methods=['POST'])
@login_required
def enqueue_job():
act = request.form.get('act')
section = request.form.get('section')
state_code = request.form.get('state_code')
if not act or not state_code:
flash('All fields must be filled.', 'error')
return redirect(url_for('main.home'))
if not section:
section = ''
flash('Job created.', 'info')
return redirect(url_for('main.home'))