X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/410bfa05ee36ed1d99356c443a5f3f6aa3ee9578..35ebbd77a68be7cb9b774756c24557c1349d9ac9:/forum/models/action.py diff --git a/forum/models/action.py b/forum/models/action.py index 10eb165..9a6f5ae 100644 --- a/forum/models/action.py +++ b/forum/models/action.py @@ -65,9 +65,19 @@ class Action(models.Model): def cancel_action(self): pass + @property + def verb(self): + return "" + def describe(self, viewer=None): return "" + def get_absolute_url(self): + if self.node: + return self.node.get_absolute_url() + else: + return self.user.get_profile_url() + def repute(self, user, value): repute = ActionRepute(action=self, user=user, value=value) repute.save() @@ -187,6 +197,9 @@ class ActionProxy(Action): def friendly_ownername(self, owner, user): return (owner == user) and _('your') or user.username + def viewer_or_user_verb(self, viewer, user, viewer_verb, user_verb): + return (viewer == user) and viewer_verb or user_verb + def hyperlink(self, url, title, **attrs): return '%s' % (url, " ".join('%s="%s"' % i for i in attrs.items()), title) @@ -206,11 +219,20 @@ class ActionProxy(Action): class Meta: proxy = True -class DummyActionProxy(Action): - __metaclass__ = ActionProxyMetaClass +class DummyActionProxyMetaClass(type): + def __new__(cls, *args, **kwargs): + new_cls = super(DummyActionProxyMetaClass, cls).__new__(cls, *args, **kwargs) + ActionProxyMetaClass.types[new_cls.get_type()] = new_cls + return new_cls + +class DummyActionProxy(object): + __metaclass__ = DummyActionProxyMetaClass hooks = [] + def __init__(self, ip=None): + self.ip = ip + def process_data(self, **data): pass