Skip to content

Commit 4fba6c9

Browse files
authored
Merge pull request #170 from superannotateai/re-design-sdk
fix settings - project_image_count
2 parents 34bbb62 + 52ed5f0 commit 4fba6c9

File tree

3 files changed

+41
-30
lines changed

3 files changed

+41
-30
lines changed

src/superannotate/lib/core/usecases.py

Lines changed: 38 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1357,6 +1357,12 @@ def __init__(
13571357
self._project_id = project_id
13581358
self._team_id = team_id
13591359

1360+
def validate_image_quality(self):
1361+
for setting in self._to_update:
1362+
if setting["attribute"].lower() == "imagequality" and isinstance(setting["value"], str):
1363+
setting["value"] = constances.ImageQuality.get_value(setting["value"])
1364+
return
1365+
13601366
def validate_project_type(self):
13611367
project = self._projects.get_one(uuid=self._project_id, team_id=self._team_id)
13621368
for attribute in self._to_update:
@@ -1369,27 +1375,27 @@ def validate_project_type(self):
13691375
)
13701376

13711377
def execute(self):
1378+
if self.is_valid():
1379+
old_settings = self._settings.get_all()
1380+
attr_id_mapping = {}
1381+
for setting in old_settings:
1382+
attr_id_mapping[setting.attribute] = setting.uuid
1383+
1384+
new_settings_to_update = []
1385+
for new_setting in self._to_update:
1386+
new_settings_to_update.append(
1387+
{
1388+
"id": attr_id_mapping[new_setting["attribute"]],
1389+
"attribute": new_setting["attribute"],
1390+
"value": new_setting["value"],
1391+
}
1392+
)
13721393

1373-
old_settings = self._settings.get_all()
1374-
attr_id_mapping = {}
1375-
for setting in old_settings:
1376-
attr_id_mapping[setting.attribute] = setting.uuid
1377-
1378-
new_settings_to_update = []
1379-
for new_setting in self._to_update:
1380-
new_settings_to_update.append(
1381-
{
1382-
"id": attr_id_mapping[new_setting["attribute"]],
1383-
"attribute": new_setting["attribute"],
1384-
"value": new_setting["value"],
1385-
}
1394+
self._response.data = self._backend_service_provider.set_project_settings(
1395+
project_id=self._project_id,
1396+
team_id=self._team_id,
1397+
data=new_settings_to_update,
13861398
)
1387-
1388-
self._response.data = self._backend_service_provider.set_project_settings(
1389-
project_id=self._project_id,
1390-
team_id=self._team_id,
1391-
data=new_settings_to_update,
1392-
)
13931399
return self._response
13941400

13951401

@@ -2418,6 +2424,10 @@ def __init__(
24182424
self._folder = folder
24192425
self._with_all_sub_folders = with_all_sub_folders
24202426

2427+
def validate_user_input(self):
2428+
if not self._folder.name == "root" and self._with_all_sub_folders:
2429+
raise AppValidationException("The folder does not contain any sub-folders.")
2430+
24212431
def validate_project_type(self):
24222432
if self._project.project_type == constances.ProjectType.VIDEO.value:
24232433
raise AppValidationException(
@@ -2430,13 +2440,16 @@ def execute(self):
24302440
project_id=self._project.uuid, team_id=self._project.team_id
24312441
)
24322442
count = 0
2433-
for i in data["folders"]["data"]:
2434-
if i["id"] == self._folder.uuid:
2435-
count = i["imagesCount"]
2436-
2437-
if self._with_all_sub_folders:
2443+
if self._folder.name == "root":
2444+
count += data["images"]["count"]
2445+
if self._with_all_sub_folders:
2446+
for i in data["folders"]["data"]:
2447+
count += i["imagesCount"]
2448+
else:
24382449
for i in data["folders"]["data"]:
2439-
count += i["imagesCount"]
2450+
if i["id"] == self._folder.uuid:
2451+
count = i["imagesCount"]
2452+
24402453
self._response.data = count
24412454
return self._response
24422455

tests/integration/test_folders.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -303,12 +303,11 @@ def test_copy_images(self):
303303
num_images = sa.get_project_image_count(project2)
304304
self.assertEqual(num_images, 2)
305305

306-
res = sa.copy_images(project, None, project2)
306+
sa.copy_images(project, None, project2)
307307

308308
num_images = sa.get_project_image_count(project2)
309309
self.assertEqual(num_images, 4)
310310

311-
312311
sa.copy_images(
313312
project,
314313
[self.EXAMPLE_IMAGE_2, self.EXAMPLE_IMAGE_3],
@@ -318,7 +317,7 @@ def test_copy_images(self):
318317
copy_pin=False,
319318
)
320319
num_images = sa.get_project_image_count(self.PROJECT_NAME)
321-
self.assertEqual(num_images, 0)
320+
self.assertEqual(num_images, 2)
322321

323322
def test_move_images(self):
324323
sa.create_folder(self.PROJECT_NAME, self.TEST_FOLDER_NAME_1)

tests/integration/test_interface.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,4 @@ def test_get_project_default_image_quality_in_editor(self):
1818
self.assertIsNotNone(sa.get_project_default_image_quality_in_editor(self.PROJECT_NAME))
1919

2020
def test_get_project_metadata(self):
21-
metadata = sa.get_project_metadata(self.PROJECT_NAME, include_settings=True)
22-
print(metadata)
21+
pass

0 commit comments

Comments
 (0)