75 lines
2.0 KiB
Python
75 lines
2.0 KiB
Python
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.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
|
|
|
|
print(s)
|
|
|
|
|
|
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)
|