Taches personnelles OK - partie Done à gérer

This commit is contained in:
Justine Pelletreau 2022-11-18 17:24:56 +01:00
parent df14d389b1
commit 8531c141d7
5 changed files with 65 additions and 17 deletions

View File

@ -15,6 +15,7 @@ from random import choice
app = Flask(__name__) app = Flask(__name__)
mktaskdir() mktaskdir()
#Homepage, GET : getting the page. Maybe getting it with arguments generated by a button on the page, in which case we take it into account #Homepage, GET : getting the page. Maybe getting it with arguments generated by a button on the page, in which case we take it into account
@app.route('/', methods=['GET']) @app.route('/', methods=['GET'])
def render(): def render():
@ -31,13 +32,13 @@ def render():
#...or using their preferred theme if do have one #...or using their preferred theme if do have one
else: else:
csslink = request.cookies.get('csslink') csslink = request.cookies.get('csslink')
resp = make_response(render_template("homepage.html", ntodo = todotasks(gettasks()), ndone = donetasks(gettasks()), csslink = csslink)) resp = make_response(render_template("homepage.html", ntodo = todotasks(gettasks()), npers = personnaltasks(gettasks()), ndone = donetasks(gettasks()), csslink = csslink))
#Delete has been clicked #Delete has been clicked
if request.args.get("delete") is not None: if request.args.get("delete") is not None:
todelete = request.args.get("delete") todelete = request.args.get("delete")
deltask(int(todelete)) deltask(int(todelete))
resp = make_response(render_template("homepage.html", ntodo = todotasks(gettasks()), ndone = donetasks(gettasks()), csslink = csslink)) resp = make_response(render_template("homepage.html", ntodo = todotasks(gettasks()), npers = personnaltasks(gettasks()), ndone = donetasks(gettasks()), csslink = csslink))
#Edit has been clicked #Edit has been clicked
elif request.args.get("edit") is not None: elif request.args.get("edit") is not None:
@ -70,9 +71,9 @@ def render():
mytask = switchstatus(mytask) mytask = switchstatus(mytask)
deltask(toswitch) deltask(toswitch)
addtask(mytask) addtask(mytask)
resp = make_response(render_template("homepage.html", ntodo = todotasks(gettasks()), ndone = donetasks(gettasks()), csslink = csslink)) resp = make_response(render_template("homepage.html", ntodo = todotasks(gettasks()), npers = personnaltasks(gettasks()), ndone = donetasks(gettasks()), csslink = csslink))
else: else:
resp = make_response(render_template("homepage.html", ntodo = todotasks(gettasks()), ndone = donetasks(gettasks()), csslink = csslink)) resp = make_response(render_template("homepage.html", ntodo = todotasks(gettasks()), npers = personnaltasks(gettasks()), ndone = donetasks(gettasks()), csslink = csslink))
return resp return resp
@ -88,17 +89,22 @@ def homepage():
try: try:
tasktitle = request.form['title'] tasktitle = request.form['title']
tasktext = request.form['text'] tasktext = request.form['text']
print("PING")
priority = request.form['priority'] priority = request.form['priority']
if "personnal" in request.form.keys():
personnal = True
else:
personnal = False
print(f"Got new task with prio {priority}") print(f"Got new task with prio {priority}")
rightnow = int(time.time()) rightnow = int(time.time())
newtask = task(createtime=rightnow, modtime=rightnow, title=tasktitle, text=tasktext, done=False, priority=int(priority)) newtask = task(createtime=rightnow, modtime=rightnow, title=tasktitle, text=tasktext, done=False, priority=int(priority), personnal=False)
addtask(newtask) addtask(newtask)
except: except Exception as E:
print(f"!!!!!!!!!! {E} - {request.form}")
pass pass
return render_template("homepage.html", ntodo = todotasks(gettasks()), ndone = donetasks(gettasks()), csslink = csslink) return render_template("homepage.html", ntodo = todotasks(gettasks()), npers = personnaltasks(gettasks()), ndone = donetasks(gettasks()), csslink = csslink)
#Export mode #Export mode
@ -126,7 +132,13 @@ def edit():
todoselected = "selected" todoselected = "selected"
doneselected = "" doneselected = ""
return render_template("edit.html", tasknumber=tasknumber, ntitle=mytask.title, ntext=mytask.text, csslink = csslink, priority=mytask.priority, taskdonemark=mytask.donemark, todoselected=todoselected, doneselected=doneselected) #Is it personnal ?
if mytask.personnal:
pers_checked = "checked"
else:
pers_checked = ""
return render_template("edit.html", tasknumber=tasknumber, ntitle=mytask.title, ntext=mytask.text, csslink = csslink, priority=mytask.priority, taskdonemark=mytask.donemark, todoselected=todoselected, doneselected=doneselected, pers_checked=pers_checked)
#Handling post #Handling post
if request.method == "POST": if request.method == "POST":
@ -141,11 +153,15 @@ def edit():
taskdone = True taskdone = True
else: else:
taskdone = False taskdone = False
if "personnal" in request.form.keys():
personnal = True
else:
personnal = False
deltask(tasknumber) deltask(tasknumber)
rightnow = int(time.time()) rightnow = int(time.time())
newtask = task(createtime=tasknumber, modtime=rightnow, title=tasktitle, text=tasktext, done=taskdone, priority=taskpriority) newtask = task(createtime=tasknumber, modtime=rightnow, title=tasktitle, text=tasktext, done=taskdone, priority=taskpriority, personnal = personnal)
addtask(newtask) addtask(newtask)
return render_template("homepage.html", ntodo = todotasks(gettasks()), ndone = donetasks(gettasks()), csslink = csslink) return render_template("homepage.html", ntodo = todotasks(gettasks()), npers = personnaltasks(gettasks()), ndone = donetasks(gettasks()), csslink = csslink)

