From 167f24de485b8e1357c606bb38d994554c63df33 Mon Sep 17 00:00:00 2001 From: Nicola Tarocco Date: Mon, 18 Sep 2023 10:33:22 +0200 Subject: [PATCH] models: avoid flushing when getting records --- invenio_users_resources/records/api.py | 16 +++++++++------- .../services/users/service.py | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/invenio_users_resources/records/api.py b/invenio_users_resources/records/api.py index 95663db..9bfcfd5 100644 --- a/invenio_users_resources/records/api.py +++ b/invenio_users_resources/records/api.py @@ -189,9 +189,10 @@ def from_user(cls, user): # TODO data = parse_user_data(user) - model = cls.model_cls(data, model_obj=user) - user_agg = cls(data, model=model) - return user_agg + with db.session.no_autoflush: + model = cls.model_cls(data, model_obj=user) + user_agg = cls(data, model=model) + return user_agg @classmethod def get_record(cls, id_): @@ -278,10 +279,11 @@ def from_role(cls, role): # TODO data = parse_role_data(role) - model = cls.model_cls(data, model_obj=role) - role_agg = cls(data, model=model) - role_agg._role = role - return role_agg + with db.session.no_autoflush: + model = cls.model_cls(data, model_obj=role) + role_agg = cls(data, model=model) + role_agg._role = role + return role_agg @classmethod def get_record(cls, id_): diff --git a/invenio_users_resources/services/users/service.py b/invenio_users_resources/services/users/service.py index fa687ff..39fe8ea 100644 --- a/invenio_users_resources/services/users/service.py +++ b/invenio_users_resources/services/users/service.py @@ -77,7 +77,7 @@ def create(self, identity, data, raise_errors=True, uow=None): ) def search(self, identity, params=None, search_preference=None, **kwargs): - """Search for records matching the querystring.""" + """Search for active and confirmed users, matching the querystring.""" return super().search( identity, params=params,