Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 38 additions & 25 deletions src/superannotate/lib/core/usecases.py
Original file line number Diff line number Diff line change
Expand Up @@ -1357,6 +1357,12 @@ def __init__(
self._project_id = project_id
self._team_id = team_id

def validate_image_quality(self):
for setting in self._to_update:
if setting["attribute"].lower() == "imagequality" and isinstance(setting["value"], str):
setting["value"] = constances.ImageQuality.get_value(setting["value"])
return

def validate_project_type(self):
project = self._projects.get_one(uuid=self._project_id, team_id=self._team_id)
for attribute in self._to_update:
Expand All @@ -1369,27 +1375,27 @@ def validate_project_type(self):
)

def execute(self):
if self.is_valid():
old_settings = self._settings.get_all()
attr_id_mapping = {}
for setting in old_settings:
attr_id_mapping[setting.attribute] = setting.uuid

new_settings_to_update = []
for new_setting in self._to_update:
new_settings_to_update.append(
{
"id": attr_id_mapping[new_setting["attribute"]],
"attribute": new_setting["attribute"],
"value": new_setting["value"],
}
)

old_settings = self._settings.get_all()
attr_id_mapping = {}
for setting in old_settings:
attr_id_mapping[setting.attribute] = setting.uuid

new_settings_to_update = []
for new_setting in self._to_update:
new_settings_to_update.append(
{
"id": attr_id_mapping[new_setting["attribute"]],
"attribute": new_setting["attribute"],
"value": new_setting["value"],
}
self._response.data = self._backend_service_provider.set_project_settings(
project_id=self._project_id,
team_id=self._team_id,
data=new_settings_to_update,
)

self._response.data = self._backend_service_provider.set_project_settings(
project_id=self._project_id,
team_id=self._team_id,
data=new_settings_to_update,
)
return self._response


Expand Down Expand Up @@ -2418,6 +2424,10 @@ def __init__(
self._folder = folder
self._with_all_sub_folders = with_all_sub_folders

def validate_user_input(self):
if not self._folder.name == "root" and self._with_all_sub_folders:
raise AppValidationException("The folder does not contain any sub-folders.")

def validate_project_type(self):
if self._project.project_type == constances.ProjectType.VIDEO.value:
raise AppValidationException(
Expand All @@ -2430,13 +2440,16 @@ def execute(self):
project_id=self._project.uuid, team_id=self._project.team_id
)
count = 0
for i in data["folders"]["data"]:
if i["id"] == self._folder.uuid:
count = i["imagesCount"]

if self._with_all_sub_folders:
if self._folder.name == "root":
count += data["images"]["count"]
if self._with_all_sub_folders:
for i in data["folders"]["data"]:
count += i["imagesCount"]
else:
for i in data["folders"]["data"]:
count += i["imagesCount"]
if i["id"] == self._folder.uuid:
count = i["imagesCount"]

self._response.data = count
return self._response

Expand Down
5 changes: 2 additions & 3 deletions tests/integration/test_folders.py
Original file line number Diff line number Diff line change
Expand Up @@ -303,12 +303,11 @@ def test_copy_images(self):
num_images = sa.get_project_image_count(project2)
self.assertEqual(num_images, 2)

res = sa.copy_images(project, None, project2)
sa.copy_images(project, None, project2)

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


sa.copy_images(
project,
[self.EXAMPLE_IMAGE_2, self.EXAMPLE_IMAGE_3],
Expand All @@ -318,7 +317,7 @@ def test_copy_images(self):
copy_pin=False,
)
num_images = sa.get_project_image_count(self.PROJECT_NAME)
self.assertEqual(num_images, 0)
self.assertEqual(num_images, 2)

def test_move_images(self):
sa.create_folder(self.PROJECT_NAME, self.TEST_FOLDER_NAME_1)
Expand Down
3 changes: 1 addition & 2 deletions tests/integration/test_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,4 @@ def test_get_project_default_image_quality_in_editor(self):
self.assertIsNotNone(sa.get_project_default_image_quality_in_editor(self.PROJECT_NAME))

def test_get_project_metadata(self):
metadata = sa.get_project_metadata(self.PROJECT_NAME, include_settings=True)
print(metadata)
pass