当前位置: 首页>>代码示例>>Python>>正文


Python forms.AddPostForm类代码示例

本文整理汇总了Python中djangobb_forum.forms.AddPostForm的典型用法代码示例。如果您正苦于以下问题:Python AddPostForm类的具体用法?Python AddPostForm怎么用?Python AddPostForm使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了AddPostForm类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: mobile_reply

def mobile_reply(request, post_id):
    post = get_object_or_404(Post, id=post_id)
    if not request.user.is_authenticated or post.topic.closed and not (request.user.is_superuser or request.user in forum.moderators.all()):
        raise Http404
    ip = get_client_ip(request)
    post_form_kwargs = {
        "topic":post.topic,
        "user":request.user,
        "ip":ip,
        'is_ip_banned': request.is_ip_banned,
    }
    if AddPostForm.FORM_NAME in request.POST:
        reply_form = AddPostForm(request.POST, request.FILES, **post_form_kwargs)
        if reply_form.is_valid():
            post = reply_form.save()
            messages.success(request, _("Reply saved."))
            return HttpResponseRedirect(post.get_mobile_url())
    else:
        reply_form = AddPostForm(
            initial={
                'markup': request.user.forum_profile.markup,
                'subscribe': False,
                'body':'[quote=' + post.user.username + ']' + post.body + '[/quote]\n',
            },
            **post_form_kwargs
        )
    return render(request, 'djangobb_forum/mobile/reply.html', {
        'form': reply_form,
        'post': post
        })
开发者ID:jji7skyline,项目名称:s2forums,代码行数:30,代码来源:views.py

示例2: add_topic

def add_topic(request, forum_id, full=True):
    """
    create a new topic, with or without poll
    """
    forum = get_object_or_404(Forum, pk=forum_id)
    if not forum.category.has_access(request.user) or (forum.moderator_only and not (request.user.is_superuser or request.user in forum.moderators.all())):
        return HttpResponseForbidden()

    ip = request.META.get('REMOTE_ADDR', None)
    post_form_kwargs = {"forum":forum, "user":request.user, "ip":ip, }

    if request.method == 'POST':
        form = AddPostForm(request.POST, request.FILES, **post_form_kwargs)
        if form.is_valid():
            all_valid = True
        else:
            all_valid = False

        poll_form = PollForm(request.POST)
        create_poll = poll_form.create_poll()
        if not create_poll:
            # All poll fields are empty: User didn't want to create a poll
            # Don't run validation and remove all form error messages
            poll_form = PollForm() # create clean form without form errors
        elif not poll_form.is_valid():
            all_valid = False

        if all_valid:
            post = form.save()
            if create_poll:
                poll_form.save(post)
                messages.success(request, _("Topic with poll saved."))
            else:
                messages.success(request, _("Topic saved."))
            return HttpResponseRedirect(post.get_absolute_url() if full else post.get_mobile_url())
    else:
        form = AddPostForm(
            initial={
                'markup': request.user.forum_profile.markup,
                'subscribe': request.user.forum_profile.auto_subscribe,
            },
            **post_form_kwargs
        )

    # if creating a new topic and allowed
    create_poll_form = forum_id and forum_settings.ALLOW_POLLS

    poll_form = PollForm()

    context = {
        'forum': forum,
        'create_poll_form': create_poll_form,
        'poll_form': poll_form,
        'form': form,
        'form_url': request.path,
        'back_url': forum.get_absolute_url(),
    }
    return render(request, 'djangobb_forum/add_topic.html' if full else 'djangobb_forum/mobile/add_topic.html', context)
开发者ID:TRocket,项目名称:DjangoBB,代码行数:58,代码来源:views.py

示例3: add_topic

def add_topic(request, forum_id):
    """
    create a new topic, with or without poll
    """
    forum = get_object_or_404(Forum, pk=forum_id)
    if not forum.category.has_access(request.user):
        raise PermissionDenied

    ip = request.META.get('REMOTE_ADDR', None)
    post_form_kwargs = {"forum":forum, "user":request.user, "ip":ip, }

    poll_form = None
    if request.method == 'POST':
        form = AddPostForm(request.POST, request.FILES, **post_form_kwargs)
        if form.is_valid():
            all_valid = True
        else:
            all_valid = False

        if forum_settings.ENABLE_POLLS:
            poll_form = PollForm(request.POST)
            if not poll_form.has_data():
                # All poll fields are empty: User didn't want to create a poll
                # Don't run validation and remove all form error messages
                poll_form = PollForm() # create clean form without form errors
            elif not poll_form.is_valid():
                all_valid = False

        if all_valid:
            post = form.save()
            if poll_form and poll_form.has_data():
                poll_form.save(post)
                messages.success(request, _("Topic with poll saved."))
            else:
                messages.success(request, _("Topic saved."))
            return HttpResponseRedirect(post.get_absolute_url())
    else:
        form = AddPostForm(
            initial={
                'markup': request.user.forum_profile.markup,
                'subscribe': request.user.forum_profile.auto_subscribe,
            },
            **post_form_kwargs
        )
        if forum_settings.ENABLE_POLLS and forum_id: # Create a new topic
            poll_form = PollForm()

    context = {
        'forum': forum,
        'create_poll_form': poll_form,
        'form': form,
        'form_url': request.path,
        'back_url': forum.get_absolute_url(),
    }
    return render(request, 'djangobb_forum/add_topic.html', context)
