From efbe72d67547af709947f1d5a0cb287b28b23e32 Mon Sep 17 00:00:00 2001 From: Laurent Date: Thu, 12 Jun 2025 15:34:30 +0200 Subject: [PATCH] adds atomic transaction for sharing ModelLog --- sync/models/data_access.py | 4 ++-- sync/signals.py | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/sync/models/data_access.py b/sync/models/data_access.py index 0f33c25..5a38ae3 100644 --- a/sync/models/data_access.py +++ b/sync/models/data_access.py @@ -60,10 +60,10 @@ class DataAccess(BaseModel): store_id=store_id ) except ObjectDoesNotExist: - logger.info('object does not exists any more: {self.model_name} : {self.model_id}') + logger.warn(f'!!! object does not exists any more: {self.model_name} : {self.model_id} : {operation}') pass else: - logger.info(f'model not found: {self.model_name}') + logger.warn(f'!!!model not found: {self.model_name}') def add_references(self): model_class = model_registry.get_model(self.model_name) diff --git a/sync/signals.py b/sync/signals.py index e1eeb21..ed7c2fe 100644 --- a/sync/signals.py +++ b/sync/signals.py @@ -263,10 +263,11 @@ def handle_shared_with_changes(sender, instance, action, pk_set, **kwargs): # print(f'm2m changed = {pk_set}') users = User.objects.filter(id__in=pk_set) - if action == "post_add": - instance.create_access_log(users, 'SHARED_ACCESS') - elif action == "post_remove": - instance.create_access_log(users, 'REVOKED_ACCESS') + with transaction.atomic(): + if action == "post_add": + instance.create_access_log(users, 'SHARED_ACCESS') + elif action == "post_remove": + instance.create_access_log(users, 'REVOKED_ACCESS') device_id = device_registry.get_device_id(instance.id) websocket_sender.send_message(pk_set, device_id)