]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/models/node.py
Bugfix in the activate_revision method.
[osqa.git] / forum / models / node.py
index 36fbda9d9be9eef4162562b913735434311b80b0..65eb2dc66857460e5d9714188a9a91188c0fa44c 100644 (file)
@@ -21,7 +21,7 @@ class NodeContent(models.Model):
 
     @property
     def html(self):
-        return self.as_markdown()
+        return self.body
 
     @classmethod
     def _as_markdown(cls, content, *extensions):
@@ -78,13 +78,10 @@ class NodeMetaClass(BaseMetaClass):
             return node_cls.objects.filter(parent=self)
 
         def parent(self):
-            p = self.__dict__.get('_%s_cache' % name, None)
+            if (self.parent is not None) and self.parent.node_type == name:
+                return self.parent.leaf
 
-            if p is None and (self.parent is not None) and self.parent.node_type == name:
-                p = self.parent.leaf
-                self.__dict__['_%s_cache' % name] = p
-
-            return p
+            return None
 
         Node.add_to_class(name + 's', property(children))
         Node.add_to_class(name, property(parent))
@@ -334,13 +331,13 @@ class Node(BaseModel, NodeContent):
     def create_revision(self, user, **kwargs):
         number = self.revisions.aggregate(last=models.Max('revision'))['last'] + 1
         revision = self._create_revision(user, number, **kwargs)
-        self.activate_revision(user, revision)
+        self.activate_revision(user, revision, extensions=['urlize'])
         return revision
 
-    def activate_revision(self, user, revision):
+    def activate_revision(self, user, revision, extensions=['urlize']):
         self.title = revision.title
         self.tagnames = revision.tagnames
-        self.body = revision.body
+        self.body = self._as_markdown(revision.body, *extensions)
 
         self.active_revision = revision
         self.update_last_activity(user)
@@ -428,6 +425,7 @@ class Node(BaseModel, NodeContent):
             super(BaseModel, self).save(*args, **kwargs)
             self.active_revision = self._create_revision(self.author, 1, title=self.title, tagnames=self.tagnames,
                                                          body=self.body)
+            self.activate_revision(self.author, self.active_revision)
             self.update_last_activity(self.author, time=self.added_at)
 
         if self.parent_id and not self.abs_parent_id: