From ada1000ad40b9a1a30fff5f103503a4d2aefdec9 Mon Sep 17 00:00:00 2001 From: ngovinh2k2 Date: Thu, 20 Aug 2026 09:01:16 +0700 Subject: [PATCH] fix: pass deactivated device end dates to entity property lookup --- apps/device/services/entity_properties_context.py | 15 +++++++++++++++ apps/device/services/entity_properties_service.py | 2 ++ 2 files changed, 17 insertions(+) diff --git a/apps/device/services/entity_properties_context.py b/apps/device/services/entity_properties_context.py index d8d054d..1cddfe1 100644 --- a/apps/device/services/entity_properties_context.py +++ b/apps/device/services/entity_properties_context.py @@ -12,12 +12,27 @@ def _device_ids(items): return device_ids +def _device_property_end_dates(items): + end_dates = {} + for item in items: + device = getattr(item, "device", item) + device_id = getattr(device, "id", None) + if not device_id or not getattr(device, "is_deactivated", False): + continue + + end_date = getattr(device, "deactivated_at", None) + if end_date: + end_dates[str(device_id)] = end_date.isoformat() + return end_dates + + def _entity_properties_context(context, items, organization_slug): return { **context, "entity_properties_by_device_id": EntityPropertiesService().get_entity_properties_batch( _device_ids(items), organization_slug, + _device_property_end_dates(items), ), } diff --git a/apps/device/services/entity_properties_service.py b/apps/device/services/entity_properties_service.py index ccdc4d1..e9e607b 100644 --- a/apps/device/services/entity_properties_service.py +++ b/apps/device/services/entity_properties_service.py @@ -14,11 +14,13 @@ def get_entity_properties_batch( self, device_ids: set[str], organization_slug: str, + end_dates: dict[str, str] | None = None, ) -> dict[str, dict]: try: entities_by_device_id = self.telemetry_client.get_entity_properties_batch( list(device_ids), organization_slug, + end_dates or {}, ) return { device_id: {