X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/b8dacc53495e1c3a4a2e16a800168a9908725936..b41d891b467b1fed5a0cb8a6d2a42388a0f12fd5:/forum/models/action.py diff --git a/forum/models/action.py b/forum/models/action.py index 583b27c..785ed2d 100644 --- a/forum/models/action.py +++ b/forum/models/action.py @@ -65,9 +65,19 @@ class Action(models.Model): def cancel_action(self): pass - def describe(self, viewer=None): + @property + def verb(self): return "" + def describe(self, viewer=None): + return self.__class__.__name__ + + 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() @@ -209,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