diff --git a/src/backend/app/projects/project_schemas.py b/src/backend/app/projects/project_schemas.py index 42986800..a8bf4173 100644 --- a/src/backend/app/projects/project_schemas.py +++ b/src/backend/app/projects/project_schemas.py @@ -530,12 +530,12 @@ def calculate_status(cls, values): completed_task_count = values.completed_task_count total_task_count = values.total_task_count - if completed_task_count == 0 and ongoing_task_count == 0: + if ongoing_task_count == 0: values.status = "not-started" - elif completed_task_count == total_task_count: - values.status = "completed" - else: + elif ongoing_task_count > 0 and ongoing_task_count != completed_task_count: values.status = "ongoing" + elif ongoing_task_count == total_task_count: + values.status = "completed" return values diff --git a/src/backend/app/tasks/task_routes.py b/src/backend/app/tasks/task_routes.py index 0839ab08..ef403fa1 100644 --- a/src/backend/app/tasks/task_routes.py +++ b/src/backend/app/tasks/task_routes.py @@ -96,7 +96,11 @@ async def get_task_stats( raw_sql = """ SELECT COUNT(CASE WHEN te.state = 'REQUEST_FOR_MAPPING' THEN 1 END) AS request_logs, +<<<<<<< HEAD COUNT(CASE WHEN te.state IN ('LOCKED_FOR_MAPPING', 'REQUEST_FOR_MAPPING', 'IMAGE_UPLOADED', 'UNFLYABLE_TASK') THEN 1 END) AS ongoing_tasks, +======= + COUNT(CASE WHEN te.state = 'LOCKED_FOR_MAPPING' THEN 1 END) AS ongoing_tasks, +>>>>>>> 5e8a37ab505a3c4c12fa2a98348992c427652b61 COUNT(CASE WHEN te.state = 'IMAGE_PROCESSED' THEN 1 END) AS completed_tasks, COUNT(CASE WHEN te.state = 'UNFLYABLE_TASK' THEN 1 END) AS unflyable_tasks FROM ( diff --git a/src/backend/pdm.lock b/src/backend/pdm.lock index 6b744625..f5727373 100644 --- a/src/backend/pdm.lock +++ b/src/backend/pdm.lock @@ -5,7 +5,11 @@ groups = ["default"] strategy = ["cross_platform"] lock_version = "4.5.0" +<<<<<<< HEAD content_hash = "sha256:5af1cd91bffbaffb22f9affb9a5dea337d37697f4a6b024b7ace22cd9c73c6a2" +======= +content_hash = "sha256:99dcee931aca5cd6b30de348304d4698e73e08c6c2eb7246423cb7d50969ac90" +>>>>>>> 5e8a37ab505a3c4c12fa2a98348992c427652b61 [[metadata.targets]] requires_python = ">=3.11" @@ -287,8 +291,13 @@ dependencies = [ "shapely>=2.0.0", ] files = [ +<<<<<<< HEAD {file = "drone_flightplan-0.3.1-py3-none-any.whl", hash = "sha256:e1e880ed93a048865442f20a72e701fba6e9f54ae9cd1ccbb90222628fd9c8bb"}, {file = "drone_flightplan-0.3.1.tar.gz", hash = "sha256:1d79589085cb4e3000b165b610453e889958ea3630b6d76ebdd8b650b93e7f8f"}, +======= + {file = "drone_flightplan-0.3.1rc4-py3-none-any.whl", hash = "sha256:d0150655091c187a8db8a3f5170ed4a3d85bc25408ff463f02478a9ed4f29666"}, + {file = "drone_flightplan-0.3.1rc4.tar.gz", hash = "sha256:badce959ffcf062028e0245e8a00b8f7e9cac52c356f673b0eccdbed5c92a961"}, +>>>>>>> 5e8a37ab505a3c4c12fa2a98348992c427652b61 ] [[package]] @@ -801,6 +810,7 @@ dependencies = [ "certifi", ] files = [ +<<<<<<< HEAD {file = "pyproj-3.7.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:e66d8d42dbdf232e121546c5a1dec097caf0454e4885c09a8e03cdcee0753c03"}, {file = "pyproj-3.7.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:7764b64a0aefe40134a2828b3a40be88f6c8b7832c45d8a9f2bd592ace4b2a3b"}, {file = "pyproj-3.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53c442c5081dc95346996f5c4323fde2caafc69c6e60b4707aa46e88244f1e04"}, @@ -820,6 +830,21 @@ files = [ {file = "pyproj-3.7.0-cp313-cp313-win32.whl", hash = "sha256:b9e8353fc3c79dc14d1f5ac758a1a6e4eee04102c3c0b138670f121f5ac52eb4"}, {file = "pyproj-3.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:10a8dc6ec61af97c89ff032647d743f8dc023645773da42ef43f7ae1125b3509"}, {file = "pyproj-3.7.0.tar.gz", hash = "sha256:bf658f4aaf815d9d03c8121650b6f0b8067265c36e31bc6660b98ef144d81813"}, +======= + {file = "pyproj-3.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ebfbdbd0936e178091309f6cd4fcb4decd9eab12aa513cdd9add89efa3ec2882"}, + {file = "pyproj-3.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:447db19c7efad70ff161e5e46a54ab9cc2399acebb656b6ccf63e4bc4a04b97a"}, + {file = "pyproj-3.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7e13c40183884ec7f94eb8e0f622f08f1d5716150b8d7a134de48c6110fee85"}, + {file = "pyproj-3.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65ad699e0c830e2b8565afe42bd58cc972b47d829b2e0e48ad9638386d994915"}, + {file = "pyproj-3.6.1-cp311-cp311-win32.whl", hash = "sha256:8b8acc31fb8702c54625f4d5a2a6543557bec3c28a0ef638778b7ab1d1772132"}, + {file = "pyproj-3.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:38a3361941eb72b82bd9a18f60c78b0df8408416f9340521df442cebfc4306e2"}, + {file = "pyproj-3.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1e9fbaf920f0f9b4ee62aab832be3ae3968f33f24e2e3f7fbb8c6728ef1d9746"}, + {file = "pyproj-3.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d227a865356f225591b6732430b1d1781e946893789a609bb34f59d09b8b0f8"}, + {file = "pyproj-3.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83039e5ae04e5afc974f7d25ee0870a80a6bd6b7957c3aca5613ccbe0d3e72bf"}, + {file = "pyproj-3.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb059ba3bced6f6725961ba758649261d85ed6ce670d3e3b0a26e81cf1aa8d"}, + {file = "pyproj-3.6.1-cp312-cp312-win32.whl", hash = "sha256:2d6ff73cc6dbbce3766b6c0bce70ce070193105d8de17aa2470009463682a8eb"}, + {file = "pyproj-3.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:7a27151ddad8e1439ba70c9b4b2b617b290c39395fa9ddb7411ebb0eb86d6fb0"}, + {file = "pyproj-3.6.1.tar.gz", hash = "sha256:44aa7c704c2b7d8fb3d483bbf75af6cb2350d30a63b144279a09b75fead501bf"}, +>>>>>>> 5e8a37ab505a3c4c12fa2a98348992c427652b61 ] [[package]]