It is emitted after new properties are saved on Project or Message
objects.
Signed-off-by: Fam Zheng <famz@redhat.com>
---
api/models.py | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/api/models.py b/api/models.py
index 0c8688a..2055957 100644
--- a/api/models.py
+++ b/api/models.py
@@ -102,7 +102,7 @@ class Project(models.Model):
r[m.name] = json.loads(m.value)
return r
- def set_property(self, prop, value):
+ def _do_set_property(self, prop, value):
if value == None:
ProjectProperty.objects.filter(project=self, name=prop).delete()
return
@@ -119,6 +119,12 @@ class Project(models.Model):
pp.blob = blob
pp.save()
+ def set_property(self, prop, value):
+ old_val = self.get_property(prop)
+ self._do_set_property(prop, value)
+ emit_event("SetProperty", obj=self, name=prop, value=value,
+ old_value=old_val)
+
def total_series_count(self):
return Message.objects.series_heads(project=self.name).count()
@@ -176,6 +182,11 @@ declare_event("SeriesComplete", project="project object",
declare_event("MessageAdded", message="message object that is added")
+declare_event("SetProperty", obj="object to set the property",
+ name="name of the property",
+ value="value of the property",
+ old_value="old value if any")
+
class MessageManager(models.Manager):
class DuplicateMessageError(Exception):
@@ -408,7 +419,7 @@ class Message(models.Model):
self._properties = r
return r
- def set_property(self, prop, value):
+ def _do_set_property(self, prop, value):
if value == None:
MessageProperty.objects.filter(message=self, name=prop).delete()
return
@@ -427,6 +438,12 @@ class Message(models.Model):
if hasattr(self, '_properties'):
del(self._properties)
+ def set_property(self, prop, value):
+ old_val = self.get_property(prop)
+ self._do_set_property(prop, value)
+ emit_event("SetProperty", obj=self, name=prop, value=value,
+ old_value=old_val)
+
def get_sender(self):
return json.loads(self.sender)
--
2.14.3