From c4f470e8f70d1f12072ffbc9331b3c6582568ea7 Mon Sep 17 00:00:00 2001 From: dekzter Date: Sun, 20 Apr 2025 09:54:16 -0400 Subject: [PATCH] Fixed bug in deleting stream profiles --- core/apps.py | 4 ++++ core/models.py | 6 ------ core/signals.py | 9 +++++++++ 3 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 core/signals.py diff --git a/core/apps.py b/core/apps.py index 3a01f0bd..63c883ca 100644 --- a/core/apps.py +++ b/core/apps.py @@ -5,3 +5,7 @@ import os, logging class CoreConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'core' + + def ready(self): + # Import signals to ensure they get registered + import core.signals diff --git a/core/models.py b/core/models.py index a8571b5c..fe7e9eb5 100644 --- a/core/models.py +++ b/core/models.py @@ -58,12 +58,6 @@ class StreamProfile(models.Model): def __str__(self): return self.name - def delete(self): - if self.locked(): - raise ValueError("This profile is locked and cannot be deleted.") - - self.delete() - def save(self, *args, **kwargs): if self.pk: # Only check existing records orig = StreamProfile.objects.get(pk=self.pk) diff --git a/core/signals.py b/core/signals.py new file mode 100644 index 00000000..6844a890 --- /dev/null +++ b/core/signals.py @@ -0,0 +1,9 @@ +from django.db.models.signals import pre_delete +from django.dispatch import receiver +from django.core.exceptions import ValidationError +from .models import StreamProfile + +@receiver(pre_delete, sender=StreamProfile) +def prevent_deletion_if_locked(sender, instance, **kwargs): + if instance.locked: + raise ValidationError("This profile is locked and cannot be deleted.")