From 1421c7c9a39a6801b1af89e2f65f0ccc4a730782 Mon Sep 17 00:00:00 2001 From: sujanadh Date: Tue, 7 Nov 2023 15:59:35 +0545 Subject: [PATCH 1/4] feat: added uuid on read projects --- src/backend/app/projects/project_routes.py | 2 ++ src/backend/app/projects/project_schemas.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/backend/app/projects/project_routes.py b/src/backend/app/projects/project_routes.py index 4d5063f5c4..b267691d34 100644 --- a/src/backend/app/projects/project_routes.py +++ b/src/backend/app/projects/project_routes.py @@ -162,7 +162,9 @@ async def read_project_summaries( @router.get("/{project_id}", response_model=project_schemas.ProjectOut) async def read_project(project_id: int, db: Session = Depends(database.get_db)): project = project_crud.get_project_by_id(db, project_id) + project_uuid = uuid.uuid4() if project: + project.project_uuid = project_uuid return project else: raise HTTPException(status_code=404, detail="Project not found") diff --git a/src/backend/app/projects/project_schemas.py b/src/backend/app/projects/project_schemas.py index db15bc2362..de6daa3d74 100644 --- a/src/backend/app/projects/project_schemas.py +++ b/src/backend/app/projects/project_schemas.py @@ -16,6 +16,7 @@ # along with FMTM. If not, see . # +import uuid from typing import List, Optional, Union from geojson_pydantic import Feature as GeojsonFeature @@ -132,4 +133,5 @@ class ProjectBase(BaseModel): class ProjectOut(ProjectBase): + project_uuid: uuid.UUID pass From 3f0c076736e24e892f30f868e3112c0629fabdd5 Mon Sep 17 00:00:00 2001 From: sujanadh Date: Tue, 7 Nov 2023 16:51:22 +0545 Subject: [PATCH 2/4] feat: added total task count in generate-log --- src/backend/app/projects/project_crud.py | 6 ++++++ src/backend/app/projects/project_routes.py | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/backend/app/projects/project_crud.py b/src/backend/app/projects/project_crud.py index 51788cb0cc..de1c0cb272 100644 --- a/src/backend/app/projects/project_crud.py +++ b/src/backend/app/projects/project_crud.py @@ -2821,3 +2821,9 @@ def is_valid_coordinate(coord): if not is_valid_coordinate(first_coordinate): log.error(error_message) raise HTTPException(status_code=400, detail=error_message) + + +def get_tasks_count(db:Session, project_id:int): + db_task = db.query(db_models.DbProject).filter(db_models.DbProject.id==project_id).first() + task_count = len(db_task.tasks) + return task_count \ No newline at end of file diff --git a/src/backend/app/projects/project_routes.py b/src/backend/app/projects/project_routes.py index b267691d34..6ee691df1d 100644 --- a/src/backend/app/projects/project_routes.py +++ b/src/backend/app/projects/project_routes.py @@ -224,8 +224,9 @@ async def create_project( project = project_crud.create_project_with_project_info( db, project_info, odkproject["id"] ) - + project_uuid = uuid.uuid4() if project: + project.project_uuid = project_uuid return project else: raise HTTPException(status_code=404, detail="Project not found") @@ -802,8 +803,10 @@ async def generate_log( last_50_logs = filtered_logs[-50:] logs = "\n".join(last_50_logs) + task_count = project_crud.get_tasks_count(db, project_id) return { "status": task_status.name, + "total_tasks": task_count, "message": task_message, "progress": extract_completion_count, "logs": logs, From 3ef024abaf92583c3dc983a204d5df49286aed75 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 7 Nov 2023 11:11:18 +0000 Subject: [PATCH 3/4] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/backend/app/projects/project_crud.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/backend/app/projects/project_crud.py b/src/backend/app/projects/project_crud.py index de1c0cb272..42fed58ed8 100644 --- a/src/backend/app/projects/project_crud.py +++ b/src/backend/app/projects/project_crud.py @@ -2823,7 +2823,11 @@ def is_valid_coordinate(coord): raise HTTPException(status_code=400, detail=error_message) -def get_tasks_count(db:Session, project_id:int): - db_task = db.query(db_models.DbProject).filter(db_models.DbProject.id==project_id).first() +def get_tasks_count(db: Session, project_id: int): + db_task = ( + db.query(db_models.DbProject) + .filter(db_models.DbProject.id == project_id) + .first() + ) task_count = len(db_task.tasks) - return task_count \ No newline at end of file + return task_count From 093c8475a3017ef49ba453bf25870573f2cc8f91 Mon Sep 17 00:00:00 2001 From: spwoodcock Date: Tue, 21 Nov 2023 10:56:30 +0000 Subject: [PATCH 4/4] refactor: set uuid directly for project_uuid --- src/backend/app/projects/project_routes.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/backend/app/projects/project_routes.py b/src/backend/app/projects/project_routes.py index 6ee691df1d..5de5ecc31b 100644 --- a/src/backend/app/projects/project_routes.py +++ b/src/backend/app/projects/project_routes.py @@ -162,9 +162,8 @@ async def read_project_summaries( @router.get("/{project_id}", response_model=project_schemas.ProjectOut) async def read_project(project_id: int, db: Session = Depends(database.get_db)): project = project_crud.get_project_by_id(db, project_id) - project_uuid = uuid.uuid4() if project: - project.project_uuid = project_uuid + project.project_uuid = uuid.uuid4() return project else: raise HTTPException(status_code=404, detail="Project not found") @@ -224,9 +223,8 @@ async def create_project( project = project_crud.create_project_with_project_info( db, project_info, odkproject["id"] ) - project_uuid = uuid.uuid4() if project: - project.project_uuid = project_uuid + project.project_uuid = uuid.uuid4() return project else: raise HTTPException(status_code=404, detail="Project not found")