Adding the at_rename hook to the base Typeclass.
This commit is contained in:
parent
270037455a
commit
735416a16e
1 changed files with 26 additions and 0 deletions
|
|
@ -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
|
||||
Loading…
Add table
Add a link
Reference in a new issue