Exemple #1
0
def post_reply_edit(request, post_id):
    post = Post.objects.get(pk=post_id)
    topic = post.topic
    user = request.user
    form = PostForm(instance=post)

    if not user.id == post.creator.id:
         return render(request, 'personal/basic.html', {'content':['You do not own this post.']})
    
    if topic.closed:
        return render(request, 'personal/basic.html', {'content':['This topic is closed.']})

    if topic.forum.closed and not user.has_perm('forum.can_post_lock_forum'):
        return render(request, 'personal/basic.html', {'content':['This forum is locked.']})

    if request.method == 'POST':
        form = PostForm(request.POST, instance=post)

        if form.is_valid():

            post.body = bleach_clean(form.cleaned_data['body'])
            post.save()

            return HttpResponseRedirect(reverse('topic-detail', args=(topic.id, topic.slug, )))

    return render_to_response('forum/reply.html', {
            'form': form,
            'topic': topic,
            'forum': topic.forum,
            'editing': True,
        }, context_instance=RequestContext(request))
Exemple #2
0
def post_reply(request, topic_id):
    form = PostForm()
    topic = Topic.objects.get(pk=topic_id)
    user = request.user

    if topic.closed:
        return render(request, 'personal/basic.html', {'content':['This topic is closed.']})

    if topic.forum.closed and not user.has_perm('forum.can_post_lock_forum'):
        return render(request, 'personal/basic.html', {'content':['This forum is locked.']})

    if request.method == 'POST':
        form = PostForm(request.POST)

        if form.is_valid():

            post = Post()
            post.topic = topic
            post.title = 'RE: '+topic.title
            post.body = bleach_clean(form.cleaned_data['body'])
            post.creator = request.user
            post.user_ip = get_client_ip(request)

            post.save()

            return HttpResponseRedirect(reverse('topic-detail', args=(topic.id, topic.slug, )))

    return render_to_response('forum/reply.html', {
            'form': form,
            'topic': topic,
            'forum': topic.forum,
            'editing': False,
        }, context_instance=RequestContext(request))
Exemple #3
0
def add_post(request, post_id=None):
    if post_id:
        post = get_object_or_404(Post, pk=post_id)
        if post.author != request.user:
            return HttpResponseForbidden("Only owner of this post is allowed to edit")
    else:
        post = Post(author=request.user)

    if request.method == 'POST':  # If the form has been submitted...
        form = PostForm(request.POST, instance=post)  # A form bound to the POST data
        if form.is_valid():  # All validation rules pass
            text = form.cleaned_data['content']
            html = markdown(text)
            post.title = form.cleaned_data['title']
            post.content = html
            post.tagnames = form.cleaned_data['tagnames']
            post.save()
            return HttpResponseRedirect('/')
    else:
        # An unbound form
        form = PostForm(instance=post)

    return render(request, 'new_post.html', {
        'form': form,
        'post_id': post_id,
    })
Exemple #4
0
def _topic_create_POST(request):
    commit = True
    try:
        post = Post(author=request.forum_user)
        post_form = PostForm(request.POST, instance=post)
        if post_form.is_valid():
            post = post_form.save()
            topic = Topic(author=request.forum_user, first_post=post,
                    last_post=post)
            topic_form = TopicForm(request.POST, instance=topic)
            if topic_form.is_valid():
                topic = topic_form.save()
                post.topic = topic
                post.save()
                for category in topic.categories.all():
                    category.topic_count = category.topic_set.all().count()
                    category.post_count = Post.objects\
                            .filter(topic__in=category.topic_set.all()).count()
                    category.save()
                return redirect(post.get_absolute_url())
        else:
            post_form = PostForm(request.POST)
        ctx = {
            'forum_user': request.forum_user,
            'topic_form': topic_form,
            'post_form': post_form,
        }
        return render(request, 'forum/topic/create.html', ctx)

    finally:
        if commit:
            transaction.commit()
        else:
            transaction.rollback()
Exemple #5
0
def new_post_view(request, thread_id):
    doge_user = DogeUser.objects.get(user=request.user)
    form = PostForm(data=request.POST)
    thread = get_object_or_404(Thread, pk=thread_id)
    if form.is_valid():
        form.create_post(doge_user, thread)
        return thread_redirect(thread_id)
    return HttpResponseRedirect(reverse('index'))