开发者ID:Azelphur,项目名称:DjangoBB,代码行数:55,代码来源:views.py

示例4: add_topic

def add_topic(request, forum_id):
    """
    create a new topic, with or without poll
    """
    forum = get_object_or_404(Forum, pk=forum_id)
    if not forum.category.has_access(request.user):
        return HttpResponseForbidden()

    ip = request.META.get("REMOTE_ADDR", None)
    post_form_kwargs = {"forum": forum, "user": request.user, "ip": ip}

    if request.method == "POST":
        form = AddPostForm(request.POST, request.FILES, **post_form_kwargs)
        if form.is_valid():
            all_valid = True
        else:
            all_valid = False

        poll_form = PollForm(request.POST)
        if not poll_form.has_data():
            # All poll fields are empty: User didn't want to create a poll
            # Don't run validation and remove all form error messages
            poll_form = PollForm()  # create clean form without form errors
        elif not poll_form.is_valid():
            all_valid = False

        if all_valid:
            post = form.save()
            if poll_form.has_data():
                poll_form.save(post)
                messages.success(request, _("Topic with poll saved."))
            else:
                messages.success(request, _("Topic saved."))
            return HttpResponseRedirect(post.get_absolute_url())
    else:
        form = AddPostForm(
            initial={
                "markup": request.user.forum_profile.markup,
                "subscribe": request.user.forum_profile.auto_subscribe,
            },
            **post_form_kwargs
        )
        if forum_id:  # Create a new topic
            poll_form = PollForm()

    context = {
        "forum": forum,
        "create_poll_form": poll_form,
        "form": form,
        "form_url": request.path,
        "back_url": forum.get_absolute_url(),
    }
    return render(request, "djangobb_forum/add_topic.html", context)
开发者ID:tmgames-nl,项目名称:DjangoBB,代码行数:53,代码来源:views.py

示例5: show_topic

