Beispiel #1
0
def new_post(request, board_slug):
    board = Board.objects.get(slug=board_slug)
    if request.method == 'POST':
        post_form = PostForm(request.POST)
        attachment_form = AttachmentForm(request.POST, request.FILES)
        if post_form.is_valid() and attachment_form.is_valid(
        ) and request.user.is_authenticated:
            post = post_form.save(commit=False)
            post.board = board
            post.ip = get_ip(request)
            try:
                post.account = request.user
            except Post.DoesNotExist:
                post.account = None
            post.save()
            attachment = attachment_form.save(commit=False)
            attachment.post = post
            attachment.save()
            return redirect(board)
    else:
        post_form = PostForm()
        attachment_form = AttachmentForm()

    return render(request, 'new_post.html', {
        'board': board,
        'post_form': post_form,
        'attachment_form': attachment_form
    })
Beispiel #2
0
def new_post(request, board_slug):
    board = Board.objects.get(slug=board_slug)
    if request.method == 'POST':
        post_form = PostForm(request.POST)
        attachment_form = AttachmentForm(request.POST, request.FILES)
        if post_form.is_valid() and attachment_form.is_valid() and request.user.is_authenticated:
            post = post_form.save(commit=False)
            post.board = board
            post.ip = get_ip(request)
            try:
                post.account = request.user
            except Post.DoesNotExist:
                post.account = None
            post.save()
            attachment = attachment_form.save(commit=False)
            attachment.post = post
            attachment.save()
            return redirect(board)
    else:
        post_form = PostForm()
        attachment_form = AttachmentForm()

    return render(request, 'new_post.html', {'board': board, 'post_form': post_form, 'attachment_form': attachment_form})
Beispiel #3
0
def edit_post(request, post_id):
    origin_post = Post.objects.get(id=post_id)
    edited_post = Post.objects.get(id=post_id)
    try:
        origin_attachment = Attachment.objects.get(post=origin_post)
        origin_attachment_name = origin_attachment.attachment.name
    except Attachment.DoesNotExist:
        origin_attachment = None
        origin_attachment_name = ''

    if request.method == 'POST':
        post_form = PostForm(request.POST, instance=edited_post)
        attachment_form = AttachmentForm(request.POST, request.FILES)
        if origin_post.title != request.POST['title'] or origin_post.content != request.POST['content'] or \
                origin_attachment_name != request.FILES.get('attachment', ''):
            if post_form.is_valid() and attachment_form.is_valid():
                edited_post.save()

                edited_post_history = EditedPostHistory.objects.create(
                    post=origin_post,
                    title=origin_post.title,
                    content=origin_post.content,
                    ip=origin_post.ip
                )
                edited_post_history.save()

                # add attachment
                if not origin_attachment and request.FILES.get('attachment', '') != '':
                    new_attachment = attachment_form.save(commit=False)
                    new_attachment.post = edited_post
                    new_attachment.save()

                # modify attachment
                elif origin_attachment and request.FILES.get('attachment', '') != '' \
                        and origin_attachment_name != request.FILES.get('attachment', ''):
                    origin_attachment.post = None
                    origin_attachment.editedPostHistory = edited_post_history
                    origin_attachment.save()

                    new_attachment = attachment_form.save(commit=False)
                    new_attachment.post = edited_post
                    new_attachment.save()

                # remove attachment
                elif request.POST.get('attachment-clear', '') == 'on':
                    origin_attachment.post = None
                    origin_attachment.editedPostHistory = edited_post_history
                    origin_attachment.save()

                return redirect(edited_post)
        else:
            error_message = "변경 사항이 없습니다"
            return render(request, 'edit_post.html', {
                'post': origin_post,
                'post_form': post_form,
                'attachment_form': attachment_form,
                'error_alert': error_message
            })
    else:
        post_form = PostForm(initial={'title': origin_post.title, 'content': origin_post.content})
        if origin_attachment:
            attachment_form = AttachmentForm(initial={'attachment': origin_attachment.attachment})
        else:
            attachment_form = AttachmentForm()

    return render(request, 'edit_post.html', {'post': origin_post, 'post_form': post_form, 'attachment_form': attachment_form})
Beispiel #4
0
def edit_post(request, post_id):
    origin_post = Post.objects.get(id=post_id)
    edited_post = Post.objects.get(id=post_id)
    try:
        origin_attachment = Attachment.objects.get(post=origin_post)
        origin_attachment_name = origin_attachment.attachment.name
    except Attachment.DoesNotExist:
        origin_attachment = None
        origin_attachment_name = ''

    if request.method == 'POST':
        post_form = PostForm(request.POST, instance=edited_post)
        attachment_form = AttachmentForm(request.POST, request.FILES)
        if origin_post.title != request.POST['title'] or origin_post.content != request.POST['content'] or \
                origin_attachment_name != request.FILES.get('attachment', ''):
            if post_form.is_valid() and attachment_form.is_valid():
                edited_post.save()

                edited_post_history = EditedPostHistory.objects.create(
                    post=origin_post,
                    title=origin_post.title,
                    content=origin_post.content,
                    ip=origin_post.ip)
                edited_post_history.save()

                # add attachment
                if not origin_attachment and request.FILES.get(
                        'attachment', '') != '':
                    new_attachment = attachment_form.save(commit=False)
                    new_attachment.post = edited_post
                    new_attachment.save()

                # modify attachment
                elif origin_attachment and request.FILES.get('attachment', '') != '' \
                        and origin_attachment_name != request.FILES.get('attachment', ''):
                    origin_attachment.post = None
                    origin_attachment.editedPostHistory = edited_post_history
                    origin_attachment.save()

                    new_attachment = attachment_form.save(commit=False)
                    new_attachment.post = edited_post
                    new_attachment.save()

                # remove attachment
                elif request.POST.get('attachment-clear', '') == 'on':
                    origin_attachment.post = None
                    origin_attachment.editedPostHistory = edited_post_history
                    origin_attachment.save()

                return redirect(edited_post)
        else:
            error_message = "변경 사항이 없습니다"
            return render(
                request, 'edit_post.html', {
                    'post': origin_post,
                    'post_form': post_form,
                    'attachment_form': attachment_form,
                    'error_alert': error_message
                })
    else:
        post_form = PostForm(initial={
            'title': origin_post.title,
            'content': origin_post.content
        })
        if origin_attachment:
            attachment_form = AttachmentForm(
                initial={'attachment': origin_attachment.attachment})
        else:
            attachment_form = AttachmentForm()

    return render(
        request, 'edit_post.html', {
            'post': origin_post,
            'post_form': post_form,
            'attachment_form': attachment_form
        })