]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/models/node.py
Added functionality to convert answers to comments as mentioned in Jira OSQA-462.
[osqa.git] / forum / models / node.py
index f62a8e078b9c2fc17b8a80d6a39cc9617df6c9ff..042aad8f9a995386eddbc0cc4c01045d8f209bca 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))
@@ -247,7 +244,7 @@ class Node(BaseModel, NodeContent):
     @classmethod
     def _generate_cache_key(cls, key, group="node"):
         return super(Node, cls)._generate_cache_key(key, group)
-
+        
     @classmethod
     def get_type(cls):
         return cls.__name__.lower()
@@ -283,6 +280,13 @@ class Node(BaseModel, NodeContent):
 
         return nis
 
+    @property
+    def last_activity(self):
+        try:
+            return self.actions.order_by('-action_date')[0].action_date
+        except:
+            return self.last_seen
+
     @property
     def state_list(self):
         return [s.state_type for s in self.states.all()]
@@ -330,10 +334,10 @@ class Node(BaseModel, NodeContent):
         self.activate_revision(user, revision)
         return revision
 
-    def activate_revision(self, user, revision):
+    def activate_revision(self, user, revision, *extensions):
         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)