diff options
Diffstat (limited to 'web/app/main.py')
-rw-r--r-- | web/app/main.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/web/app/main.py b/web/app/main.py new file mode 100644 index 0000000..bd817b2 --- /dev/null +++ b/web/app/main.py @@ -0,0 +1,61 @@ +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')) |