]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/models/node.py
Applies some of the Justin Grant's patches.
[osqa.git] / forum / models / node.py
index f62a8e078b9c2fc17b8a80d6a39cc9617df6c9ff..69c6396a4bc2cd9e26c5e86360172c3b41c13c76 100644 (file)
@@ -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()]