From 1600db7d1783bc156d53c9c9e33128288418062e Mon Sep 17 00:00:00 2001 From: Josselin BUILS Date: Wed, 17 Dec 2025 13:56:07 +0100 Subject: [PATCH 1/2] fix(LAB-3967): fix count_project_users criteria It now excludes deleted users, but include deactivated users by default. --- src/kili/core/graphql/operations/project_user/queries.py | 3 +++ src/kili/entrypoints/queries/project_user/__init__.py | 3 +++ .../entrypoints/client/queries/test_project_users_queries.py | 1 + 3 files changed, 7 insertions(+) diff --git a/src/kili/core/graphql/operations/project_user/queries.py b/src/kili/core/graphql/operations/project_user/queries.py index 9cdaf5e51..f59723d94 100644 --- a/src/kili/core/graphql/operations/project_user/queries.py +++ b/src/kili/core/graphql/operations/project_user/queries.py @@ -17,6 +17,7 @@ def __init__( organization_id: Optional[str] = None, status: Optional[Literal["ACTIVATED", "ORG_ADMIN", "ORG_SUSPENDED"]] = None, active_in_project: Optional[bool] = None, + deleted: Optional[bool] = None, ) -> None: self.project_id = project_id self.email = email @@ -24,6 +25,7 @@ def __init__( self.organization_id = organization_id self.status = status self.active_in_project = active_in_project # user not deleted and nbr of labeled assets > 0 + self.deleted = deleted super().__init__() def graphql_where_builder(self): @@ -32,6 +34,7 @@ def graphql_where_builder(self): "id": self._id, "status": self.status, "activeInProject": self.active_in_project, + "deleted": self.deleted, "project": { "id": self.project_id, }, diff --git a/src/kili/entrypoints/queries/project_user/__init__.py b/src/kili/entrypoints/queries/project_user/__init__.py index 24809b116..bcc7325ad 100644 --- a/src/kili/entrypoints/queries/project_user/__init__.py +++ b/src/kili/entrypoints/queries/project_user/__init__.py @@ -176,6 +176,7 @@ def count_project_users( status_in: Optional[Sequence[Literal["ACTIVATED", "ORG_ADMIN", "ORG_SUSPENDED"]]] = ( "ACTIVATED", "ORG_ADMIN", + "ORG_SUSPENDED", ), ) -> int: """Count the number of projects and their users that match a set of criteria. @@ -196,6 +197,7 @@ def count_project_users( """ if status_in is None: where = ProjectUserWhere( + deleted=False, project_id=project_id, email=email, _id=id, @@ -206,6 +208,7 @@ def count_project_users( count = 0 for status in set(status_in): where = ProjectUserWhere( + deleted=False, project_id=project_id, email=email, _id=id, diff --git a/tests/integration/entrypoints/client/queries/test_project_users_queries.py b/tests/integration/entrypoints/client/queries/test_project_users_queries.py index 8ed06b5e8..d913c5ef2 100644 --- a/tests/integration/entrypoints/client/queries/test_project_users_queries.py +++ b/tests/integration/entrypoints/client/queries/test_project_users_queries.py @@ -15,6 +15,7 @@ def test_project_users_query(mocker: pytest_mock.MockFixture): assert "query projectUsers" in query assert variables == { "where": { + "deleted": None, "id": None, "status": None, "activeInProject": None, From 41a03e1cc45112757a89483f77acff0f24b80428 Mon Sep 17 00:00:00 2001 From: Josselin BUILS Date: Mon, 5 Jan 2026 14:54:57 +0100 Subject: [PATCH 2/2] fix(LAB-3967): fix project_users criteria It now excludes deleted users, but include deactivated users by default. --- src/kili/entrypoints/queries/project_user/__init__.py | 2 ++ .../entrypoints/client/queries/test_project_users_queries.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/kili/entrypoints/queries/project_user/__init__.py b/src/kili/entrypoints/queries/project_user/__init__.py index bcc7325ad..8cc7362b2 100644 --- a/src/kili/entrypoints/queries/project_user/__init__.py +++ b/src/kili/entrypoints/queries/project_user/__init__.py @@ -94,6 +94,7 @@ def project_users( status_in: Optional[Sequence[Literal["ACTIVATED", "ORG_ADMIN", "ORG_SUSPENDED"]]] = ( "ACTIVATED", "ORG_ADMIN", + "ORG_SUSPENDED", ), fields: ListOrTuple[str] = ( "activated", @@ -143,6 +144,7 @@ def project_users( fields = [*fields, "status"] where = ProjectUserWhere( + deleted=False, project_id=project_id, email=email, _id=id, diff --git a/tests/integration/entrypoints/client/queries/test_project_users_queries.py b/tests/integration/entrypoints/client/queries/test_project_users_queries.py index d913c5ef2..f0bc88a03 100644 --- a/tests/integration/entrypoints/client/queries/test_project_users_queries.py +++ b/tests/integration/entrypoints/client/queries/test_project_users_queries.py @@ -15,7 +15,7 @@ def test_project_users_query(mocker: pytest_mock.MockFixture): assert "query projectUsers" in query assert variables == { "where": { - "deleted": None, + "deleted": False, "id": None, "status": None, "activeInProject": None,