Fixed bug in deleting stream profiles

This commit is contained in:
dekzter 2025-04-20 09:54:16 -04:00
parent 656c9e9e14
commit c4f470e8f7
3 changed files with 13 additions and 6 deletions

View file

@ -5,3 +5,7 @@ import os, logging
class CoreConfig(AppConfig): class CoreConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField' default_auto_field = 'django.db.models.BigAutoField'
name = 'core' name = 'core'
def ready(self):
# Import signals to ensure they get registered
import core.signals

View file

@ -58,12 +58,6 @@ class StreamProfile(models.Model):
def __str__(self): def __str__(self):
return self.name 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): def save(self, *args, **kwargs):
if self.pk: # Only check existing records if self.pk: # Only check existing records
orig = StreamProfile.objects.get(pk=self.pk) orig = StreamProfile.objects.get(pk=self.pk)

9
core/signals.py Normal file
View file

@ -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.")