From 1218c74d26ac35afe8e5f7615ad4a368b29addeb Mon Sep 17 00:00:00 2001 From: Laurent Date: Mon, 20 Oct 2025 15:00:51 +0200 Subject: [PATCH] fix WS notification issue --- sync/admin.py | 2 +- sync/ws_sender.py | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/sync/admin.py b/sync/admin.py index 23e2b36..b207ab2 100644 --- a/sync/admin.py +++ b/sync/admin.py @@ -24,7 +24,7 @@ class SyncedObjectAdmin(admin.ModelAdmin): queryset.delete() class ModelLogAdmin(admin.ModelAdmin): - list_display = ['user', 'formatted_time', 'operation', 'model_id', 'model_name', 'count'] + list_display = ['user', 'formatted_time', 'model_name', 'operation', 'model_id', 'device_id'] list_filter = ['operation', 'model_name', 'user'] ordering = ['-date'] search_fields = ['model_id'] diff --git a/sync/ws_sender.py b/sync/ws_sender.py index 90059ca..48da767 100644 --- a/sync/ws_sender.py +++ b/sync/ws_sender.py @@ -63,16 +63,19 @@ class WebSocketSender: return with self._debounce_lock: + timer_device_id = device_id if user_ids_key in self._debounce_registry: - old_timer, _ = self._debounce_registry[user_ids_key] + old_timer, old_device_id = self._debounce_registry[user_ids_key] old_timer.cancel() + if old_device_id != device_id: # we want to notify all devices if there all multiple ones + timer_device_id = None new_timer = Timer( self._buffer_timeout, self._handle_debounced_action, - args=[user_ids_key, device_id] + args=[user_ids_key, timer_device_id] ) - self._debounce_registry[user_ids_key] = (new_timer, device_id) # Store new timer and latest device_id + self._debounce_registry[user_ids_key] = (new_timer, device_id) new_timer.start() def _handle_debounced_action(self, user_ids_key, device_id):