mirror of
https://github.com/evennia/evennia.git
synced 2026-04-01 13:37:17 +02:00
Refactor/remove signal receiver module
This commit is contained in:
parent
26a7d0e9e8
commit
b961f282c2
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.
|
||||
post_delete, # after "
|
||||
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 (
|
||||
request_started, # Sent when HTTP request begins.
|
||||
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,
|
||||
class_from_module)
|
||||
from evennia.utils.logger import log_trace
|
||||
from .signals import remove_attributes_on_delete, post_save
|
||||
|
||||
__all__ = ("TypedObject", )
|
||||
|
||||
|
|
@ -61,11 +60,29 @@ _TYPECLASS_AGGRESSIVE_CACHE = settings.TYPECLASS_AGGRESSIVE_CACHE
|
|||
_GA = object.__getattribute__
|
||||
_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
|
||||
#
|
||||
#------------------------------------------------------------
|
||||
# ------------------------------------------------------------
|
||||
|
||||
|
||||
#
|
||||
|
|
@ -101,7 +118,7 @@ class TypeclassBase(SharedMemoryModelBase):
|
|||
new_class = ModelBase.__new__(cls, name, bases, attrs)
|
||||
|
||||
# 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)
|
||||
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