Exemple #6
0
def addpost(request, section_id, topic_id):

    form = PostForm(request.POST or None)

    if form.is_valid():
        post = form.save(commit=False)
        post.topic = get_object_or_404(Topic, pk=topic_id)
        post.timestamp = datetime.today()
        post.author = request.user.username
        post.save()
        
    return redirect(posts, section_id, topic_id)
def submit_post(request):
    if request.method == 'POST':
        form = PostForm(request.POST)
        if form.is_valid():
            f = form.save(commit = False)
            if request.user.is_authenticated():
                f.author = request.user
            f.save()

            return HttpResponseRedirect('/forum/post/' + f.slug + '/')
    else:
        form = PostForm()
    return render(request, 'forum/submit_post.html',{'form': form})        
def post_reply(request, topic_id):
    form = PostForm()
    topic = Topic.objects.get(pk=topic_id)

    if request.method == 'POST':
        form = PostForm(request.POST)

        if form.is_valid():

            post = Post()
            post.topic = topic
            post.title = form.cleaned_data['title']
            post.body = form.cleaned_data['body']

            post.creator = request.user

            userToUpdate = UserProfile.objects.get(user=request.user)

            nCredits = userToUpdate.credits
            userToUpdate.credits = int(float(nCredits + 100))

            # TODO: Change status (if points+100>threshold -> status changes) Alert???
            # Alert? Maybe return to page with status update info for user.
            # Make Gold/Platinum distinction

            if nCredits + 100 >= GOLD_THRESHOLD:
                newStatus = "Gold"
                userToUpdate.status = newStatus
                userToUpdate.save()
                post.user_ip = request.META['REMOTE_ADDR']
                post.save()
                return render_to_response("forum/status_change.html", {'status':  newStatus}, context_instance=RequestContext(request))
            elif nCredits + 100 >= PLATINUM_THRESHOLD:
                newStatus = "Platinum"
                userToUpdate.status = newStatus
                userToUpdate.save()
                post.user_ip = request.META['REMOTE_ADDR']
                post.save()
                return render_to_response("forum/status_change.html", {'status':  newStatus}, context_instance=RequestContext(request))
            else:
                userToUpdate.save()
                post.user_ip = request.META['REMOTE_ADDR']
                post.save()
                return HttpResponseRedirect(reverse('topic-detail', args=(topic.id, )))

    return render_to_response('forum/reply.html', {
        'form': form,
        'topic': topic,
    }, context_instance=RequestContext(request))
Exemple #9
0
def add_post(request, theme_id):
    form = PostForm(request.POST)

    if form.is_valid():
        create_post(
            theme_id,
            form.cleaned_data['post'],
            request.user.id)

    # redirecting to the last page
    posts_list = get_list_or_404(Post, theme_id=theme_id)
    paginator = Paginator(posts_list, 5)

    url = reverse('forum:theme', args=[theme_id, paginator.num_pages])
    return HttpResponseRedirect(url)
Exemple #10
0
def ticket(request, tkt_id=None):
    if not request.user.is_authenticated():
        return redirect(reverse(main.views.index))
    else:
        if tkt_id:
            try:
                tkt = Ticket.objects.get(pk=tkt_id)
            except Ticket.DoesNotExist:
                return redirect(reverse(ticket))
            if tkt.author != request.user:
                return redirect(reverse(ticket))
            msg_list = TicketMessage.objects.filter(parent=tkt_id)
            if request.method == 'POST':
                form = TicketMessafeForm(request.POST)
                if form.is_valid():
                    date = datetime.datetime.now()
                    new = form.save(commit=False)
                    new.author = request.user
                    new.date = date
                    new.parent = tkt
                    new.save()
                    tkt.date = date
                    tkt.save()
            else:
                form = PostForm()
        else:
            tkt_list = Ticket.objects.filter(author=request.user)
        return render(request, 'ticket.html', locals())
Exemple #11
0
def forum_create(request):
    if request.method == 'POST':
        form = PostForm(request.POST)
        print(form.errors)
        if form.is_valid():
            cd = form.cleaned_data
            post = Post(title=cd['title'],
                        content=cd['body'],
                        sender=request.user,
                        summary=cd['outline'],
                        category=cd['category'])
            post.save()
            return HttpResponseRedirect('/forum_index')
    else:
        form = PostForm()
    return render(request, 'forum_create.html', {'form': form})
