X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/c6c168511f18d8984901b2c828a47310a2d54d64..15eabbf86190e4bc8ae9dc747d853b0300976b12:/forum/actions/node.py diff --git a/forum/actions/node.py b/forum/actions/node.py index 530c649..53699e9 100644 --- a/forum/actions/node.py +++ b/forum/actions/node.py @@ -189,6 +189,8 @@ class CommentToAnswerAction(ActionProxy): self.node.last_edited = self self.node.update_last_activity(self.user, save=True) + # Now updated the cached data + question.reset_answer_count_cache() def describe(self, viewer=None): return _("%(user)s converted comment on %(question)s into an answer") % { @@ -196,21 +198,29 @@ class CommentToAnswerAction(ActionProxy): 'question': self.describe_node(viewer, self.node.abs_parent), } -class AnswerToQuestionAction(ActionProxy): +class AnswerToQuestionAction(NodeEditAction): verb = _("converted to question") - def process_data(self, title): + def process_data(self, **data): + revision_data = self.create_revision_data(**data) + revision = self.node.create_revision(self.user, **revision_data) + + original_question = self.node.question + + self.extra = { + 'covert_revision': revision.revision, + 'original_question': original_question + } + 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) + self.node.parent = None + self.node.abs_parent = None - try: - self.node.abs_parent.reset_answer_count_cache() - except AttributeError: - pass + original_question.reset_answer_count_cache() + + def process_action(self): + self.node.last_edited = self + self.node.save() def describe(self, viewer=None):