Inject context
This commit is contained in:
63
memory.py
63
memory.py
@@ -195,6 +195,69 @@ def add_task(title, client_name="", project_name="", details="", due_at=""):
|
||||
return row_to_dict(db.execute("SELECT * FROM tasks WHERE id = ?", (cursor.lastrowid,)).fetchone())
|
||||
|
||||
|
||||
def list_clients(limit=100):
|
||||
with connect() as db:
|
||||
rows = db.execute(
|
||||
"SELECT * FROM clients ORDER BY name COLLATE NOCASE LIMIT ?",
|
||||
(limit,),
|
||||
).fetchall()
|
||||
return [row_to_dict(row) for row in rows]
|
||||
|
||||
|
||||
def get_memory_snapshot(limit=25):
|
||||
with connect() as db:
|
||||
clients = db.execute(
|
||||
"""
|
||||
SELECT c.*,
|
||||
COUNT(t.id) AS open_task_count
|
||||
FROM clients c
|
||||
LEFT JOIN tasks t ON t.client_id = c.id AND t.done = 0
|
||||
GROUP BY c.id
|
||||
ORDER BY c.name COLLATE NOCASE
|
||||
LIMIT ?
|
||||
""",
|
||||
(limit,),
|
||||
).fetchall()
|
||||
tasks = db.execute(
|
||||
"""
|
||||
SELECT t.*, c.name AS client_name, p.name AS project_name
|
||||
FROM tasks t
|
||||
LEFT JOIN clients c ON c.id = t.client_id
|
||||
LEFT JOIN projects p ON p.id = t.project_id
|
||||
WHERE t.done = 0
|
||||
ORDER BY t.created_at DESC
|
||||
LIMIT ?
|
||||
""",
|
||||
(limit,),
|
||||
).fetchall()
|
||||
projects = db.execute(
|
||||
"""
|
||||
SELECT p.*, c.name AS client_name
|
||||
FROM projects p
|
||||
LEFT JOIN clients c ON c.id = p.client_id
|
||||
ORDER BY p.updated_at DESC
|
||||
LIMIT ?
|
||||
""",
|
||||
(limit,),
|
||||
).fetchall()
|
||||
repos = db.execute(
|
||||
"""
|
||||
SELECT r.*, p.name AS project_name
|
||||
FROM repositories r
|
||||
LEFT JOIN projects p ON p.id = r.project_id
|
||||
ORDER BY r.updated_at DESC
|
||||
LIMIT ?
|
||||
""",
|
||||
(limit,),
|
||||
).fetchall()
|
||||
return {
|
||||
"clients": [row_to_dict(row) for row in clients],
|
||||
"tasks": [row_to_dict(row) for row in tasks],
|
||||
"projects": [row_to_dict(row) for row in projects],
|
||||
"repositories": [row_to_dict(row) for row in repos],
|
||||
}
|
||||
|
||||
|
||||
def close_task(task_id):
|
||||
with connect() as db:
|
||||
row = db.execute(
|
||||
|
||||
Reference in New Issue
Block a user