Exemple #12
0
def post_details(request, id, template="post/details.html"):
    """View for a forum post.
    Autogenerated initially."""
    d = {}
    item = get_object_or_404(Post, pk=id)
    d["form"] = PostForm(instance=item)
    if request.method == "POST":
        form = PostForm(request.POST, instance=item)
        if form.is_valid():
            item = form.save()
            return JsonResponse(data={"form": PostForm(instance=item).as_p(), "token": get_token(request)})
        else:
            d["form"] = form
            return JsonResponse(data={"form": d["form"].as_p(), "token": get_token(request)}, success=False)
    d["post"] = Post.objects.get(pk=id)
    d["username"] = User.objects.get(id=d["post"].created_by_id).username
    return render(request, template, d)
Exemple #13
0
def edit_post(request, post_id, topic_id):
    post = get_object_or_404(Post, id=post_id)
    topic = get_object_or_404(Topic, id=topic_id)
    posts = topic.post_set.order_by('date_added')
    if post.author != request.user:
        raise Http404

    if request.method != 'POST':
        form = PostForm(instance=post)
    else:
        form = PostForm(request.POST, instance=post)
        new_post = form.save(commit=False)
        new_post.edit_date = timezone.now()
        new_post.save()
        return redirect('../')

    return render(request, 'forum/edit_post.html', {'form': form, 'selected_post': post, 'topic': topic, 'posts': posts})
Exemple #14
0
    def get_context_data(self, *args, **kwargs):
        context = super(PostsList, self).get_context_data(**kwargs)
        context['form'] = PostForm()

        # data for pagination
        context['pag_url'] = reverse('forum:theme',
                                     kwargs={'theme_id': self.theme_id})
        context['theme'] = get_object_or_404(Theme, pk=self.theme_id)
        return context
Exemple #15
0
def reply(request, pk):
    context = RequestContext(request)
    context_dict = {'pk': pk}
    
    if request.method=="POST":
        form = PostForm(request.POST)
        
        if form.is_valid():
            
            thread = Thread.objects.get(pk=pk)
            subject = form.cleaned_data['subject']
            body = form.cleaned_data['body']
            Post.objects.create(thread=thread, subject=subject, body = body, creator=request.user)
            
            return HttpResponseRedirect(reverse("forum.views.postlist", args=[pk]))
        else:
            print form.errors
    else:
        return render_to_response('forum/reply.html', context_dict, context)
    def post(self, request, *args, **kwargs):
        form = PostForm(request.POST or None)
        print('test2')
        print(request.POST)

        if form.is_valid():
            print('test3')
            post_data = Post()
            post_data.author = request.user
            post_data.title = form.cleaned_data['title']
            post_data.text = form.cleaned_data['text']
            category = form.cleaned_data['category']
            category_data = Category.objects.filter(name=category)[0]
            post_data.category = category_data
            post_data.save()
            print('test')
            return redirect('forum:post_detail', post_data.id)

        return render(request, 'forum/post_form.html', {'form': form})
Exemple #17
0
def new_post(request, thread_id):
    thread = get_object_or_404(Thread, pk=thread_id)

    if request.method == "POST":
        form = PostForm(request.POST)
        if form.is_valid():
            post = form.save(False)
            post.thread = thread
            post.user = request.user
            post.save()

            messages.success(request, "Your post has been added to the topic")

            return redirect(reverse('forum_thread', args={thread.pk}))
    else:
        form = PostForm()

    args = {
        'form': form,
        'form_action': reverse('forum_new_post', args={thread.id}),
        'button_text': 'Update post'
    }
    args.update(csrf(request))

    return render(request, 'forum/post_form.html', args)
Exemple #18
0
def newthread(request, cat_id):
    if not request.user.is_authenticated():
        return redirect(reverse(index))
    else:
        try:
            cat = Category.objects.get(pk=cat_id)
        except Category.DoesNotExist:
            return redirect(reverse(ticket))
        if request.method == 'POST':
            tform = ThreadForm(request.POST, prefix="thd")
            pform = PostForm(request.POST, prefix="pst")
            if tform.is_valid() and pform.is_valid():
                date = datetime.datetime.now()
                newt = tform.save(commit=False)
                newt.rank = 0
                newt.parent = cat
                newt.date = date
                newt.save()
                newp = pform.save(commit=False)
                newp.author = request.user
                newp.date = date
                newp.parent = newt
                newp.save()
                url = ''.join(('/agora/', str(cat_id), '/', str(newt.id), '/'))
                return redirect(url, request)
        else:
            tform = ThreadForm(prefix="thd")
            pform = PostForm(prefix="pst")
        return render(request, 'newthread.html', locals())
