Merge pull request 'Release v26.03.27.2' (#15) from dev into main

Release v26.03.27.2
This commit was merged in pull request #15.
This commit is contained in:
2026-03-27 21:23:53 +00:00
3 changed files with 38 additions and 5 deletions
@@ -0,0 +1,18 @@
"""Add 'cancelled' value to task_status enum."""
from alembic import op
revision = "0031"
down_revision = "0030"
branch_labels = None
depends_on = None
def upgrade() -> None:
op.execute("ALTER TYPE task_status ADD VALUE IF NOT EXISTS 'cancelled'")
def downgrade() -> None:
# PostgreSQL does not support removing enum values without a full type rebuild.
# Downgrade is a no-op; the value simply becomes unused.
pass
+1
View File
@@ -13,6 +13,7 @@ class TaskStatus(str, enum.Enum):
todo = "todo"
in_progress = "in_progress"
done = "done"
cancelled = "cancelled"
class TaskPriority(str, enum.Enum):
+19 -5
View File
@@ -71,10 +71,14 @@ async def create_task_route():
if isinstance(due_date, tuple):
return due_date
status = TaskStatus(data["status"]).value if "status" in data else TaskStatus.todo.value
priority = (
TaskPriority(data["priority"]).value if "priority" in data else TaskPriority.none.value
)
try:
status = TaskStatus(data["status"]).value if "status" in data else TaskStatus.todo.value
except ValueError:
return jsonify({"error": f"Invalid status: {data['status']}"}), 400
try:
priority = TaskPriority(data["priority"]).value if "priority" in data else TaskPriority.none.value
except ValueError:
return jsonify({"error": f"Invalid priority: {data['priority']}"}), 400
project_id = data.get("project_id")
if project_id is None and data.get("project"):
@@ -123,9 +127,19 @@ async def update_task_route(task_id: int):
uid = get_current_user_id()
data = await request.get_json()
fields = {}
for key in ("title", "status", "priority"):
for key in ("title",):
if key in data:
fields[key] = data[key]
if "status" in data:
try:
fields["status"] = TaskStatus(data["status"]).value
except ValueError:
return jsonify({"error": f"Invalid status: {data['status']}"}), 400
if "priority" in data:
try:
fields["priority"] = TaskPriority(data["priority"]).value
except ValueError:
return jsonify({"error": f"Invalid priority: {data['priority']}"}), 400
# Accept both "body" and "description" (prefer body)
if "body" in data: