def create_root_comment(self, referendum): """ Creates a root Comment """ root_comment = Comment.add_root(content='referendum', user_id=referendum.user.id) referendum.comment = root_comment referendum.save() return root_comment
def get(self, request, pk, format=None): """ Lists the tree of comments for the thread """ try: referendum = self.get_referendum(pk) except Http404: return Response({'message': 'Referendum not found'}, status=status.HTTP_404_NOT_FOUND) if referendum.comment: root_comment = referendum.comment else: root_comment = self.create_root_comment(referendum) referendum.comment = root_comment referendum.save() data = Comment.dump_bulk(parent=root_comment) data = self.update_information_from_tree(data) return Response(data)
def form_valid(self, form): """ If the form is valid, save the associated model. """ self.object = form.save(commit=False) self.object.user = self.request.user referendum_text = "%s \n %s " % (self.object.text_remove_rules, self.object.text_add_rules) root_comment = Comment.add_root(content=referendum_text, user_id=self.request.user.id) root_comment.save() self.object.comment = root_comment self.object = form.save(commit=True) self.object.title = "Referendum %i " % self.object.id self.object.save() return super(ReferendumCreateView, self).form_valid(form)