Exemple #19
0
def reply_topic(request, category_slug, topic_slug):
    topic = get_object_or_404(Topic,
                              category__slug=category_slug,
                              slug=topic_slug)
    if request.method == 'POST':
        form = PostForm(request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            post.topic = topic
            post.updated_by = request.user
            post.save()

            topic.last_updated = timezone.now()
            topic.save()

            topic_url = reverse('posts_of_topic',
                                kwargs={
                                    'category_slug': category_slug,
                                    'topic_slug': topic_slug
                                })
            topic_post_url = '{url}?page={page}#{id}'.format(
                url=topic_url, id=post.pk, page=topic.get_page_count())

            return redirect(topic_post_url)
    else:
        form = PostForm()
    return render(request, 'forum/reply_topic.html', {
        'topic': topic,
        'form': form
    })
Exemple #20
0
def post_reply(request, topic_id):
    form = PostForm()
    topic = Topic.objects.get(pk=topic_id)
    user = request.user

    if topic.closed:
        return render(request, 'personal/basic.html',
                      {'content': ['This topic is closed.']})

    if topic.forum.closed and not user.has_perm('forum.can_post_lock_forum'):
        return render(request, 'personal/basic.html',
                      {'content': ['This forum is locked.']})

    if request.method == 'POST':
        form = PostForm(request.POST)

        if form.is_valid():

            post = Post()
            post.topic = topic
            post.title = 'RE: ' + topic.title
            post.body = bleach_clean(form.cleaned_data['body'])
            post.creator = request.user
            post.user_ip = get_client_ip(request)

            post.save()

            return HttpResponseRedirect(
                reverse('topic-detail', args=(
                    topic.id,
                    topic.slug,
                )))

    return render_to_response('forum/reply.html', {
        'form': form,
        'topic': topic,
        'forum': topic.forum,
        'editing': False,
    },
                              context_instance=RequestContext(request))
Exemple #21
0
def reply(request, pk):
    "View that handles POST request for a reply or renders the form for a reply"
    error = ""
    if request.method == "POST":
        p = request.POST
        if p["body_markdown"]:
            thread = Thread.objects.get(pk=pk)
            post = Post()
            form = PostForm(p, instance=post)
            post = form.save(commit=False)
            post.thread, post.creator = thread, request.user
            post.save()

            return HttpResponseRedirect(reverse("forum.views.thread", args=[pk]) + "?page=last")
        else:
            error = "Please enter a Reply\n"

    thread = Thread.objects.get(pk=pk)
    post_form = PostForm()
    return render_to_response(
        "forum/reply.html", add_csrf(request, thread=thread, post_form=post_form, error=error, pk=pk)
    )
Exemple #22
0
def post_reply(request, topic_id):
    form = PostForm()
    topic = Topic.objects.get(pk=topic_id)
    
    if request.method == 'POST':
        form = PostForm(request.POST)

        if form.is_valid():

            post = Post()
            post.topic = topic
            post.body = form.cleaned_data['body']
            post.creator = request.user
            post.user_ip = request.META['REMOTE_ADDR']

            post.save()

            return HttpResponseRedirect(reverse('forum:topic-detail', args=(topic.id, )))

    context = get_base_context()
    context.update({'form': form, 'topic': topic})
    return render(request, 'forum/reply.html', context)
Exemple #23
0
def post_reply_edit(request, post_id):
    post = Post.objects.get(pk=post_id)
    topic = post.topic
    user = request.user
    form = PostForm(instance=post)

    if not user.id == post.creator.id:
        return render(request, 'personal/basic.html',
                      {'content': ['You do not own this post.']})

    if topic.closed:
        return render(request, 'personal/basic.html',
                      {'content': ['This topic is closed.']})

    if topic.forum.closed and not user.has_perm('forum.can_post_lock_forum'):
        return render(request, 'personal/basic.html',
                      {'content': ['This forum is locked.']})

    if request.method == 'POST':
        form = PostForm(request.POST, instance=post)

        if form.is_valid():

            post.body = bleach_clean(form.cleaned_data['body'])
            post.save()

            return HttpResponseRedirect(
                reverse('topic-detail', args=(
                    topic.id,
                    topic.slug,
                )))

    return render_to_response('forum/reply.html', {
        'form': form,
        'topic': topic,
        'forum': topic.forum,
        'editing': True,
    },
                              context_instance=RequestContext(request))
Exemple #24
0
def topic_details(request, id, template="topic/details.html"):
    """View for a forum topic.
    Autogenerated initially."""
    d = {}
    d["form"] = PostForm()
    if request.method == "POST":
        form = PostForm(request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            post.topic_id = id
            post.created_by_id = 1
            post.save()
        #             return JsonResponse(data={'id': item.id, 'name': str(item), 'form': PostForm().as_p(), 'token': get_token(request)})
        else:
            d["form"] = form
    #             return JsonResponse(data={'form': d['form'].as_p(), 'token': get_token(request)}, success=False)
    d["topic"] = Topic.objects.get(pk=id)
    posts = Post.objects.filter(topic=id)
    d["pairs"] = []
    for i in posts:
        d["pairs"].append([i, User.objects.get(id=i.created_by_id).username])
    return render(request, template, d)
Exemple #25
0
def reply(request, pk):
    context = RequestContext(request)
    context_dict = {'pk': pk}

    if request.method == "POST":
        form = PostForm(request.POST)

        if form.is_valid():

            thread = Thread.objects.get(pk=pk)
            subject = form.cleaned_data['subject']
            body = form.cleaned_data['body']
            Post.objects.create(thread=thread,
                                subject=subject,
                                body=body,
                                creator=request.user)

            return HttpResponseRedirect(
                reverse("forum.views.postlist", args=[pk]))
        else:
            print form.errors
    else:
        return render_to_response('forum/reply.html', context_dict, context)
Exemple #26
0
def new_thread(request):
    if request.method == "POST":
        thread_form = ThreadForm(request.POST)
        post_form = PostForm(request.POST)

        if thread_form.is_valid() and post_form.is_valid():

            thread = thread_form.save()
            post = post_form.save(False)

            post.thread = thread
            post.save()
    #   else:
    #     thread_form = ThreadForm()
    #     post_form = PostForm()
    #
    #
    # args = {}
    # args.update(csrf(request))
    # args['thread_form'] = thread_form
    # args['post_form'] = post_form

    return render(request, 'index.html', locals())
Exemple #27
0
def new_post(request, pk):
    context = RequestContext(request)
    context_dict = {'pk':pk}
    context_dict['action'] = 'new_thread'
    forum = Forum.objects.get(pk=pk)
    context_dict['forum_title'] = forum.title
    
    if request.method == "POST":
        form = PostForm(request.POST)
        
        if form.is_valid():
            subject = form.cleaned_data['subject']
            body = form.cleaned_data['body']
            thread = Thread.objects.create(forum=forum, title=subject, creator=request.user)
            Post.objects.create(thread=thread, subject=subject, body=body, creator=request.user)
            
            #return HttpResponse('Your Thread has been created')
            return HttpResponseRedirect(reverse("forum.views.threadlist", args=[pk]))
        else:
            print form.errors
            
    else:
        return render_to_response('forum/newpost.html', context_dict, context)
Exemple #28
0
def post_create(request, topic_id, slug=None):
    topic = get_object_or_404(Topic, id=topic_id, is_closed=False)
    is_xhr = bool(request.REQUEST.get('xhr'))
    post = Post(topic=topic, author=request.forum_user)
    if request.method == 'POST':
        form = PostForm(request.POST, instance=post)
        if form.is_valid():
            post = form.save()

            # update counters
            topic.post_count = topic.post_set.all().count()
            topic.updated = post.created
            topic.save()
            for category in topic.categories.all():
                category.topic_count = category.topic_set.all().count()
                category.post_count = Post.objects\
                        .filter(topic__in=category.topic_set.all()).count()
                category.save()

            if is_xhr:
                return {
                    'status': 'ok',
                    'saved': True,
                    'url': post.get_absolute_url()
                }
            return _redirect_next(request, post)
        if is_xhr:
            return {
                'status': 'ok',
                'saved': False,
                'errors': form.errors(),
            }
    else:
        form = PostForm()

    ctx = {'post_form': form, 'topic': topic}
    return render(request, 'forum/post/create.html', ctx)
Exemple #29
0
class ForumThreadPage(RoutablePageMixin, Page):
    parent_page_types = ['ForumPage']
    subpage_types = []
    slug = 'threads'

    form = PostForm()
    thread = None

    @route(r'^$')
    def thread_list_view(self, request):
        return ForumPage().serve(request)

    @route(r'^(\d+)/$')
    def thread_view(self, request, thread_pk=None):
        try:
            self.thread = Thread.objects.get(pk=thread_pk)
        except Thread.DoesNotExist:
            messages.error(request, 'Thread deleted or never existed')
            return ForumPage().serve(request)

        self.form = PostForm(request.POST or None)

        if request.method == 'POST' and self.form.is_valid():
            try:
                data = self.form.cleaned_data
                post = Post(
                    content=data['content'],
                    author=request.user,
                    thread=self.thread
                )
                post.save()
                messages.success(request, 'Your post has been created')
                self.form = PostForm(None)
            except:
                messages.error(request, 'An error occurred during post creation. Please try again later')

        return super().serve(request)
Exemple #30
0
    def thread_view(self, request, thread_pk=None):
        try:
            self.thread = Thread.objects.get(pk=thread_pk)
        except Thread.DoesNotExist:
            messages.error(request, 'Thread deleted or never existed')
            return ForumPage().serve(request)

        self.form = PostForm(request.POST or None)

        if request.method == 'POST' and self.form.is_valid():
            try:
                data = self.form.cleaned_data
                post = Post(
                    content=data['content'],
                    author=request.user,
                    thread=self.thread
                )
                post.save()
                messages.success(request, 'Your post has been created')
                self.form = PostForm(None)
            except:
                messages.error(request, 'An error occurred during post creation. Please try again later')

        return super().serve(request)
Exemple #31
0
def post_reply(request, topic_id):
    form = PostForm()
    topic = Topic.objects.get(pk=topic_id)

    if request.method == 'POST':
        form = PostForm(request.POST)

        if form.is_valid():

            post = Post()
            post.topic = topic
            post.title = form.cleaned_data['title']
            post.body = form.cleaned_data['body']
            post.creator = request.user
            post.user_ip = request.META['REMOTE_ADDR']

            post.save()

            return HttpResponseRedirect(reverse('topic-detail', args=(topic.id, )))

    return render_to_response('django_simple_forum/reply.html', {
            'form': form,
            'topic': topic,
        }, context_instance=RequestContext(request))
Exemple #32
0
def create_post(request):
    if request.method == "POST":
        form = PostForm(request.POST, request.FILES)
        if form.is_valid():
            p = form.save(commit=False)
            p.user = request.user
            p.save()
            return redirect('/forum/')
    else:
        form = PostForm()
        args = {'form': form}
        return render(request, 'forum/create.html', args)
Exemple #33
0
def write_post(request):
    if not request.user.is_authenticated:
        return redirect('home')
    if request.method == "POST":
        title = request.POST.get("title")
        content = request.POST.get("content")
        author = request.user
        new_post = Post(author=author,
                        title=title,
                        content=content,
                        created=datetime.datetime.now())
        new_post.save()
        return redirect('forum:post_successful')
    else:
        context = {"current_page": "write_post"}
        context['user'] = request.user
        context["form"] = PostForm()
        return render(request, "write_post.html", context)
Exemple #34
0
def post_list(request, template='post/list.html'):
    d = {}
    d['form'] = PostForm()
    if request.method == 'POST':
        form = PostForm(request.POST)
        if form.is_valid():
            item = form.save()
            return JsonResponse(data={'id': item.id, 'name': str(item), 'form': PostForm().as_p(), 'token': get_token(request)})
        else:
            d['form'] = form
            return JsonResponse(data={'form': d['form'].as_p(), 'token': get_token(request)}, success=False)
    d['post_list'] = Post.objects.all()
    return render(request, template, d)
Exemple #35
0
    def post(self, request, *args, **kwargs):

        if request.method == 'POST':
            #if this is a POST request in class-based views
            form = self.form_class(
                request.POST,
                request.FILES)  #create form instance and populate with data

            if form.is_valid():
                post = form.save(
                    commit=False
                )  #commit False means do not save post yet as we need to add post author & created_date.
                post.author = request.user
                post.created_date = timezone.now()
                post.save()
                return redirect('forum:post_list')
        else:
            form = PostForm()
        return render(request, self.template_name, {'form': form})
Exemple #36
0
def post_details(request, id, template='post/details.html'):
    d = {}
    item = get_object_or_404(Post, pk=id)
    d['form'] = PostForm(instance=item)
    if request.method == 'POST':
        form = PostForm(request.POST, instance=item)
        if form.is_valid():
            item = form.save()
            return JsonResponse(data={'form': PostForm(instance=item).as_p(), 'token': get_token(request)})
        else:
            d['form'] = form
            return JsonResponse(data={'form': d['form'].as_p(), 'token': get_token(request)}, success=False)
    d['post'] = Post.objects.get(pk=id)
    return render(request, template, d)
Exemple #37
0
def edit_exercise_view(request, pk):
    ex = get_object_or_404(Exercise, pk=pk)
    form = PostForm(instance=ex)

    if request.method == 'POST':
        form = PostForm(request.POST, instance=ex)
        if form.is_valid():
            form.save()
            return HttpResponse('Todo Bien')
        else:
            return render(request,
                          'training/ex_post.html',
                          context={
                              'form': form,
                              'errors': form.errors
                          })
    else:
        return render(request, 'training/ex_post.html', context={'form': form})
Exemple #38
0
def edit_New_view(request, pk):
    new = get_object_or_404(Notice, pk=pk)
    form = PostForm(instance=new)

    if request.method == 'POST':
        form = PostForm(request.POST, instance=new)
        if form.is_valid():
            form.save()
            return HttpResponse('Todo Bien')
        else:
            return render(request,
                          'news/create_notice.html',
                          context={
                              'form': form,
                              'errors': form.errors
                          })
    else:
        return render(request,
                      'news/create_notice.html',
                      context={'form': form})
Exemple #39
0
def edit_post_view(request, pk):
    post = get_object_or_404(Post, pk=pk)
    form = PostForm(instance=post)

    if request.method == 'POST':
        form = PostForm(request.POST, instance=post)
        if form.is_valid():
            form.save()
            return HttpResponse('Todo Bien')
        else:
            return render(request,
                          'forum/create_post.html',
                          context={
                              'form': form,
                              'errors': form.errors
                          })
    else:
        return render(request,
                      'forum/create_post.html',
                      context={'form': form})
Exemple #40
0
def post_dir(request, thread_id):
    thread_info = Thread.objects.get(pk=thread_id)
    post_list = Post.objects.filter( thread = thread_id )   
    if request.method == 'POST': 
        form = PostForm(request.POST) 
        if form.is_valid():
            thread = Post( thread = thread_info )
            form = PostForm(request.POST, instance = thread )
            form.save()
            return HttpResponseRedirect(reverse('forum.views.post_dir', args=(thread_id,)))
    else:
        form = PostForm()   
    return render_to_response("post.html", 
                              {'post_list' : post_list, 
                               'thread_info' : thread_info, 
                               'form': form,},    
                              context_instance=RequestContext(request) )
Exemple #41
0
def edit_post(request, thread_id, post_id):
    thread = get_object_or_404(Thread, pk=thread_id)
    post = get_object_or_404(Post, pk=post_id)

    if request.method == "POST":
        form = PostForm(request.POST, instance=post)
        if form.is_valid():
            form.save()
            messages.success(request, "You have updated your post")

            return redirect(reverse('forum_thread', args={thread.pk}))
    else:
        form = PostForm(instance=post)

    args = {
        'form': form,
        'form_action': reverse('forum_edit_post', kwargs={"thread_id": thread.id, "post_id": post.id}),
        'button_text': 'Update post'
    }
    args.update(csrf(request))

    return render(request, 'forum/post_form.html', args)
Exemple #42
0
def respond_post(request, postid):
    if not request.user.is_authenticated:
        return redirect('home')
    if request.method == "POST":
        title = request.POST.get("title")
        content = request.POST.get("content")
        author = request.user
        parent = Post.objects.get(id=postid)
        new_post = Post(author=author,
                        title=title,
                        content=content,
                        created=datetime.datetime.now(),
                        parent=parent,
                        parentid=postid,
                        parenttitle=parent.title,
                        parentauthor=parent.author)
        new_post.save()
        return redirect('forum:post_successful')
    else:
        context = {}
        context['user'] = request.user
        context['form'] = PostForm()
        context['parent'] = Post.objects.get(id=postid)
        return render(request, "respond_post.html", context)
Exemple #43
0
def agora(request, cat_id=None, thd_id=None):
    if not request.user.is_authenticated():
        return redirect(reverse(main.views.index))
    else:
        if cat_id:
            try:
                cat = Category.objects.get(pk=cat_id)
            except Category.DoesNotExist:
                return redirect(reverse(agora))
            name = cat.name
            parent = cat.parent_id
        cat_list = Category.objects.filter(parent=cat_id)
        if thd_id:
            msg_list = Post.objects.filter(parent=thd_id)
            try:
                thd = Thread.objects.get(pk=thd_id)
            except Thread.DoesNotExist:
                url = ''.join(('/agora/', str(cat_id), '/'))
                return redirect(url, request)
            tname = thd.name
            if request.method == 'POST':
                form = PostForm(request.POST)
                if form.is_valid():
                    date = datetime.datetime.now()
                    new = form.save(commit=False)
                    new.author = request.user
                    new.date = date
                    new.parent = thd
                    new.save()
                    thd.date = date
                    thd.save()
            else:
                form = PostForm()
        else:
            thd_list = Thread.objects.filter(parent=cat_id)
        return render(request, 'agora.html', locals())
Exemple #44
0
def new_post(request, topic_id, post_id=''):
    topic = get_object_or_404(Topic, id=topic_id)
    if post_id != '':
        post = get_object_or_404(Post, id=post_id)
    else:
        post = None
    posts = topic.post_set.order_by('date_added')
    if request.method != 'POST':
        form = PostForm()
    else:
        form = PostForm(request.POST)
        if form.is_valid():
            new_post = form.save(commit=False)
            new_post.topic = topic
            new_post.father = post
            new_post.author = request.user
            new_post.save()
            topic = Topic.objects.get(id=topic_id)
            topic.last_update = timezone.now()
            topic.last_poster = new_post.author
            topic.save()
            return redirect('../')

    return render(request, 'forum/new_post.html', {'topic': topic, 'posts': posts, 'form': form, 'post': post})
Exemple #45
0
def post_reply(request, topic_id):
    if 'userid' in request.session:
        topic = Topic.objects.get(pk=topic_id)
        form = PostForm
        status = 'student'
        stud_obj = student.objects.get(pk=request.session['userid'])
        username = stud_obj.uname

        if request.method == 'POST':
            form = PostForm(request.POST)
            if form.is_valid():
                post = Post()
                post.topic = topic
                post.title = request.POST.get('title')
                post.body = request.POST.get('body')
                obj = student.objects.get(pk=request.session['userid'])
                post.creator = obj
                post.user_ip = request.META['REMOTE_ADDR']

                post.save()

                return HttpResponseRedirect(
                    reverse('topic-detail', args=(topic.id, )))

        return render(
            request,
            'forum/reply.html',
            {
                'form': form,
                'topic': topic,
                'username': username,
                'status': status
            },
        )
    elif 'instructorid' in request.session:
        topic = Topic.objects.get(pk=topic_id)
        form = PostForm
        status = 'instructor'
        inst_obj = instructor.objects.get(pk=request.session['instructorid'])
        username = inst_obj.uname

        if request.method == 'POST':
            form = PostForm(request.POST)

            if form.is_valid():
                post = Post()
                post.topic = topic
                post.title = request.POST.get('title')
                post.body = request.POST.get('body')
                obj = instructor.objects.get(
                    pk=request.session['instructorid'])
                post.by_instructor = obj
                post.user_ip = request.META['REMOTE_ADDR']

                post.save()

                return HttpResponseRedirect(
                    reverse('topic-detail', args=(topic.id, )))

        return render(
            request,
            'forum/reply.html',
            {
                'form': form,
                'topic': topic,
                'username': username,
                'status': status
            },
        )
    else:
        return HttpResponseRedirect('/joinus/login/')
Exemple #46
0
 def test_post_form_field_labels(self):
     # Test field labels.
     form = PostForm()
     self.assertEqual(form.fields['title'].label, 'Title')
     self.assertEqual(form.fields['text'].label, 'Text')
    def get(self, request, *args, **kwargs):
        form = PostForm(request.POST or None)

        return render(request, 'forum/post_form.html', {
            'form': form,
        })