35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
import aiosqlite
|
|
from datetime import datetime
|
|
|
|
DATABASE = "dolly.db"
|
|
|
|
async def setup_db():
|
|
async with aiosqlite.connect(DATABASE) as db:
|
|
await db.execute('''CREATE TABLE IF NOT EXISTS projects (
|
|
id INTEGER PRIMARY KEY,
|
|
name TEXT UNIQUE,
|
|
description TEXT)'''
|
|
)
|
|
await db.execute('''CREATE TABLE IF NOT EXISTS tasks (
|
|
id INTEGER PRIMARY KEY,
|
|
project_id INTEGER,
|
|
description TEXT,
|
|
assignee text,
|
|
deadline DATE,
|
|
status TEXT,
|
|
priority TEXT,
|
|
FOREIGN KEY(project_id) REFERENCES projects(id))'''
|
|
)
|
|
await db.commit()
|
|
|
|
async def add_project(name, description):
|
|
async with aiosqlite.connect(DATABASE) as db:
|
|
await db.execute("INSERT INTO projects (name, description) VALUES (?, ?)", (name, description))
|
|
await db.commit()
|
|
|
|
async def add_task(project_id, description, assignee, deadline, status, priority):
|
|
deadline_date = datetime.strptime(deadline, '%Y-%m-%d').date()
|
|
async with aiosqlite.connect(DATABASE) as db:
|
|
await db.execute("INSERT INTO tasks (project_id, description, assignee, deadline, status, priority) VALUES (?, ?, ?, ?, ?, ?)",
|
|
(project_id, description, assignee, deadline_date, status, priority))
|
|
await db.commit() |