Compare commits
1 Commits
58dc4d8302
...
ds2
| Author | SHA1 | Date | |
|---|---|---|---|
| 3e31a404e8 |
41
app.py
41
app.py
@@ -12,7 +12,29 @@ db.init_app(app)
|
|||||||
|
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
def index():
|
def index():
|
||||||
return render_template('index.html')
|
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'])
|
@app.route('/admin', methods=['GET', 'POST'])
|
||||||
@@ -28,28 +50,23 @@ def adminpage():
|
|||||||
@app.route('/adduser', methods=['GET', 'POST'])
|
@app.route('/adduser', methods=['GET', 'POST'])
|
||||||
def useradd():
|
def useradd():
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
"""
|
|
||||||
fio = request.form['fio']
|
fio = request.form['fio']
|
||||||
dolgn = request.form['dolgnost']
|
dolgn = request.form['dolgnost']
|
||||||
userAdd = User(FIO=fio, dolgnost=dolgn)
|
userAdd = User(FIO=fio, dolgnost=dolgn)
|
||||||
db.session.add(userAdd)
|
db.session.add(userAdd)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
"""
|
|
||||||
print('add user')
|
|
||||||
return redirect(url_for('adminpage'))
|
return redirect(url_for('adminpage'))
|
||||||
|
|
||||||
|
|
||||||
@app.route('/addprogul', methods=['GET', 'POST'])
|
@app.route('/addprogul', methods=['GET', 'POST'])
|
||||||
def addprogul():
|
def addprogul():
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
print("add progul ")
|
|
||||||
|
|
||||||
""""
|
|
||||||
dataproeba = request.form['dateprogul']
|
dataproeba = request.form['dateprogul']
|
||||||
sotrId = request.form['sotrudnil']
|
sotrId = request.form['sotrudnik']
|
||||||
print(dataproeba)
|
p = Progul(progulDate=str(dataproeba), user_id=sotrId)
|
||||||
print(sotrId)
|
db.session.add(p)
|
||||||
"""
|
db.session.commit()
|
||||||
|
|
||||||
return redirect(url_for('adminpage'))
|
return redirect(url_for('adminpage'))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,5 +9,5 @@ class User(db.Model):
|
|||||||
|
|
||||||
class Progul(db.Model):
|
class Progul(db.Model):
|
||||||
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
||||||
IO = db.Column(db.Date())
|
progulDate = db.Column(db.String(100))
|
||||||
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
|
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@@ -11,11 +10,11 @@ header {
|
|||||||
|
|
||||||
.h1header {
|
.h1header {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background-color: #4a849f;
|
background-color: #1b3440;
|
||||||
height: 100px;
|
height: 100px;
|
||||||
line-height: 100px;
|
line-height: 100px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: black;
|
color: #f8f7f4;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,41 +22,33 @@ header {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tg {
|
.card {
|
||||||
padding-top: 35px;
|
background-color: #b4d6c6;
|
||||||
border-collapse: collapse;
|
border-radius: 12px;
|
||||||
border-spacing: 0;
|
box-shadow: 0px 5px 10px 2px rgba(27, 52, 64, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.tg td {
|
|
||||||
border-color: black;
|
|
||||||
border-style: solid;
|
.row {
|
||||||
border-width: 1px;
|
margin-top: 20px;
|
||||||
font-family: Arial, sans-serif;
|
|
||||||
font-size: 14px;
|
|
||||||
overflow: hidden;
|
|
||||||
padding: 10px 5px;
|
|
||||||
word-break: normal;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.tg th {
|
|
||||||
border-color: black;
|
.col-md-3 {
|
||||||
border-style: solid;
|
margin-bottom: 25px;
|
||||||
border-width: 1px;
|
margin-right: 25px;
|
||||||
font-family: Arial, sans-serif;
|
|
||||||
font-size: 14px;
|
|
||||||
font-weight: normal;
|
|
||||||
overflow: hidden;
|
|
||||||
padding: 10px 5px;
|
|
||||||
word-break: normal;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.tg .tg-0pky {
|
.btn {
|
||||||
border-color: inherit;
|
background-color: #1b3440;
|
||||||
text-align: left;
|
border-color: #1b3440;
|
||||||
vertical-align: top
|
margin-top: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.card{
|
.btn:hover {
|
||||||
margin-top: 40px;
|
background-color: #f2845c;
|
||||||
|
border-color: #f2845c;
|
||||||
}
|
}
|
||||||
@@ -17,43 +17,59 @@
|
|||||||
</h1>
|
</h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="card col-md-12">
|
||||||
|
<div class="card-body">
|
||||||
|
<h2 class="card-title">
|
||||||
|
Добавить прогул
|
||||||
|
</h2>
|
||||||
|
|
||||||
<div class="container card">
|
<form method="POST" enctype=multipart/form-data action="/addprogul">
|
||||||
<h2>Добавить прогул</h2>
|
<label> Выберите сотрудника из списка ниже </label>
|
||||||
<form method=post enctype=multipart/form-data action="/addprogul">
|
<select class="form-select" name="sotrudnik">
|
||||||
|
{% for key, value in users.items() %}
|
||||||
|
<option value="{{key}}">{{value}}</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
<label for="startDate">Выберите дату прогула</label>
|
||||||
|
<input id="startDate" class="form-control" type="date" name='dateprogul' />
|
||||||
|
<button type="submit" class="btn btn-primary">Добавить</button>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
<label> Выберите сотрудника из списка ниже </label>
|
</div>
|
||||||
<select class="form-select" name="sotrudnik">
|
</div>
|
||||||
{% for key, value in users.items() %}
|
|
||||||
<option value="{{key}}">{{value}}</option>
|
</div>
|
||||||
{% endfor %}
|
|
||||||
</select>
|
|
||||||
<label for="startDate">Выберите дату прогула</label>
|
|
||||||
<input id="startDate" class="form-control" type="date" name='dateprogul' />
|
|
||||||
<button type="submit" class="btn btn-primary">Добавить</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="container card">
|
<div class="container">
|
||||||
<h2>
|
<div class="row">
|
||||||
Добавить сотрудника
|
<div class="card col-md-12">
|
||||||
</h2>
|
<div class="card-body">
|
||||||
<form method="post" enctype=multipart/form-data action="/adduser">
|
<h2 class="card-title">
|
||||||
<div class="mb-3">
|
Добавить сотрудника
|
||||||
<label>ФИО сотрудника</label>
|
</h2>
|
||||||
<input name="fio" type="text" class="form-control">
|
<label>
|
||||||
|
ФИО сотрудника
|
||||||
|
</label>
|
||||||
|
<input id="startDate" class="form-control" type="text" name='FIO' />
|
||||||
|
<label>
|
||||||
|
Должность
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<select class="form-select">
|
||||||
|
<option selected>Выберите должность</option>
|
||||||
|
<option value="laborant">Лаборнт</option>
|
||||||
|
<option value="ingener">Инженер</option>
|
||||||
|
<option value="vedingener">Ведущий инженер</option>
|
||||||
|
</select>
|
||||||
|
<button type="submit" class="btn btn-primary">Добавить</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
</div>
|
||||||
<label for="exampleInputPassword1" class="form-label">Должность</label>
|
|
||||||
<select class="form-select" name="dolgnost">
|
|
||||||
<option value="laborant">Лаборант</option>
|
|
||||||
<option value="ingener">Инженер</option>
|
|
||||||
<option value="vedingener">Ведущий инженер</option>
|
|
||||||
</select>
|
|
||||||
<button type="submit" class="btn btn-primary">Добавить</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -13,27 +13,36 @@
|
|||||||
<header>
|
<header>
|
||||||
<h1 class="h1header"> Пропущенные дежурства АСУ </h1>
|
<h1 class="h1header"> Пропущенные дежурства АСУ </h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h1>Количество и даты пропущенных дежурств УВП кафедры АСУ </h1>
|
<div class="row">
|
||||||
</div>
|
|
||||||
<div class="container">
|
|
||||||
<table class="table ">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>ФИО</th>
|
|
||||||
<th>Кол-во дежурств</th>
|
|
||||||
<th>Даты</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>Сальный А.Г.</td>
|
|
||||||
<td>0</td>
|
|
||||||
<td>28.12.2002, 29.12.2009</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
|
{% for key, value in users.items() %}
|
||||||
|
|
||||||
|
<div class="card col-md-3">
|
||||||
|
<div class="card-body">
|
||||||
|
<h2 class="card-title">
|
||||||
|
{{key}}
|
||||||
|
</h2>
|
||||||
|
<div class="t1">
|
||||||
|
Количество прогулов: {{value['kolvo']}}
|
||||||
|
</div>
|
||||||
|
<div class="t1">
|
||||||
|
Даты прогулов:
|
||||||
|
{% for i in value['dates'] %}
|
||||||
|
{{i}},
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</card>
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
Reference in New Issue
Block a user