Refactor/remove signal receiver module
This commit is contained in:
parent
8c39996365
commit
6dde0b52f5
3 changed files with 32 additions and 17 deletions
|
|
@ -68,8 +68,19 @@ from django.db.models.signals import (
|
||||||
pre_delete, # Sent before an object is deleted.
|
pre_delete, # Sent before an object is deleted.
|
||||||
post_delete, # after "
|
post_delete, # after "
|
||||||
m2m_changed, # Sent when a ManyToManyField changes.
|
m2m_changed, # Sent when a ManyToManyField changes.
|
||||||
|
pre_migrate, # Sent before migration starts
|
||||||
|
post_migrate, # after "
|
||||||
|
pre_init, # Sent at start of typeclass __init__ (before at_init)
|
||||||
|
post_init, # end
|
||||||
)
|
)
|
||||||
from django.core.signals import (
|
from django.core.signals import (
|
||||||
request_started, # Sent when HTTP request begins.
|
request_started, # Sent when HTTP request begins.
|
||||||
request_finished, # " ends.
|
request_finished, # " ends.
|
||||||
)
|
)
|
||||||
|
from django.test.signals import (
|
||||||
|
setting_changed, # Sent when setting changes from override
|
||||||
|
template_rendered, # Sent when test system renders template
|
||||||
|
)
|
||||||
|
from django.db.backends.signals import (
|
||||||
|
connection_created, # Sent when making initial connection to database
|
||||||
|
)
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,6 @@ from evennia.utils.utils import (
|
||||||
is_iter, inherits_from, lazy_property,
|
is_iter, inherits_from, lazy_property,
|
||||||
class_from_module)
|
class_from_module)
|
||||||
from evennia.utils.logger import log_trace
|
from evennia.utils.logger import log_trace
|
||||||
from .signals import remove_attributes_on_delete, post_save
|
|
||||||
|
|
||||||
__all__ = ("TypedObject", )
|
__all__ = ("TypedObject", )
|
||||||
|
|
||||||
|
|
@ -61,11 +60,29 @@ _TYPECLASS_AGGRESSIVE_CACHE = settings.TYPECLASS_AGGRESSIVE_CACHE
|
||||||
_GA = object.__getattribute__
|
_GA = object.__getattribute__
|
||||||
_SA = object.__setattr__
|
_SA = object.__setattr__
|
||||||
|
|
||||||
#------------------------------------------------------------
|
|
||||||
|
# signal receivers. Connected in __new__
|
||||||
|
|
||||||
|
def call_at_first_save(sender, instance, created, **kwargs):
|
||||||
|
"""
|
||||||
|
Receives a signal just after the object is saved.
|
||||||
|
"""
|
||||||
|
if created:
|
||||||
|
instance.at_first_save()
|
||||||
|
|
||||||
|
|
||||||
|
def remove_attributes_on_delete(sender, instance, **kwargs):
|
||||||
|
"""
|
||||||
|
Wipe object's Attributes when it's deleted
|
||||||
|
"""
|
||||||
|
instance.db_attributes.all().delete()
|
||||||
|
|
||||||
|
|
||||||
|
# ------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Typed Objects
|
# Typed Objects
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------
|
# ------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
@ -101,7 +118,7 @@ class TypeclassBase(SharedMemoryModelBase):
|
||||||
new_class = ModelBase.__new__(cls, name, bases, attrs)
|
new_class = ModelBase.__new__(cls, name, bases, attrs)
|
||||||
|
|
||||||
# attach signals
|
# attach signals
|
||||||
signals.post_save.connect(post_save, sender=new_class)
|
signals.post_save.connect(call_at_first_save, sender=new_class)
|
||||||
signals.pre_delete.connect(remove_attributes_on_delete, sender=new_class)
|
signals.pre_delete.connect(remove_attributes_on_delete, sender=new_class)
|
||||||
return new_class
|
return new_class
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
# signal receivers. Assigned in __new__
|
|
||||||
def post_save(sender, instance, created, **kwargs):
|
|
||||||
"""
|
|
||||||
Receives a signal just after the object is saved.
|
|
||||||
"""
|
|
||||||
if created:
|
|
||||||
instance.at_first_save()
|
|
||||||
|
|
||||||
|
|
||||||
def remove_attributes_on_delete(sender, instance, **kwargs):
|
|
||||||
instance.db_attributes.all().delete()
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue