Adding the at_rename hook to the base Typeclass.

This commit is contained in:
Andrew Bastien 2016-03-13 04:31:15 -04:00 committed by Griatch
parent 270037455a
commit 735416a16e

View file

@ -307,12 +307,26 @@ class TypedObject(SharedMemoryModel):
return self.key
def __name_set(self, value):
oldname = str(self.key)
self.key = value
self.at_rename(oldname, value)
def __name_del(self):
raise Exception("Cannot delete name")
name = property(__name_get, __name_set, __name_del)
# key property (overrides's the idmapper's db_key for the at_rename hook)
@property
def key(self):
return self.db_key
@key.setter
def key(self, value):
oldname = str(self.db_key)
self.db_key = value
self.save(update_fields=["db_key"])
self.at_rename(oldname, value)
#
#
# TypedObject main class methods and properties
@ -677,3 +691,15 @@ class TypedObject(SharedMemoryModel):
if self.location == looker:
return " (carried)"
return ""
def at_rename(self, oldname, newname):
"""
This Hook is called by @name on a successful rename.
Args:
oldname (str): The instance's original name.
newname (str): The new name for the instance.
Returns: Nothing.
"""
pass