add signals log

sync3
Laurent 5 months ago
parent e7979427c3
commit e3a7096216
  1. 21
      sync/signals.py

@ -6,11 +6,14 @@ from .models import DataAccess, ModelLog, ModelOperation, BaseModel, SideStoreMo
from authentication.models import Device from authentication.models import Device
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.utils import timezone
from .ws_sender import websocket_sender from .ws_sender import websocket_sender
from .registry import device_registry, related_users_registry from .registry import device_registry, related_users_registry
import logging
logger = logging.getLogger(__name__)
User = get_user_model() User = get_user_model()
### Sync ### Sync
@ -28,7 +31,9 @@ def presave_handler(sender, instance, **kwargs):
return return
users = related_users(instance) users = related_users(instance)
# print(f'* impacted users = {users}')
logger.info(f'* {signal} : {instance.__class__.__name__} > impacted users = {users}')
related_users_registry.register(instance.id, users) related_users_registry.register(instance.id, users)
# user_ids = [user.id for user in users] # user_ids = [user.id for user in users]
@ -129,7 +134,7 @@ def save_model_log(users, model_operation, model_name, model_id, store_id):
device_id=device_id device_id=device_id
) )
for user in users for user in users
if user.can_synchronize # if user.can_synchronize
] ]
with transaction.atomic(): with transaction.atomic():
@ -302,18 +307,8 @@ def related_users(instance):
users.add(instance) users.add(instance)
elif isinstance(instance, BaseModel): elif isinstance(instance, BaseModel):
users.add(instance.related_user) users.add(instance.related_user)
# users.add(instance.last_updated_by)
# look in hierarchy
# related_instances = instance.related_instances()
# print(f'related_instances = {related_instances}')
# related_users = [ri.related_user for ri in related_instances if isinstance(ri, BaseModel)]
# users.update(related_users)
data_access_list = DataAccess.objects.filter(id__in=instance.data_access_ids) data_access_list = DataAccess.objects.filter(id__in=instance.data_access_ids)
# look in related DataAccess
# data_access_list = instances_related_data_access(instance, related_instances)
# print(f'instance = {instance.__class__.__name__}, data access count = {len(data_access_list)}') # print(f'instance = {instance.__class__.__name__}, data access count = {len(data_access_list)}')
for data_access in data_access_list: for data_access in data_access_list:
users.add(data_access.related_user) users.add(data_access.related_user)

Loading…
Cancel
Save