]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/models/action.py
osqa-23
[osqa.git] / forum / models / action.py
index 10eb1658a5f54cb39858a3c1b2355cdbd0b028dc..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
@@ -187,6 +197,9 @@ class ActionProxy(Action):
     def friendly_ownername(self, owner, user):\r
         return (owner == user) and _('your') or user.username\r
 \r
+    def viewer_or_user_verb(self, viewer, user, viewer_verb, user_verb):\r
+        return (viewer == user) and viewer_verb or user_verb    \r
+\r
     def hyperlink(self, url, title, **attrs):\r
         return '<a href="%s" %s>%s</a>' % (url, " ".join('%s="%s"' % i for i in attrs.items()), title)\r
 \r
@@ -206,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