def post(self, request): try: user = request.user except Account.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) serializer = CreateCommentSerializer(data=request.data) if serializer.is_valid(): try: post = Post.objects.get(slug=request.data.get('post')) except Post.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) parent_comment = serializer.data.get('parent_comment', None) if parent_comment: try: parent_comment = Comment.objects.get(id=parent_comment_id) except Comment.DoesNotExist: parent_comment = None comment = Comment() comment.body = serializer.data.get('body') comment.post = post comment.author = user comment.parent_comment = parent_comment comment.save() return Response(data=DetailCommentSerializer(comment).data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def create(self, validated_data): """ Create and return a new 'Comment' instance, given the validated data This is like the form class's save method. Serializers have a save method, which will in turn invoke these functions """ print "CommentSerializer: In Create" comment = Comment() comment.author = validated_data.get('author', None) if comment.author is None: comment.author_name = validated_data.get('author_name', None) comment.author_email = validated_data.get('author_email', None) comment.author_url = validated_data.get('author_url', None) if comment.author_name is None and comment.author_email is None: return None comment.body = validated_data.get('body') comment.post = validated_data.get('post') comment.published = False if comment.author is not None and settings.COMMENT_MODERATION_ENABLED is not True: comment.published = True elif comment.author is not None and comment.author.is_staff: comment.published = True comment.save() return comment
def migrate_comments(self): for legacy_comment in LegacyComment.objects.all(): assert isinstance(legacy_comment, LegacyComment) date_naive = datetime.utcfromtimestamp(legacy_comment.timestamp) date = timezone.make_aware(date_naive, timezone.utc) comment = Comment() comment.body = legacy_comment.comment comment.created = date comment.public = not legacy_comment.officer comment.user_id = legacy_comment.poster_id # this is erroring if legacy_comment.section == 0: continue if legacy_comment.section == 1: continue if legacy_comment.section == 2: continue if legacy_comment.section == 5: continue comment.content_type_id = { # i dont know what the keys are for the different content types 0: 1, # user manager 1: 2, # application 2: 3, # fodder vote 3: 4, # quote 4: 5, # screenshot 5: 6 # leadership application }.get(legacy_comment.section) comment.object_id = legacy_comment.reference comment.save()
def migrate_comments(self): for legacy_comment in LegacyComment.objects.all(): assert isinstance(legacy_comment, LegacyComment) date_naive = datetime.utcfromtimestamp(legacy_comment.timestamp) date = timezone.make_aware(date_naive, timezone.utc) comment = Comment() comment.body = legacy_comment.comment comment.created = date comment.public = not legacy_comment.officer comment.user_id = legacy_comment.poster_id # this is erroring if legacy_comment.section == 0: continue if legacy_comment.section == 1: continue if legacy_comment.section == 2: continue if legacy_comment.section == 5: continue comment.content_type_id = { # i dont know what the keys are for the different content types 0: 1, # user manager 1: 2, # application 2: 3, # fodder vote 3: 4, # quote 4: 5, # screenshot 5: 6 # leadership application }.get(legacy_comment.section) comment.object_id = legacy_comment.reference comment.save()
def new_comment(request): # saving the poted comment if request.method == 'POST': form = CommentForm(request.POST) if form.is_valid(): comment = Comment() comment.book = form.cleaned_data.get("book") comment.chapter = form.cleaned_data.get("chapter") comment.example = form.cleaned_data.get("example") comment.page = form.cleaned_data.get("page") comment.title = form.cleaned_data.get("title") comment.body = form.cleaned_data.get("body") comment.email = form.cleaned_data.get("email", "Anonymous") comment.save() return HttpResponseRedirect( '/comments/get/?book={0}&chapter={1}&example={2}&page={3}'.format( comment.book, comment.chapter, comment.example, comment.page ) ) else: book = request.POST.get('book', '') chapter = request.POST.get('chapter', '') example = request.POST.get('example', '') page = request.POST.get('page', '') return HttpResponseRedirect( '/comments/new/?book={0}&chapter={1}&example={2}&page={3}'.format( book, chapter, example, page ) ) # retriving comment parameters book = request.GET.get('book', '') chapter = request.GET.get('chapter', '') example = request.GET.get('example', '') page = request.GET.get('page', '') initial_values = { 'book': book, 'chapter': chapter, 'example': example, 'page': page } form = CommentForm(initial = initial_values) context = { 'form': form, 'book': book, 'chapter': chapter, 'example': example, 'page': page } context.update(csrf(request)) return render(request, 'comments/new_comment.html', context)
def new_comment(request): # saving the poted comment if request.method == 'POST': form = CommentForm(request.POST) if form.is_valid(): comment = Comment() comment.book = form.cleaned_data.get("book") comment.chapter = form.cleaned_data.get("chapter") comment.example = form.cleaned_data.get("example") comment.page = form.cleaned_data.get("page") comment.title = form.cleaned_data.get("title") comment.body = form.cleaned_data.get("body") comment.email = form.cleaned_data.get("email", "Anonymous") comment.save() return HttpResponseRedirect( '/comments/get/?book={0}&chapter={1}&example={2}&page={3}'. format(comment.book, comment.chapter, comment.example, comment.page)) else: book = request.POST.get('book', '') chapter = request.POST.get('chapter', '') example = request.POST.get('example', '') page = request.POST.get('page', '') return HttpResponseRedirect( '/comments/new/?book={0}&chapter={1}&example={2}&page={3}'. format(book, chapter, example, page)) # retriving comment parameters book = request.GET.get('book', '') chapter = request.GET.get('chapter', '') example = request.GET.get('example', '') page = request.GET.get('page', '') initial_values = { 'book': book, 'chapter': chapter, 'example': example, 'page': page } form = CommentForm(initial=initial_values) context = { 'form': form, 'book': book, 'chapter': chapter, 'example': example, 'page': page } context.update(csrf(request)) return render(request, 'comments/new_comment.html', context)
def create(self, validated_data): """ Create and return a new 'Comment' instance, given the validated data This is like the form class's save method. Serializers have a save method, which will in turn invoke these functions """ print('In create') comment = Comment() comment.author = validated_data.get('author') if comment.author is None: comment.author_name = validated_data.get('author_name', None) comment.author_email = validated_data.get('author_email', None) comment.author_url = validated_data.get('author_url', None) if comment.author_name is None and comment.author_email is None: return None comment.body = validated_data.get('body') comment.post = validated_data.get('post') comment.published = False if comment.author is not None and settings.COMMENT_MODERATION_ENABLED is not True: comment.published = True elif comment.author is not None and comment.author.is_staff: comment.published = True comment.parent_comment = validated_data.get('parent_comment', None) print(comment.parent_comment) comment.save() return comment