aboutsummaryrefslogtreecommitdiff
path: root/src/db/tags.py
diff options
context:
space:
mode:
authorJoris2020-05-10 20:24:24 +0200
committerJoris2020-05-10 20:24:24 +0200
commit8a6e10d401eea8db0947f8c4b309b8a6256f9748 (patch)
tree6e2dc6956ce7825f0f1b6c3ed6f0b4171fe9c274 /src/db/tags.py
parent3e1415c738facb8b0274adb50ae65f218fd59c9b (diff)
downloadtodo-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.py71
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)