feat: show tasks completed today
This commit is contained in:
+18
-4
@@ -1024,6 +1024,8 @@ async def list_tasks(
|
||||
completed: bool | None = None,
|
||||
due_from: datetime | None = None,
|
||||
due_to: datetime | None = None,
|
||||
completed_from: datetime | None = None,
|
||||
completed_to: datetime | None = None,
|
||||
cursor: str | None = None,
|
||||
page: int | None = Query(default=None, ge=1),
|
||||
page_size: int | None = Query(default=None, ge=1, le=100),
|
||||
@@ -1048,10 +1050,20 @@ async def list_tasks(
|
||||
query = query.where(Task.list_id == list_id)
|
||||
if completed is not None:
|
||||
query = query.where(Task.completed.is_(completed))
|
||||
if due_from is not None:
|
||||
query = query.where(Task.due_at >= due_from)
|
||||
if due_to is not None:
|
||||
query = query.where(Task.due_at < due_to)
|
||||
if due_from is not None and due_to is not None and completed_from is not None and completed_to is not None:
|
||||
query = query.where(or_(
|
||||
and_(Task.due_at >= due_from, Task.due_at < due_to),
|
||||
and_(Task.completed_at >= completed_from, Task.completed_at < completed_to),
|
||||
))
|
||||
else:
|
||||
if due_from is not None:
|
||||
query = query.where(Task.due_at >= due_from)
|
||||
if due_to is not None:
|
||||
query = query.where(Task.due_at < due_to)
|
||||
if completed_from is not None:
|
||||
query = query.where(Task.completed_at >= completed_from)
|
||||
if completed_to is not None:
|
||||
query = query.where(Task.completed_at < completed_to)
|
||||
if q:
|
||||
pattern = f"%{q}%"
|
||||
list_match = exists(
|
||||
@@ -1355,6 +1367,8 @@ async def batch_update_tasks(
|
||||
if payload.soft_delete:
|
||||
changes["deleted_at"] = utcnow()
|
||||
if changes:
|
||||
if changes.get("completed") is False:
|
||||
changes["completed_at"] = None
|
||||
changes["version"] = Task.version + 1
|
||||
changes["updated_at"] = utcnow()
|
||||
target_ids = set(task_ids)
|
||||
|
||||
Reference in New Issue
Block a user