X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/410bfa05ee36ed1d99356c443a5f3f6aa3ee9578..30beae7541b44060bdd42b55fe525a1113452b55:/forum/actions/meta.py?ds=sidebyside diff --git a/forum/actions/meta.py b/forum/actions/meta.py index a45fe58..1862cb3 100644 --- a/forum/actions/meta.py +++ b/forum/actions/meta.py @@ -2,7 +2,7 @@ from django.utils.translation import ugettext as _ from django.db.models import F from forum.models.action import ActionProxy, DummyActionProxy from forum.models import Vote, Flag -import settings +from forum import settings class VoteAction(ActionProxy): def update_node_score(self, inc): @@ -15,7 +15,7 @@ class VoteAction(ActionProxy): vote.save() def cancel_action(self): - vote = self.vote.all()[0] + vote = self.vote self.update_node_score(-vote.value) vote.delete() @@ -98,7 +98,7 @@ class FlagAction(ActionProxy): DeleteAction(node=self.node, user=self.user, extra="BYFLAGGED").save() def cancel_action(self): - self.flag.all()[0].delete() + self.flag.delete() self.node.reset_flag_count_cache() @classmethod @@ -171,15 +171,13 @@ class FavoriteAction(ActionProxy): class DeleteAction(ActionProxy): def process_action(self): - self.node.deleted = self - self.node.save() + self.node.mark_deleted(self) if self.node.node_type == "answer": self.node.question.reset_answer_count_cache() def cancel_action(self): - self.node.deleted = None - self.node.save() + self.node.mark_deleted(None) if self.node.node_type == "answer": self.node.question.reset_answer_count_cache() @@ -196,12 +194,16 @@ class DeleteAction(ActionProxy): else: return _("flagged by multiple users: ") + "; ".join([f.extra for f in FlagAction.objects.filter(node=self.node)]) +class UnknownAction(ActionProxy): + pass + class QuestionViewAction(DummyActionProxy): - def __init__(self, question, user): + def __init__(self, node, user, ip=None): self.viewuser = user - self.question = question + self.node = node + super(QuestionViewAction, self).__init__(ip) def process_action(self): - self.question.extra_count = F('extra_count') + 1 - self.question.save() + self.node.extra_count = F('extra_count') + 1 + self.node.save()