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
2 changes: 1 addition & 1 deletion src/superannotate/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import sys


__version__ = "4.5.0dev1"
__version__ = "4.5.1dev1"


os.environ.update({"sa_version": __version__})
Expand Down
2 changes: 1 addition & 1 deletion src/superannotate/lib/app/interface/sdk_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -2148,7 +2148,7 @@ def assign_folder(
raise AppException(response.errors)
project = response.data
project_contributors = self.controller.work_management.list_users(
project=project
email__in=users, project=project
)
verified_users = [i.email for i in project_contributors]
verified_users = set(users).intersection(set(verified_users))
Expand Down
34 changes: 21 additions & 13 deletions src/superannotate/lib/core/usecases/projects.py
Original file line number Diff line number Diff line change
Expand Up @@ -852,25 +852,32 @@ def validate_emails(self):
def execute(self):
if self.is_valid():
team_users = set()
role_email_map = defaultdict(list)

user_to_retrieve = []
for contributor in self._contributors:
role_email_map[contributor.role].append(contributor.email)
user_to_retrieve.append(contributor.email)

users = self._service_provider.work_management.list_users(
Filter("role", constants.UserRole.CONTRIBUTOR.value, OperatorEnum.EQ)
& Filter("email", user_to_retrieve, OperatorEnum.IN),
parent_entity=CustomFieldEntityEnum.TEAM,
).data
for user in users:
team_users.add(user.email)

to_skip = []
to_add = []

project_users = self._service_provider.work_management.list_users(
EmptyQuery(),
Filter("email", user_to_retrieve, OperatorEnum.IN),
include_custom_fields=True,
parent_entity=CustomFieldEntityEnum.PROJECT,
project_id=self._project.id,
).data
project_emails = {user.email for user in project_users}
users = self._service_provider.work_management.list_users(
EmptyQuery(), parent_entity=CustomFieldEntityEnum.TEAM
).data
for user in users:
if user.role == constants.UserRole.CONTRIBUTOR.value:
team_users.add(user.email)

role_email_map = defaultdict(list)
to_skip = []
to_add = []
for contributor in self._contributors:
role_email_map[contributor.role].append(contributor.email)
for role_id, emails in role_email_map.items():
role_name = self._service_provider.get_role_name(self._project, role_id)
_to_add = list(team_users.intersection(emails) - project_emails)
Expand Down Expand Up @@ -925,7 +932,8 @@ def __init__(
def execute(self):
if self.is_valid():
all_users = self._service_provider.work_management.list_users(
EmptyQuery(), parent_entity=CustomFieldEntityEnum.TEAM
Filter("email", self._emails, OperatorEnum.IN),
parent_entity=CustomFieldEntityEnum.TEAM,
).data
# collecting pending team users
team_user_emails = []
Expand Down
Loading