Esempio n. 1
0
def add(request):
    if request.method == 'POST':
        form = TopicForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect("/")
    else:
        form = TopicForm()
        return render_to_response('form.html',{'form': form}, context_instance=RequestContext(request))
Esempio n. 2
0
def new_topic(request):
    """Определяет новую тему."""
    if request.method != 'POST':
        # Данные не отправлялись; создается пустая форма.
        form = TopicForm()
    else:
        # Отправлены данные POST; обработать данные.
        form = TopicForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('learning_logs:topics'))
    context = {'form': form}
    return render(request, 'learning_logs/new_topic.html', context)
Esempio n. 3
0
def newtopic(request):
    user = request.user
    form = None
    if request.method == 'POST':
        form = TopicForm(request.POST)
        if form.is_valid() and form.save():
            return redirect('/topics/')
        elif form.is_valid():
            form.non_field_errors = "Failed to save"
        else:
            form.non_field_errors = 'form is not valid'
    else:
        form = TopicForm()
    return render(request, 'forum/form.html', {"form": form})
Esempio n. 4
0
def newtopic(request):
    user = request.user
    form = None
    if request.method == 'POST':
        form = TopicForm(request.POST)
        if form.is_valid() and form.save():
            return redirect('/topics/')
        elif form.is_valid():
            form.non_field_errors = "Failed to save"
        else:
            form.non_field_errors = 'form is not valid'
    else:
        form = TopicForm()
    return render(request, 'forum/form.html', {"form": form})
Esempio n. 5
0
def add_topic(request):
    '''Add a new topic'''
    tform = None
    if request.method == 'POST':
        tform = TopicForm(request.POST)
        if tform.is_valid():
            t = tform.save()
            'If topic was added successfully, send them to that topic page'
            return goto_topic(t, 'Now you can start adding options')
    
    if not tform:
        tform = TopicForm()

    return render_to_response('dovote/add_topic.html',
                              dict(tform=tform),
                              context_instance=RequestContext(request))
Esempio n. 6
0
 def post(self):
     node_id = force_int(self.get_argument('node_id', 0), 0)
     node = Node.get(id=node_id)
     user = self.current_user
     form = TopicForm(self.request.arguments)
     if form.validate():
         topic = form.save(user=user)
         topic.put_notifier()
         result = {'status': 'success', 'message': '主题创建成功',
                   'topic_url': topic.url}
         if self.is_ajax:
             return self.write(result)
         self.flash_message(**result)
         return self.redirect(topic.url)
     if self.is_ajax:
         return self.write(form.result)
     return self.render("topic/create.html", form=form, node=node)
Esempio n. 7
0
 def post(self, topic_id):
     topic = Topic.get(id=topic_id)
     if not topic or (topic.author != self.current_user and not self.current_user.is_admin):
         return self.redirect_next_url()
     user = self.current_user
     form = TopicForm(self.request.arguments)
     if form.validate():
         topic = form.save(user=user, topic=topic)
         topic.put_notifier()
         result = {'status': 'success', 'message': '主题修改成功',
                   'topic_url': topic.url}
         if self.is_ajax:
             return self.write(result)
         self.flash_message(**result)
         return self.redirect(topic.url)
     if self.is_ajax:
         return self.write(form.result)
     return self.render("topic/create.html", form=form, node=topic.node)
Esempio n. 8
0
 def post(self):
     if not self.has_permission:
         return
     node_id = force_int(self.get_argument('node_id', 0), 0)
     node = Node.get(id=node_id)
     user = self.current_user
     form = TopicForm(self.request.arguments)
     if form.validate():
         topic = form.save(user=user)
         result = {'status': 'success', 'message': '主题创建成功',
                 'topic_url': topic.url}
         if self.is_ajax:
             return self.write(result)
         self.flash_message(result)
         return self.redirect(topic.url)
     if self.is_ajax:
         return self.write(form.result)
     return self.render("topic/create.html", form=form, node=node)
Esempio n. 9
0
 def post(self, topic_id):
     if not self.has_permission:
         return
     topic = Topic.get(id=topic_id)
     if not topic:
         return self.redirect_next_url()
     user = self.current_user
     form = TopicForm(self.request.arguments)
     if form.validate():
         topic = form.save(user=user, topic=topic)
         result = {'status': 'success', 'message': '主题修改成功',
                 'topic_url': topic.url}
         if self.is_ajax:
             return self.write(result)
         self.flash_message(result)
         return self.redirect(topic.url)
     if self.is_ajax:
         return self.write(form.result)
     return self.render("topic/create.html", form=form, node=topic.node)
