]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/models/action.py
osqa-23
[osqa.git] / forum / models / action.py
index 583b27c078fcf46c55eb6c3017082caaabf1effe..9a6f5ae43b19971ed37d823b28721573fc2efd83 100644 (file)
@@ -65,9 +65,19 @@ class Action(models.Model):
     def cancel_action(self):\r
         pass\r
 \r
+    @property\r
+    def verb(self):\r
+        return ""\r
+\r
     def describe(self, viewer=None):\r
         return ""\r
 \r
+    def get_absolute_url(self):\r
+        if self.node:\r
+            return self.node.get_absolute_url()\r
+        else:\r
+            return self.user.get_profile_url()\r
+\r
     def repute(self, user, value):\r
         repute = ActionRepute(action=self, user=user, value=value)\r
         repute.save()\r
@@ -209,11 +219,20 @@ class ActionProxy(Action):
     class Meta:\r
         proxy = True\r
 \r
-class DummyActionProxy(Action):\r
-    __metaclass__ = ActionProxyMetaClass\r
+class DummyActionProxyMetaClass(type):\r
+    def __new__(cls, *args, **kwargs):\r
+        new_cls = super(DummyActionProxyMetaClass, cls).__new__(cls, *args, **kwargs)\r
+        ActionProxyMetaClass.types[new_cls.get_type()] = new_cls\r
+        return new_cls\r
+\r
+class DummyActionProxy(object):\r
+    __metaclass__ = DummyActionProxyMetaClass\r
 \r
     hooks = []\r
 \r
+    def __init__(self, ip=None):\r
+        self.ip = ip\r
+\r
     def process_data(self, **data):\r
         pass\r
 \r