Files
tacticalrmm/api/tacticalrmm/alerts/serializers.py
wh1te909 9f2f23fa96 blacked
2023-02-15 00:21:57 +00:00

58 lines
1.9 KiB
Python

from rest_framework.fields import SerializerMethodField
from rest_framework.serializers import ModelSerializer, ReadOnlyField
from automation.serializers import PolicySerializer
from clients.serializers import ClientMinimumSerializer, SiteMinimumSerializer
from .models import Alert, AlertTemplate
class AlertSerializer(ModelSerializer):
hostname = ReadOnlyField(source="assigned_agent.hostname")
agent_id = ReadOnlyField(source="assigned_agent.agent_id")
client = ReadOnlyField(source="client.name")
site = ReadOnlyField(source="site.name")
alert_time = ReadOnlyField()
class Meta:
model = Alert
fields = "__all__"
class AlertTemplateSerializer(ModelSerializer):
agent_settings = ReadOnlyField(source="has_agent_settings")
check_settings = ReadOnlyField(source="has_check_settings")
task_settings = ReadOnlyField(source="has_task_settings")
core_settings = ReadOnlyField(source="has_core_settings")
default_template = ReadOnlyField(source="is_default_template")
action_name = ReadOnlyField(source="action.name")
resolved_action_name = ReadOnlyField(source="resolved_action.name")
applied_count = SerializerMethodField()
class Meta:
model = AlertTemplate
fields = "__all__"
def get_applied_count(self, instance):
return (
instance.policies.count()
+ instance.clients.count()
+ instance.sites.count()
)
class AlertTemplateRelationSerializer(ModelSerializer):
policies = PolicySerializer(read_only=True, many=True)
clients = ClientMinimumSerializer(read_only=True, many=True)
sites = SiteMinimumSerializer(read_only=True, many=True)
class Meta:
model = AlertTemplate
fields = "__all__"
class AlertTemplateAuditSerializer(ModelSerializer):
class Meta:
model = AlertTemplate
fields = "__all__"