New api and zone management; highligh occlusion and highlighAll functionality; improved search in reports and alerts history + autofill; refactored alert panel

This commit is contained in:
iv_vuytsik
2025-12-25 03:10:21 +03:00
parent 31030f2997
commit ce7e39debf
36 changed files with 1562 additions and 472 deletions

View File

@@ -9,10 +9,11 @@ class AlertSerializer(serializers.ModelSerializer):
object = serializers.SerializerMethodField()
metric_value = serializers.SerializerMethodField()
detector_type = serializers.SerializerMethodField()
detector_id = serializers.SerializerMethodField()
class Meta:
model = Alert
fields = ('id', 'name', 'object', 'metric_value', 'detector_type', 'message', 'severity', 'created_at', 'resolved')
fields = ('id', 'name', 'object', 'metric_value', 'detector_type', 'detector_id', 'message', 'severity', 'created_at', 'resolved')
@extend_schema_field(OpenApiTypes.STR)
def get_name(self, obj) -> str:
@@ -38,3 +39,9 @@ class AlertSerializer(serializers.ModelSerializer):
if sensor_type is None:
return ''
return (getattr(sensor_type, 'code', '') or '').upper()
@extend_schema_field(OpenApiTypes.STR)
def get_detector_id(self, obj) -> str:
if hasattr(obj, 'sensor') and obj.sensor:
return obj.sensor.name or f"{obj.sensor.sensor_type.code}-{obj.sensor.id}"
return ""