Skip to content

Commit 7a429c7

Browse files
committed
feat(street): Add numberOfGroups for the street project
1 parent e7d7c46 commit 7a429c7

File tree

11 files changed

+35
-9
lines changed

11 files changed

+35
-9
lines changed

apps/project/factories.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ class Meta:
5454
firebase_id = factory.LazyFunction(lambda: str(ULID()))
5555
project_type_specifics = factory.LazyAttribute(lambda _: {})
5656
number_of_tasks = 100
57+
number_of_groups = 10
5758
required_count = 50
5859

5960
finished_count = 50
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Generated by Django 5.2.5 on 2025-08-19 05:51
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('project', '0016_rename_stats_type_projectasset_export_type'),
10+
]
11+
12+
operations = [
13+
migrations.AddField(
14+
model_name='projecttaskgroup',
15+
name='number_of_groups',
16+
field=models.IntegerField(default=1),
17+
preserve_default=False,
18+
),
19+
]

apps/project/models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,7 @@ class ProjectTaskGroup(FirebasePushResource):
497497
)
498498

499499
number_of_tasks = models.IntegerField()
500+
number_of_groups = models.IntegerField()
500501
required_count = models.IntegerField()
501502

502503
finished_count = models.IntegerField(default=0)

apps/project/tests/mutation_test.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1511,11 +1511,10 @@ def test_project_street(self, mock_requests):
15111511
"clientId": project_client_id,
15121512
"status": self.genum(Project.Status.MARKED_AS_READY),
15131513
}
1514-
content = self._update_project_mutation(project_id, project_data)
1515-
resp_data = content["data"]["updateProject"]
1514+
content = self._update_project_status_mutation(project_id, project_data)
1515+
resp_data = content["data"]["updateProjectStatus"]
15161516
assert resp_data["errors"] is None, content
15171517
assert resp_data["result"]["status"] == self.genum(Project.Status.MARKED_AS_READY)
1518-
assert resp_data["result"]["processingStatus"] is None
15191518

15201519
mock_requests.assert_called_once()
15211520
mock_requests.assert_has_calls([call(int(project_id))])

project_types/base/project.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ def analyze_groups(self):
122122
project_task_groups_qs = ProjectTaskGroup.objects.filter(project_id=self.project.pk)
123123

124124
project_task_groups_qs.update(
125+
number_of_groups=project_task_groups_qs.count(),
125126
number_of_tasks=models.Subquery(
126127
ProjectTask.objects.filter(task_group_id=models.OuterRef("id"))
127128
.values("task_group_id")

project_types/street/project.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class StreetMapillaryImageFilters(BaseModel):
3434

3535

3636
class StreetProjectProperty(base_project.BaseProjectProperty):
37-
aoi_geometry: typing.Annotated[str, Field(strict=True, pattern=r"^\d+$")] | None = None
37+
aoi_geometry: custom_fields.PydanticId
3838
custom_options: list[CustomOption] | None = None
3939
mapillary_image_filters: StreetMapillaryImageFilters
4040

@@ -109,11 +109,11 @@ def create_tasks(
109109

110110
bulk_mgr.add(
111111
ProjectTask(
112-
firebase_id=f"t{f_id}",
112+
firebase_id=f"{f_id}",
113113
task_group_id=group.pk,
114114
geometry=geometry_str,
115115
project_type_specifics=self.project_task_property_class(
116-
task_id=f"t{f_id}",
116+
task_id=f"{f_id}",
117117
group_id=f"g{group.pk}",
118118
geometry=geometry_str,
119119
).model_dump(),
@@ -140,6 +140,7 @@ def create_groups(self, resp: StreetRawGroupItem):
140140
firebase_id=f"g{group_id}",
141141
project_id=self.project.pk,
142142
number_of_tasks=0,
143+
number_of_groups=0,
143144
progress=0,
144145
finished_count=0,
145146
required_count=0,
@@ -214,6 +215,7 @@ def get_task_specifics_for_firebase(self, task: ProjectTask):
214215
def get_group_specifics_for_firebase(self, group: ProjectTaskGroup):
215216
return firebase_models.FbMappingGroupStreetCreateOnlyInput(
216217
groupId=group.firebase_id,
218+
numberOfGroups=group.number_of_groups,
217219
)
218220

219221
@typing.override

project_types/tile_map_service/base/project.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ def create_groups(self, resp: tile_grouping.AoiGeometry):
198198
firebase_id=group_key,
199199
project_id=self.project.pk,
200200
number_of_tasks=0,
201+
number_of_groups=0,
201202
progress=0,
202203
finished_count=0,
203204
required_count=0,

project_types/validate/project.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,7 @@ def create_groups(self, resp: list[ValidFeature]):
300300
firebase_id=group_key,
301301
project_id=self.project.pk,
302302
number_of_tasks=0,
303+
number_of_groups=0,
303304
progress=0,
304305
finished_count=0,
305306
required_count=0,

project_types/validate_image/project.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ def create_groups(self, resp: list[ValidImage]):
166166
firebase_id=group_key,
167167
project_id=self.project.pk,
168168
number_of_tasks=0,
169+
number_of_groups=0,
169170
progress=0,
170171
finished_count=0,
171172
required_count=0,

0 commit comments

Comments
 (0)