def show_topic(request, topic_id, full=True):
    """
    * Display a topic
    * save a reply
    * save a poll vote

    TODO: Add reply in lofi mode
    """
    post_request = request.method == "POST"
    user_is_authenticated = request.user.is_authenticated()
    if post_request and not user_is_authenticated:
        # Info: only user that are logged in should get forms in the page.
        raise PermissionDenied

    topic = get_object_or_404(Topic.objects.select_related(), pk=topic_id)
    if not topic.forum.category.has_access(request.user):
        raise PermissionDenied
    Topic.objects.filter(pk=topic.id).update(views=F('views') + 1)

    last_post = topic.last_post

    if request.user.is_authenticated():
        topic.update_read(request.user)
    posts = topic.posts.all().select_related()

    moderator = request.user.is_superuser or request.user in topic.forum.moderators.all()
    if user_is_authenticated and request.user in topic.subscribers.all():
        subscribed = True
    else:
        subscribed = False

    # reply form
    reply_form = None
    form_url = None
    back_url = None
    if user_is_authenticated and not topic.closed:
        form_url = request.path + "#reply" # if form validation failed: browser should scroll down to reply form ;)
        back_url = request.path
        ip = request.META.get('REMOTE_ADDR', None)
        post_form_kwargs = {"topic":topic, "user":request.user, "ip":ip}
        if post_request and AddPostForm.FORM_NAME in request.POST:
            reply_form = AddPostForm(request.POST, request.FILES, **post_form_kwargs)
            if reply_form.is_valid():
                post = reply_form.save()
                messages.success(request, _("Your reply saved."))
                return HttpResponseRedirect(post.get_absolute_url())
        else:
            reply_form = AddPostForm(
                initial={
                    'markup': request.user.forum_profile.markup,
                    'subscribe': request.user.forum_profile.auto_subscribe,
                },
                **post_form_kwargs
            )

    # handle poll, if exists
    poll_form = None
    polls = topic.poll_set.all()
    if not polls:
        poll = None
    else:
        poll = polls[0]
        if user_is_authenticated: # Only logged in users can vote
            poll.deactivate_if_expired()
            has_voted = request.user in poll.users.all()
            if not post_request or not VotePollForm.FORM_NAME in request.POST:
                # It's not a POST request or: The reply form was send and not a poll vote
                if poll.active and not has_voted:
                    poll_form = VotePollForm(poll)
            else:
                if not poll.active:
                    messages.error(request, _("This poll is not active!"))
                    return HttpResponseRedirect(topic.get_absolute_url())
                elif has_voted:
                    messages.error(request, _("You have already vote to this poll in the past!"))
                    return HttpResponseRedirect(topic.get_absolute_url())

                poll_form = VotePollForm(poll, request.POST)
                if poll_form.is_valid():
                    ids = poll_form.cleaned_data["choice"]
                    queryset = poll.choices.filter(id__in=ids)
                    queryset.update(votes=F('votes') + 1)
                    poll.users.add(request.user) # save that this user has vote
                    messages.success(request, _("Your votes are saved."))
                    return HttpResponseRedirect(topic.get_absolute_url())

    highlight_word = request.GET.get('hl', '')
    if full:
        return render(request, 'djangobb_forum/topic.html', {'categories': Category.objects.all(),
                'topic': topic,
                'last_post': last_post,
                'form_url': form_url,
                'reply_form': reply_form,
                'back_url': back_url,
                'moderator': moderator,
                'subscribed': subscribed,
                'posts': posts,
                'highlight_word': highlight_word,
                'poll': poll,
                'poll_form': poll_form,
#.........这里部分代码省略.........
开发者ID:psi29a,项目名称:DjangoBB,代码行数:101,代码来源:views.py

示例6: show_topic

def show_topic(request, topic_id, full=True):
    """
    * Display a topic
    * save a reply
    * save a poll vote
    """
    post_request = request.method == "POST"
    user_is_authenticated = request.user.is_authenticated()
    if post_request and not user_is_authenticated:
        # Info: only user that are logged in should get forms in the page.
        return HttpResponseForbidden()

    topic = get_object_or_404(Topic.objects.select_related(), pk=topic_id)
    if not topic.forum.category.has_access(request.user):
        return HttpResponseForbidden()
    Topic.objects.filter(pk=topic.id).update(views=F('views') + 1)
    last_post = topic.last_post

    if request.user.is_authenticated():
        topic.update_read(request.user)
    # without specifying, following query wouldn't select related properly
    posts = topic.posts.select_related('user__userprofile',
        'user__forum_profile',
        'updated_by', 'user').prefetch_related('user__groups').all()
    edit_start = timezone.now() - timedelta(minutes=1)
    edit_end = timezone.now()
    editable = posts.filter(created__range=(edit_start, edit_end)).filter(user_id=request.user.id)
    can_edit = request.user.has_perm('djangobb_forum.change_post')
    try:
        page_url_parameter = int(request.GET.get('page') or 1)
    except:
        page_url_parameter = 1
    first_post_number = int(forum_settings.TOPIC_PAGE_SIZE) * (page_url_parameter - 1)
    can_close = can_close_topic(request.user, topic)

    moderator = request.user.is_superuser or request.user in topic.forum.moderators.all()
    if user_is_authenticated and request.user in topic.subscribers.all():
        subscribed = True
    else:
        subscribed = False

    # reply form
    reply_form = None
    form_url = None
    back_url = None
    if user_is_authenticated and (not topic.closed or moderator):
        form_url = request.path + '?' + request.META['QUERY_STRING'] + '#reply' # if form validation failed: browser should scroll down to reply form ;)
        back_url = request.path
        ip = get_client_ip(request)
        post_form_kwargs = {
            "topic":topic,
            "user":request.user,
            "ip":ip,
            'is_ip_banned': request.is_ip_banned,
        }
        if post_request and AddPostForm.FORM_NAME in request.POST:

            reply_form = AddPostForm(request.POST, request.FILES, **post_form_kwargs)
            if reply_form.is_valid():
                post = reply_form.save()
                messages.success(request, _("Reply saved."))
                return HttpResponseRedirect(post.get_absolute_url() if full else post.get_mobile_url())
        else:
            reply_form = AddPostForm(
                initial={
                    'markup': request.user.forum_profile.markup,
                    'subscribe': False,
                },
                **post_form_kwargs
            )

    group_titles = {}
    
    for post in posts:
        
        if post.user.is_superuser:
            group_titles[post.user] = "Scratch Team"
            
        else: 
            temp_names = [group.name for group in post.user.groups.all()]
            if "Forum Moderators" in temp_names:
                group_titles[post.user] = "Forum Moderator"
            elif "Scratchers" in temp_names:
                group_titles[post.user] = "Scratcher"
            elif "New Scratchers" in temp_names:
                group_titles[post.user] = "New to Scratch"
            else:
                group_titles[post.user] = "Ungrouped"
    
        
    # handle poll, if exists
    poll_form = None
    polls = topic.poll_set.all()
    if not polls:
        poll = None
    else:
        poll = polls[0]
        if user_is_authenticated: # Only logged in users can vote
            poll.auto_deactivate()
            has_voted = request.user in poll.users.all()
#.........这里部分代码省略.........
开发者ID:jji7skyline,项目名称:s2forums,代码行数:101,代码来源:views.py


注:本文中的djangobb_forum.forms.AddPostForm类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。