X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/77c7fb49881b1df98ce3584468105ba78740fd48..7f4982393567a5f6827c12a089363d91338f9f13:/forum/actions/node.py diff --git a/forum/actions/node.py b/forum/actions/node.py index 50e4ef1..530c649 100644 --- a/forum/actions/node.py +++ b/forum/actions/node.py @@ -2,6 +2,7 @@ from django.utils.html import strip_tags from django.utils.translation import ugettext as _ from forum.models.action import ActionProxy from forum.models import Comment, Question, Answer, NodeRevision +import logging class NodeEditAction(ActionProxy): def create_revision_data(self, initial=False, **data): @@ -179,6 +180,45 @@ class AnswerToCommentAction(ActionProxy): 'question': self.describe_node(viewer, self.node.abs_parent), } +class CommentToAnswerAction(ActionProxy): + verb = _("converted") + + def process_data(self, question): + self.node.parent = question + self.node.node_type = "answer" + self.node.last_edited = self + self.node.update_last_activity(self.user, save=True) + + + def describe(self, viewer=None): + return _("%(user)s converted comment on %(question)s into an answer") % { + 'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)), + 'question': self.describe_node(viewer, self.node.abs_parent), + } + +class AnswerToQuestionAction(ActionProxy): + verb = _("converted to question") + + def process_data(self, title): + self.node.node_type = "question" + self.node.title = title + self.node.active_revision.title = title + self.node.active_revision.save() + self.node.last_edited = self + self.node.update_last_activity(self.user, save=True) + + try: + self.node.abs_parent.reset_answer_count_cache() + except AttributeError: + pass + + + def describe(self, viewer=None): + return _("%(user)s converted an answer to %(question)s into a separate question") % { + 'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)), + 'question': self.describe_node(viewer, self.node.abs_parent), + } + class WikifyAction(ActionProxy): verb = _("wikified")