-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
66 lines (53 loc) · 2.47 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
from flask import Flask, request
from flask import render_template
from datetime import datetime, timedelta
import json
from package import model
app = Flask(__name__)
@app.route("/")
def index():
min_day = datetime.today() + timedelta(days=1)
min_day = min_day.strftime("%Y-%m-%d")
max_day = datetime.today() + timedelta(days=5)
max_day = max_day.strftime("%Y-%m-%d")
return render_template('index.html',min_day=min_day, max_day=max_day)
@app.route('/predictions', methods=['GET', 'POST'])
def predictions():
if request.method == 'POST':
# TODO: Girdiler kontrol edilmeli
reason = request.form['reason']
maintenance_day = request.form['maintenance_day']
maintenance_day = datetime.strptime(maintenance_day,"%Y-%m-%d" )
mlmodel_object = model.MLModel(date=maintenance_day.strftime("%Y-%m-%d"))
# TODO: Prediction queue'ya atılmalı ve asenkron yapılmalı. Bkz. HTTP Request Timeout
data = mlmodel_object.predict()
print(data['is_holiday'])
return render_template('predictions.html', data=data, reason=reason, maintenance_day=maintenance_day)
@app.route('/schedule', methods=['GET', 'POST'])
def schedule():
# TODO: Form Validation yapılmalı,
maintenance_type= request.form['maintenance_type']
day = request.form['maintenance_day']
reason = request.form['reason']
district = request.form['district']
neighborhood = request.form['neighborhood']
street = request.form['street']
maintenance_hours = request.form.getlist('maintenance_hours')
maintenance_hours_map = map(lambda hour:int(hour), maintenance_hours)
maintenance_hours = list(maintenance_hours_map)
start_time = min(maintenance_hours)
end_time = max(maintenance_hours) + 1
total_time = end_time - start_time
return render_template('schedule.html', day=day, reason=reason, district=district,
neighborhood=neighborhood, street=street,
maintenance_type=maintenance_type, start_time=start_time,
end_time=end_time, total_time=total_time)
@app.route('/calendar')
def calendar():
return render_template("calendar.html")
@app.route('/about')
def about():
# TODO: Buradaki JSON'ı kaldırıp, içeriye alabiliriz.
with open('public/team.json', 'r') as team:
team = json.load(team)
return render_template('about.html', team=team)