SqTasks/src/classes.py
Justine Pelletreau aa6a0f8e5e CSS
2022-04-04 15:16:48 +02:00

57 lines
2.2 KiB
Python

#!/usr/bin/env python3
#coding: utf-8
#!---------- squiNotes.py ----------
# My tasks-taking app
#-----------------------------!
#CLASS
class task:
def __init__(self, createtime: int, modtime: int, title: str, text: str, done: bool, priority: int):
"""
createtime, modtime : epoch time of task writing / modfying
title and text are str
"""
self.modtime = modtime
self.createtime = createtime
self.title = title
self.text = text
self.priority = priority
if done:
self.donemark = ""
else:
self.donemark = "😓"
def rendertime(self, pretimestamp: int):
"""
Render the given timestamp as dd/mm/yyyy-hh:mm
"""
import datetime
timestamp = datetime.datetime.fromtimestamp(pretimestamp)
timestamp = timestamp.strftime("%d/%m/%Y-%H:%M:%S")
return timestamp
def flaskrender(self):
"""
Render the task whole content as html for flask, using flask.Markup
"""
import markdown
from flask import Markup, url_for
rendered = f"""
<hr>
<div class="tasktitle">{self.donemark} {Markup.escape(self.title)}</div>
<form action="." method="GET" name="{self.createtime}">
<button type="submit" name="toswitch" value="{self.createtime}" class "taskbutton">Done/Todo</button>|<button type="submit" name="delete" value="{self.createtime}" class="taskbutton" onclick="return confirm('Really ?')">Delete</button>|<button type="submit" name="edit" value="{self.createtime}" class="taskbutton">Edit</button>|<a href="{ url_for('render') }" class="backlink">Back</a>
</form>
<div class="tasktime">Priority: {self.priority}</div>
<div class="tasktime">Created : {self.rendertime(self.createtime)}
<br>Modified : {self.rendertime(self.modtime)}</div><br>
<div class="tasktext">{markdown.markdown(self.text, extensions=['fenced_code', 'codehilite', 'nl2br', 'smarty'])}</div><br>
"""
return Markup(rendered)
def __str__(self):
return f"{self.title} - {self.donemark} - Priority {self.priority}"