from flask import Flask, render_template, request, redirect, url_for from models import db from models import User, Progul app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' db.init_app(app) @app.route('/') def index(): allUsetrs = User.query.order_by(User.FIO).all() s = {} for user in allUsetrs: dates = [] data = {} u = db.session.query(User.id).filter(User.id == user.id).subquery() if len(Progul.query.filter(Progul.user_id.in_(u)).all()) > 0: for pr in Progul.query.filter(Progul.user_id.in_(u)).all(): dates.append(pr.progulDate) data['dates'] = dates data['kolvo'] = len(dates) s[user.FIO] = data else: data['dates'] = '' data['kolvo'] = '0' s[user.FIO] = data return render_template('index.html', users = s ) @app.route('/admin', methods=['GET', 'POST']) def adminpage(): usersQuery = User.query.all() users = {} for user in usersQuery: users[user.id] = user.FIO return render_template('adminpage.html', users={k: v for k, v in sorted(users.items(), key=lambda item: item[1])}, methods=['GET', 'POST']) @app.route('/adduser', methods=['GET', 'POST']) def useradd(): if request.method == 'POST': fio = request.form['fio'] dolgn = request.form['dolgnost'] userAdd = User(FIO=fio, dolgnost=dolgn) db.session.add(userAdd) db.session.commit() return redirect(url_for('adminpage')) @app.route('/addprogul', methods=['GET', 'POST']) def addprogul(): if request.method == 'POST': dataproeba = request.form['dateprogul'] sotrId = request.form['sotrudnik'] p = Progul(progulDate=str(dataproeba), user_id=sotrId) db.session.add(p) db.session.commit() return redirect(url_for('adminpage')) if __name__ == '__main__': app.run(host='0.0.0.0', port='3800', debug=True)