diff options
author | Joris | 2020-05-10 20:24:24 +0200 |
---|---|---|
committer | Joris | 2020-05-10 20:24:24 +0200 |
commit | 8a6e10d401eea8db0947f8c4b309b8a6256f9748 (patch) | |
tree | 6e2dc6956ce7825f0f1b6c3ed6f0b4171fe9c274 /src/db/tags.py | |
parent | 3e1415c738facb8b0274adb50ae65f218fd59c9b (diff) | |
download | todo-8a6e10d401eea8db0947f8c4b309b8a6256f9748.tar.gz todo-8a6e10d401eea8db0947f8c4b309b8a6256f9748.tar.bz2 todo-8a6e10d401eea8db0947f8c4b309b8a6256f9748.zip |
Add tags panel
Diffstat (limited to 'src/db/tags.py')
-rw-r--r-- | src/db/tags.py | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/db/tags.py b/src/db/tags.py new file mode 100644 index 0000000..0f0d345 --- /dev/null +++ b/src/db/tags.py @@ -0,0 +1,71 @@ +from sqlite3 import Cursor +import time + +from model.tag import Tag, ValidTagForm + +def get(cursor: Cursor) -> Tag: + cursor.execute( + " SELECT" + " id," + " created_at," + " updated_at," + " name," + " color" + " FROM tags") + + res = [] + + for tag in cursor.fetchall(): + res.append(Tag( + id = tag[0], + created_at = tag[1], + updated_at = tag[2], + name = tag[3], + color = tag[4] + )) + + return res + +def insert(cursor: Cursor, form: ValidTagForm): + now = int(time.time()) + cursor.execute( + " INSERT INTO tags(" + " created_at," + " updated_at," + " name," + " color" + " ) VALUES (?, ?, ?, ?)", + (now, now, form.name, form.color)) + + return Tag( + id = cursor.lastrowid, + created_at = now, + updated_at = now, + name = form.name, + color = form.color + ) + +def update(cursor: Cursor, tag: Tag, form: ValidTagForm): + now = int(time.time()) + + cursor.execute( + " UPDATE tags SET" + " updated_at = ?," + " name = ?," + " color = ?" + " WHERE id = ?", + (now, form.name, form.color, tag.id)) + + return Tag( + id = tag.id, + created_at = tag.created_at, + updated_at = now, + name = form.name, + color = form.color + ) + +def delete(cursor: Cursor, ids): + if len(ids) >= 1: + cursor.execute( + 'DELETE FROM tags WHERE id IN (%s)' % ','.join('?'*len(ids)), + ids) |