Esempio n. 10
0
 def post(self, topic_id):
     if not self.has_permission:
         return
     topic = Topic.get(id=topic_id)
     if not topic or (topic.author != self.current_user and not self.current_user.is_admin):
         return self.redirect_next_url()
     user = self.current_user
     form = TopicForm(self.request.arguments)
     if form.validate():
         topic = form.save(user=user, topic=topic)
         result = {'status': 'success', 'message': '主题修改成功',
                 'topic_url': topic.url}
         if self.is_ajax:
             return self.write(result)
         self.flash_message(result)
         return self.redirect(topic.url)
     if self.is_ajax:
         return self.write(form.result)
     return self.render("topic/create.html", form=form, node=topic.node)
Esempio n. 11
0
def add_topic(request, event_id):
    e = Event.objects.get(id=event_id)

    if request.method == 'POST':
        f = TopicForm(request.POST)
        if f.is_valid():
            t = f.save(commit=false)#not push yet.
            #more values... to event yes.
            t.event = e
            t.save()
            return HttpResponseRedirect('/event/get/%s' % event_id)
    else:
        f=TopicForm()
    args ={}
    args.update(csrf(request))

    args['article']=a
    args['form']=f

    return render_to_response('add_topic.html',args)
Esempio n. 12
0
def create_topic(request):
    """ Create a topic. """

    if request.method == "POST":
        form = TopicForm(request.POST)
        if form.is_valid():
            t = form.save(commit=False)

            if not request.user.is_authenticated():
                # Record what they posted and then send them to login
                request.session['topic'] = form.cleaned_data
                request.session['topic_include_image'] = request.POST.get("include_image")
                request.session['topic_image'] = request.POST.get("image")
                request.session['login_prefix'] = render_to_string(
                    "login_new_topic.html",
                    form.cleaned_data,
                    context_instance=RequestContext(request))
                return redirect(reverse("account_login") + "?next=/create_topic")

            t.created_by = request.user

            if request.POST.get("include_image"):
                t.description = "![](" + request.POST['image'] + ")\n\n" + t.description
                t.thumbnail_url = request.POST['image']
            t.save()
            messages.success(request, "Your topic has been created")
            return redirect("discussion", t.pk)
    elif 'topic' in request.session and request.user.is_authenticated():
        t = Topic(title=request.session['topic']['title'], description=request.session['topic']['description'], url=request.session['topic']['url'])
        t.created_by = request.user
        if request.session.get("topic_include_image"):
            t.description = "![](" + request.session['topic_image'] + ")\n\n" + t.description
            t.thumbnail_url = request.session['topic_image']
        t.save()
        messages.success(request, "Your topic has been created")
        del request.session['topic']
        return redirect("discussion", t.pk)
    messages.error(request, "There was a problem submitting this link.")
    return redirect("index")
Esempio n. 13
0
def new(request):
    if request.method == 'POST':
        topic_form = TopicForm(request.POST)
        post_form = PostForm(request.POST)

        if topic_form.is_valid() and post_form.is_valid():
            topic = topic_form.save()
            post = post_form.save(commit=False)
            post.topic = topic
            post.author = request.user
            post.save()
            return redirect('/forum/%d' % topic.id)
    else:
        topic_form = TopicForm()
        post_form = PostForm()

    return render_to_response('forum/new.html',
                              {
                                  'topic_form': topic_form,
                                  'post_form': post_form
                              },
                              context_instance=RequestContext(request))
Esempio n. 14
0
def create_topic(request, forum):
    forum = Forum.objects.select_related('Moderator').get(slug=forum)
    if request.method == "POST":
        topic_form      = TopicForm(request.POST, instance=Topic())
        message_form    = MessageForm(request.POST, instance=Message())
        if topic_form.is_valid():
            if message_form.is_valid():
                topic = topic_form.save(commit=False)
                topic.category    = forum.category
                topic.forum       = forum
                topic.user        = request.user
                topic.last_user   = request.user
                topic.save()
                message = message_form.save(commit=False)
                message.category    = forum.category
                message.forum       = forum
                message.topic       = topic
                message.user        = request.user
                message.save()
                topic.message = message
                topic.last_message = message
                topic.save()
                action.send(request.user, verb='created a topic', target=topic)
                return HttpResponseRedirect(reverse('djero.views.topic', kwargs={
                    'category'  : forum.category.slug,
                    'forum'     : forum.slug,
                    'topic'     : topic.slug,
                }))
        else:
            return HttpResponse(topic_form.errors)
    else:
        topic_form      = TopicForm()
        message_form    = MessageForm()
        return render(request, "forum/create_topic.html", {
            "forum"         : forum,
            "topic_form"    : topic_form,
            "message_form"  : message_form,
        })
