-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtodo_list_app.py
105 lines (68 loc) · 3.24 KB
/
todo_list_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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
from flask import Flask, render_template, redirect, url_for, request
from db import DataBase
import time
import datetime
db = DataBase("mongodb://localhost:27017", "ToDo_List")
app = Flask(__name__)
@app.route("/")
def task_lists():
return redirect(url_for("tasklist_route"))
@app.route("/tasklist")
def tasklist_route():
return render_template("tasklists.html", tasklists=db.get_tasklist())
@app.route("/tasklist/edit/<string:tasklist_id>", methods=["POST" , "GET"])
def tasklist_edit_route(tasklist_id: str):
if request.method == "GET":
return render_template("edit_name.html")
tasklist = db.get_tasklist(tasklist_id=tasklist_id)
tasklist["name"] = request.form["name"]
tasklist["last_updated"] = datetime.datetime.now().isoformat()
return redirect(url_for("tasklist_route"))
@app.route("/tasklist/delete/<string:tasklist_id>")
def tasklist_delete_route(tasklist_id: str):
db.delete_tasklist(tasklist_id=tasklist_id)
return redirect(url_for("tasklist_route"))
@app.route("/tasklist/create", methods=["GET","POST"])
def tasklist_create_route():
if request.method == "GET":
return render_template("create_tasklist.html")
last_updated = datetime.datetime.now().isoformat()
created_at = last_updated
db.add_tasklist(name=request.form["name"], last_updated=last_updated, created_at=created_at)
return redirect(url_for("tasklist_route"))
@app.route("/tasks/<string:tasklist_id>")
def tasks_route(tasklist_id: str):
tasks = db.get_task(tasklist_id=tasklist_id)
return render_template("tasks.html", tasks=tasks or [], tasklist_id=tasklist_id)
@app.route("/task/edit/<string:task_id>", methods=["POST" , "GET"])
def task_edit_route(task_id: str):
if request.method == "GET":
return render_template("edit_task.html")
new_status = request.form["status"]
last_updated = datetime.datetime.now().isoformat()
name = request.form["name"]
description = request.form["description"]
task = db.get_task(task_id=task_id)
task["name"] = name
task["description"] = description
task["last_updated"] = last_updated
task["status"] = new_status
return redirect(url_for("tasks_route", tasklist_id=str(task["tasklist_id"])))
@app.route("/task/delete/<string:task_id>")
def delete_task(task_id: str):
task = db.get_task(task_id=task_id)
db.delete_task(task_id=task_id)
return redirect(url_for("tasks_route", tasklist_id=str(task["tasklist_id"])))
@app.route("/task/create/<string:tasklist_id>", methods=["POST" , "GET"])
def create_task(tasklist_id: str):
if request.method == "GET":
return render_template("create_task.html", Priority=Priority)
priority = request.form["priority"]
last_updated = datetime.datetime.now().isoformat()
created_at = last_updated
name = request.form["name"]
description = request.form["description"]
db.add_task(name=name, last_updated=last_updated, created_at=created_at, status=Status.NEW, priority=priority, description=description, tasklist_id=tasklist_id)
return redirect(url_for("tasks_route", tasklist_id=tasklist_id))
if __name__ == "__main__":
app.run(debug=True)