26 lines
835 B
Python
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
|