old_console/correlation/services/signals.py
2024-11-02 14:12:45 +03:00

26 lines
835 B
Python

import logging
from django.db.models.signals import pre_save
from django.dispatch import receiver
from correlation.models import Rule
from correlation.services.rules import check_if_only_status_changed
_log = logging.getLogger(__name__)
@receiver(pre_save, sender=Rule)
def rule_pre_save_update(sender, instance, *args, **kwargs):
"""Check if rule is archived and if it is - disable it"""
if instance.archived:
instance.status = False
if instance._state.adding:
if not instance.sid:
try:
instance.sid = Rule.objects.order_by('sid').last().sid + 1
except AttributeError:
instance.sid = 1
instance.status = True
else:
if not instance.is_being_parsed and not check_if_only_status_changed(instance):
instance.rev += 1