fix: properly generate milestone_code and task/support/meeting codes
This commit is contained in:
@@ -547,8 +547,10 @@ def create_task(project_code: str, milestone_id: int, task_data: dict, db: Sessi
|
||||
if ms.status and hasattr(ms.status, "value") and ms.status.value == "progressing":
|
||||
raise HTTPException(status_code=400, detail="Cannot add items to a milestone that is in_progress")
|
||||
|
||||
max_task = db.query(Task).filter(Task.project_id == project.id).order_by(Task.id.desc()).first()
|
||||
next_id = (max_task.id + 1) if max_task else 1
|
||||
# Generate task_code: milestoneCode:T{i:05x}
|
||||
milestone_code = ms.milestone_code or f"m{ms.id}"
|
||||
max_task = db.query(Task).filter(Task.milestone_id == ms.id).order_by(Task.id.desc()).first()
|
||||
next_num = (max_task.id + 1) if max_task else 1
|
||||
task_code = f"{milestone_code}:T{next_num:05x}"
|
||||
|
||||
est_time = None
|
||||
@@ -695,6 +697,12 @@ def create_support(project_code: str, milestone_id: int, support_data: dict, db:
|
||||
if ms.status and hasattr(ms.status, "value") and ms.status.value == "progressing":
|
||||
raise HTTPException(status_code=400, detail="Cannot add items to a milestone that is in_progress")
|
||||
|
||||
# Generate support_code: milestoneCode:S{i:05x}
|
||||
milestone_code = ms.milestone_code or f"m{ms.id}"
|
||||
max_support = db.query(Support).filter(Support.milestone_id == milestone_id).order_by(Support.id.desc()).first()
|
||||
next_num = (max_support.id + 1) if max_support else 1
|
||||
support_code = f"{milestone_code}:S{next_num:05x}"
|
||||
|
||||
support = Support(
|
||||
title=support_data.get("title"),
|
||||
description=support_data.get("description"),
|
||||
@@ -703,6 +711,7 @@ def create_support(project_code: str, milestone_id: int, support_data: dict, db:
|
||||
project_id=project.id,
|
||||
milestone_id=milestone_id,
|
||||
reporter_id=current_user.id,
|
||||
support_code=support_code,
|
||||
)
|
||||
db.add(support)
|
||||
db.commit()
|
||||
@@ -750,6 +759,12 @@ def create_meeting(project_code: str, milestone_id: int, meeting_data: dict, db:
|
||||
if ms.status and hasattr(ms.status, "value") and ms.status.value == "progressing":
|
||||
raise HTTPException(status_code=400, detail="Cannot add items to a milestone that is in_progress")
|
||||
|
||||
# Generate meeting_code: milestoneCode:M{i:05x}
|
||||
milestone_code = ms.milestone_code or f"m{ms.id}"
|
||||
max_meeting = db.query(Meeting).filter(Meeting.milestone_id == milestone_id).order_by(Meeting.id.desc()).first()
|
||||
next_num = (max_meeting.id + 1) if max_meeting else 1
|
||||
meeting_code = f"{milestone_code}:M{next_num:05x}"
|
||||
|
||||
scheduled_at = None
|
||||
if meeting_data.get("scheduled_at"):
|
||||
try:
|
||||
@@ -765,6 +780,7 @@ def create_meeting(project_code: str, milestone_id: int, meeting_data: dict, db:
|
||||
project_id=project.id,
|
||||
milestone_id=milestone_id,
|
||||
reporter_id=current_user.id,
|
||||
meeting_code=meeting_code,
|
||||
scheduled_at=scheduled_at,
|
||||
duration_minutes=meeting_data.get("duration_minutes"),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user