Esempio n. 15
0
def forum_topics(request, slug):

    forum = get_object_or_404(Forum, slug=slug)

    if not request.user.has_perm("can_view_topics", forum):
        return HttpResponseForbidden()

    topics_qs = Topic.objects.filter(forum=forum)
    # пагинация сообщений в топике форума
    paginator = Paginator(topics_qs, 20)
    page_num = request.GET.get('page', '1')

    if page_num == 'last':
        page_num = paginator.num_pages
    try:
        page = paginator.page(int(page_num))
    except (InvalidPage, ValueError):
        raise Http404()

    #    topics = paginator.object_list
    if request.method == 'POST':

        if forum.closed:
            return HttpResponseForbidden()

        topic_form = TopicForm(request.POST, prefix='topic')
        article_form = ArticleForm(request.POST, prefix='article')

        if topic_form.is_valid() and article_form.is_valid():
            if not request.user.has_perm("can_create_topics", forum):
                return HttpResponseForbidden()

            topic = topic_form.save(commit=False)

            if request.user.has_perm('can_hide_topics', forum):
                topic.public = True
            else:
                topic.public = False

            topic.forum = forum
            topic.save()
            article = article_form.save(commit=False)

            article.public = True

            article.author = request.user
            article.topic = topic
            article.save()

            groups = get_groups_with_perms(forum, attach_perms=True)
            for group in groups:
                if u"can_create_topics" in groups[group]:
                    assign(u"can_add_articles", group, topic)
                #                    assign(u"can_view_articles", group, topic)
                if u"can_view_topics" in groups[group]:
                    assign(u"can_view_articles", group, topic)

            if request.user.has_perm('can_hide_topics', forum):
                return redirect('forum:frontend:articles',
                                slug=forum.slug,
                                id=topic.id)
            else:
                return redirect('forum:frontend:topics', slug=forum.slug)
    else:
        topic_form = TopicForm(prefix='topic')
        article_form = ArticleForm(prefix='article')
    return render(
        request,
        'forum/frontend/topics.html',
        {
            'forum': forum,
            #        'topics': topics,
            'topic_form': topic_form,
            'article_form': article_form,
            'page': page,
        })
Esempio n. 16
0
def forum_topics(request, slug):


    forum = get_object_or_404(Forum, slug=slug)



    if not request.user.has_perm("can_view_topics", forum):
        return HttpResponseForbidden()

    topics_qs = Topic.objects.filter(forum=forum)
    # пагинация сообщений в топике форума
    paginator = Paginator(topics_qs, 20)
    page_num = request.GET.get('page', '1')

    if page_num == 'last':
        page_num = paginator.num_pages
    try:
        page = paginator.page(int(page_num))
    except (InvalidPage, ValueError):
        raise Http404()

    #    topics = paginator.object_list
    if request.method == 'POST':

        if forum.closed:
            return HttpResponseForbidden()

        topic_form = TopicForm(request.POST, prefix='topic')
        article_form = ArticleForm(request.POST, prefix='article')

        if topic_form.is_valid() and article_form.is_valid():
            if not request.user.has_perm("can_create_topics", forum):
                return HttpResponseForbidden()

            topic = topic_form.save(commit=False)

            if request.user.has_perm('can_hide_topics', forum):
                topic.public = True
            else:
                topic.public = False

            topic.forum = forum
            topic.save()
            article = article_form.save(commit=False)

            article.public = True

            article.author = request.user
            article.topic = topic
            article.save()

            groups =  get_groups_with_perms(forum, attach_perms=True)
            for group in groups:
                if  u"can_create_topics" in  groups[group]:
                    assign(u"can_add_articles", group, topic)
                #                    assign(u"can_view_articles", group, topic)
                if  u"can_view_topics" in  groups[group]:
                    assign(u"can_view_articles", group, topic)

            if request.user.has_perm('can_hide_topics', forum):
                return redirect('forum:frontend:articles', slug=forum.slug, id=topic.id)
            else:
                return redirect('forum:frontend:topics', slug=forum.slug)
    else:
        topic_form = TopicForm(prefix='topic')
        article_form = ArticleForm(prefix='article')
    return render(request, 'forum/frontend/topics.html', {
        'forum': forum,
        #        'topics': topics,
        'topic_form': topic_form,
        'article_form': article_form,
        'page': page,
        })