fix WS notification issue

main
Laurent 3 weeks ago
parent 49d497d48f
commit 1218c74d26
  1. 2
      sync/admin.py
  2. 9
      sync/ws_sender.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']

@ -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):

Loading…
Cancel
Save