X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/0bf7a855000b99350fce021dc8fe1bf59ceece20..6f9524a34c490d43db43a1ae4b44b40d77ce691a:/forum/models/node.py diff --git a/forum/models/node.py b/forum/models/node.py index 552944e..9e734d2 100644 --- a/forum/models/node.py +++ b/forum/models/node.py @@ -77,6 +77,7 @@ class NodeMetaClass(models.Model.__metaclass__): node_create = django.dispatch.Signal(providing_args=['instance']) +node_edit = django.dispatch.Signal(providing_args=['instance']) class Node(BaseModel, NodeContent, DeletableContent): __metaclass__ = NodeMetaClass @@ -136,14 +137,17 @@ class Node(BaseModel, NodeContent, DeletableContent): self.body = revision.body old_revision = self.active_revision - self.active_revision = revision - self.save() if not old_revision: + signal = node_create + else: self.last_edited_at = datetime.datetime.now() self.last_edited_by = user - node_create.send(sender=self.__class__, instance=self) + signal = node_edit + + self.save() + signal.send(sender=self.__class__, instance=self) def get_tag_list_if_changed(self): dirty = self.get_dirty_fields() @@ -190,6 +194,8 @@ class Node(BaseModel, NodeContent, DeletableContent): if self.parent_id and not self.abs_parent_id: self.abs_parent = self.parent.absolute_parent + + self.__dict__['score'] = self.__dict__['vote_up_count'] - self.__dict__['vote_down_count'] tags = self.get_tag_list_if_changed() super(Node, self).save(*args, **kwargs)