View File

@ -7,7 +7,7 @@
#CLASS #CLASS
class task: class task:
def __init__(self, createtime: int, modtime: int, title: str, text: str, done: bool, priority: int): def __init__(self, createtime: int, modtime: int, title: str, text: str, done: bool, priority: int, personnal: bool = False):
""" """
createtime, modtime : epoch time of task writing / modfying createtime, modtime : epoch time of task writing / modfying
title and text are str title and text are str
@ -17,11 +17,15 @@ class task:
self.title = title self.title = title
self.text = text self.text = text
self.priority = priority self.priority = priority
self.personnal = personnal
if done: if done:
self.donemark = "" self.donemark = ""
else: else:
self.donemark = "⚠️" if personnal:
self.donemark = "🔒"
else:
self.donemark = "⚠️"
def rendertime(self, pretimestamp: int): def rendertime(self, pretimestamp: int):
""" """

View File

@ -146,6 +146,22 @@ def todotasks(tasklist):
return finalstr return finalstr
def personnaltasks(tasklist):
"""
Sorts tasks in tasklist: Gives todotasks sorted by priority
"""
buffer = []
finalstr = ""
for task in tasklist:
if task.donemark == "🔒":
buffer.append(task)
tasks = sorted(buffer, key=lambda task: task.priority, reverse=True)
for task in tasks:
finalstr += task.flaskrender()
return finalstr
def donetasks(tasklist): def donetasks(tasklist):
""" """
Sorts tasks in tasklist: Gives done tasks sorted by modtime Sorts tasks in tasklist: Gives done tasks sorted by modtime
@ -165,7 +181,7 @@ def donetasks(tasklist):
def convertemoji(): def convertemoji():
tasks = gettasks() tasks = gettasks()
for task in tasks: for task in tasks:
if task.donemark not in ["⚠️", ""]: if task.donemark not in ["⚠️", "", "🔒"]:
task.donemark = "⚠️" task.donemark = "⚠️"
dumptasks(tasks) dumptasks(tasks)

View File

@ -20,6 +20,8 @@
<option value="⚠️" {{ todoselected }}>⚠️</option> <option value="⚠️" {{ todoselected }}>⚠️</option>
<option value="✅" {{ doneselected }}></option> <option value="✅" {{ doneselected }}></option>
</select> </select>
<label for="personnal">Private</label>
<input type="checkbox" name="personnal" id="personnal" {{ pers_checked }}><br>
<button type="submit" name="submit">OK</button> <button type="submit" name="submit">OK</button>
<div class="tasktime">Note : you can drag the textbox to make it bigger.</div> <div class="tasktime">Note : you can drag the textbox to make it bigger.</div>
</form> </form>

View File

@ -15,13 +15,23 @@
<input type="text" name="title" class="title" placeholder="Title"><br> <input type="text" name="title" class="title" placeholder="Title"><br>
<textarea type="text" name="text" rows = "5" cols = "60*" class="text" placeholder="Text"></textarea><br> <textarea type="text" name="text" rows = "5" cols = "60*" class="text" placeholder="Text"></textarea><br>
<label for="priority">Priority</label> <label for="priority">Priority</label>
<input type="number" name="priority" class="priorityinput" id="priority" min="0" max="10" value="5"><br> <input type="number" name="priority" class="priorityinput" id="priority" min="0" max="10" value="5">
<label for="personnal">Private</label><input type="checkbox" name="personnal" id="personnal"><br>
<button type="submit" name="submit">Post</button> <button type="submit" name="submit">Post</button>
<div class="tasktime">Note : you can drag the textbox to make it bigger. Scroll down to see your previous tasks.</div> <div class="tasktime">Note : you can drag the textbox to make it bigger. Scroll down to see your previous tasks.</div>
</form> </form>
<br> <br>
<hr> <hr>
<h2 class="separator">Todo</h2> <h2 class="separator">Private</h2>
<hr>
<details>
<summary>Click to expand.</summary>
<p>
{{ npers }}
</p>
</details>
<hr>
<h2 class="separator">Work</h2>
<hr> <hr>
<div class="globalcontainer"> <div class="globalcontainer">
{{ ntodo }} {{ ntodo }}