X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/a0d8de9db45ebc5f3c13779df19ffac842b9d96b..970b17e67841daa480973c8bdad6d21168b0525d:/forum/models/action.py?ds=sidebyside diff --git a/forum/models/action.py b/forum/models/action.py index d6d0c64..7fd2e6f 100644 --- a/forum/models/action.py +++ b/forum/models/action.py @@ -15,8 +15,13 @@ class ActionQuerySet(CachedQuerySet): else: return super(ActionQuerySet, self).obj_from_datadict(datadict) - def get(self, *args, **kwargs): - return super(ActionQuerySet, self).get(*args, **kwargs).leaf() + def get(self, *args, **kwargs): + action = super(ActionQuerySet, self).get(*args, **kwargs).leaf() + + if not isinstance(action, self.model): + raise self.model.DoesNotExist() + + return action class ActionManager(CachedManager): use_for_related_fields = True @@ -36,6 +41,7 @@ class ActionManager(CachedManager): class Action(BaseModel): user = models.ForeignKey('User', related_name="actions") + real_user = models.ForeignKey('User', related_name="proxied_actions", null=True) ip = models.CharField(max_length=16) node = models.ForeignKey('Node', null=True, related_name="actions") action_type = models.CharField(max_length=16) @@ -231,6 +237,9 @@ class ActionProxy(Action): 'node_desc': node_desc, } + def affected_links(self, viewer): + return ", ".join([self.hyperlink(u.get_profile_url(), self.friendly_username(viewer, u)) for u in set([r.user for r in self.reputes.all()])]) + class Meta: proxy = True