示例#1
0
def message_edit(request, slug, topic_id, message_id,
        template_name='groups/messages/message_form.html'):
    """
    Returns a group message edit form.

    Templates: ``groups/messages/message_form.html``
    Context:
        group
            Group object
        topic
            GroupTopic object
        message
            GroupMessage object
        form
            GroupMessageForm object
    """
    message = get_object_or_404(GroupMessage, pk=message_id, is_active=True)
    if request.method == 'POST':
        form = GroupMessageForm(request.POST, instance=message)
        if form.is_valid():
            form.save()
            return redirect(request, message.topic)
    else:
        form = GroupMessageForm(instance=message)
    return render(request, template_name, {
        'group': message.topic.group,
        'topic': message.topic,
        'message': message,
        'form': form,
    })
示例#2
0
文件: pages.py 项目: 2292amit/forum
def page_create(request, slug, template_name='groups/pages/page_form.html'):
    """
    Creates a group page.

    Templates: ``groups/pages/page_form.html``
    Context:
        group
            Group object
        form
            PageForm object
    """
    group = get_object_or_404(Group, slug=slug)
    form = GroupPageForm(initial={'group': group})

    if request.method == 'POST':
        form = GroupPageForm(request.POST)
        if form.is_valid():
            page = form.save(commit=False)
            page.group = group
            page.save()
            return redirect(request, page)

    return render(request, template_name, {
        'group': group,
        'form': form
    })
示例#3
0
def topic_edit(request, slug, topic_id,
        template_name='groups/topics/topic_form.html'):
    """
    Returns a group topic form page.

    Templates: ``groups/topics/topic_form.html``
    Context:
        form
            GroupTopicForm object
        topic
            GroupTopic object
    """
    group = get_object_or_404(Group, slug=slug)
    topic = get_object_or_404(GroupTopic, pk=topic_id, group=group, user=request.user)
    if request.method == 'POST':
        form = GroupTopicForm(request.POST, instance=topic)
        if form.is_valid():
            form.save()
            return redirect(request, topic)
    else:
        form = GroupTopicForm(instance=topic)
    return render(request, template_name, {
        'form': form,
        'group': group,
        'topic': topic
    })
示例#4
0
def message_create(request, slug, topic_id,
        template_name='groups/messages/message_form.html'):
    """
    Returns a group message form.

    Templates: ``groups/messages/message_form.html``
    Context:
        group
            Group object
        topic
            GroupTopic object
        form
            GroupMessageForm object
    """
    group = get_object_or_404(Group, slug=slug)
    topic = get_object_or_404(GroupTopic, pk=topic_id, group=group)
    if request.method == 'POST':
        form = GroupMessageForm(request.POST)
        if form.is_valid():
            message = form.save(commit=False)
            message.user = request.user
            message.topic = topic
            message.save()
            return redirect(request, topic)
    else:
        form = GroupMessageForm()
    return render(request, template_name, {
        'group': group,
        'topic': topic,
        'form': form,
    })
示例#5
0
文件: views.py 项目: 2292amit/forum
def comment_remove(request, object_id, template_name='comments/delete.html'):
    comment = get_object_or_404(Comment, pk=object_id, user=request.user)

    if DELTA > comment.submit_date:
         return comment_error(request)

    if request.method == 'POST':
        comment.delete()
        return redirect(request, comment.content_object)
    return render(request, template_name, {'comment': comment})
示例#6
0
def comment_remove(request, object_id, template_name='comments/delete.html'):
    comment = get_object_or_404(Comment, pk=object_id, user=request.user)

    if DELTA > comment.submit_date:
        return comment_error(request)

    if request.method == 'POST':
        comment.delete()
        return redirect(request, comment.content_object)
    return render(request, template_name, {'comment': comment})
示例#7
0
def invitation_create(
        request,
        template_name='invitations/invitation_form.html',
        success_template_name='invitations/invitation_success.html'):
    """
    Returns a form for a user to send an invitation.

    Templates:
        ``invitations/invitation_form.html``
        ``invitations/invitation_success.html``

    Context:
        form
            InvitationForm object
    """
    try:
        allotment = request.user.invitation_allotment
        if allotment.amount == 0:
            return invitation_error(request)
    except InvitationAllotment.DoesNotExist:
        return invitation_error(request)

    if request.method == 'POST':
        form = InvitationForm(request.POST)
        if form.is_valid():
            invitation = form.save(commit=False)
            invitation.token = Invitation.objects.create_token(
                invitation.email)
            invitation.from_user = request.user
            invitation.save()

            # Reduce user's invitation allotment
            allotment.decrement(1)

            # Send invitation email
            send_invitation_email(invitation)
            return render(request, success_template_name)
    else:
        form = InvitationForm()

    return render(request, template_name, {'form': form})
示例#8
0
def group_list(request, username=None,
        template_name='groups/group_list.html'):
    """
    Returns a group list page.

    Templates: ``groups/group_list.html``
    Context:
        group_list
            Group object list
    """
    group_list = Group.objects.filter(is_active=True)
    return render(request, template_name, {'group_list': group_list})
示例#9
0
def page_remove(request,
                slug,
                page_slug,
                template_name='groups/pages/page_remove_confirm.html'):
    group = get_object_or_404(Group, slug=slug)
    page = get_object_or_404(GroupPage, group=group, slug=page_slug)

    if request.method == 'POST':
        page.delete()
        return redirect(request, group)

    return render(request, template_name, {'group': group, 'page': page})
示例#10
0
文件: pages.py 项目: 2292amit/forum
def page_remove(request, slug, page_slug,
        template_name='groups/pages/page_remove_confirm.html'):
    group = get_object_or_404(Group, slug=slug)
    page = get_object_or_404(GroupPage, group=group, slug=page_slug)

    if request.method == 'POST':
        page.delete()
        return redirect(request, group)

    return render(request, template_name, {
        'group': group,
        'page': page
    })
示例#11
0
def invitation_create(request, template_name='invitations/invitation_form.html',
        success_template_name='invitations/invitation_success.html'):
    """
    Returns a form for a user to send an invitation.

    Templates:
        ``invitations/invitation_form.html``
        ``invitations/invitation_success.html``

    Context:
        form
            InvitationForm object
    """
    try:
        allotment = request.user.invitationallotment
        if allotment.amount == 0:
            return invitation_error(request)
    except InvitationAllotment.DoesNotExist:
        return invitation_error(request)

    if request.method == 'POST':
        form = InvitationForm(request.POST)
        if form.is_valid():
            invitation = form.save(commit=False)
            invitation.token = Invitation.objects.create_token(invitation.email)
            invitation.from_user = request.user
            invitation.save()

            # Reduce user's invitation allotment
            allotment.decrement(1)

            # Send invitation email
            send_invitation_email(invitation)
            return render(request, success_template_name)
    else:
        form = InvitationForm()

    return render(request, template_name, {'form': form})
示例#12
0
def invitation_error(
        request,
        error_message='You do not have any invitations at this time.',
        template_name='invitations/invitation_error.html'):
    """
    Returns an error template.

    Template: ``invitations/invitation_error.html``

    Context:
        error_message
            String containing the error message.
    """
    return render(request, template_name, {'error_message': error_message})
示例#13
0
def invitation_error(request, error_message='You do not have any invitations at this time.',
        template_name='invitations/invitation_error.html'):
    """
    Returns an error template.

    Template: ``invitations/invitation_error.html``

    Context:
        error_message
            String containing the error message.
    """
    return render(request, template_name, {
        'error_message': error_message
    })
示例#14
0
def group_invite(request, slug, template_name='groups/group_invite.html'):
    """
    Returns an invite form.
    
    Templates: ``groups/group_invite.html``
    Context:
        form
            GroupInviteForm object
    """
    group = get_object_or_404(Group, slug=slug, is_active=True)
    form = GroupInviteForm(initial={
        'group': group.pk,
        'user': request.user.pk
    })
    return render(request, template_name, {'group': group, 'form': form})
示例#15
0
def group_join(request, slug, template_name='groups/group_join_confirm.html'):
    """
    Returns a group join confirmation page.

    Templates: ``groups/group_join_confirm.html``
    Context:
        group
            Group object
    """
    group = get_object_or_404(Group, slug=slug, is_active=True)
    if request.method == 'POST':
        membership = GroupMember(group=group, user=request.user)
        membership.save()
        return redirect(request, group)
    return render(request, template_name, {'group': group})
示例#16
0
def group_join(request, slug, template_name='groups/group_join_confirm.html'):
    """
    Returns a group join confirmation page.

    Templates: ``groups/group_join_confirm.html``
    Context:
        group
            Group object
    """
    group = get_object_or_404(Group, slug=slug, is_active=True)
    if request.method == 'POST':
        membership = GroupMember(group=group, user=request.user)
        membership.save()
        return redirect(request, group)
    return render(request, template_name, {'group': group})
示例#17
0
def group_invite(request, slug, template_name='groups/group_invite.html'):
    """
    Returns an invite form.
    
    Templates: ``groups/group_invite.html``
    Context:
        form
            GroupInviteForm object
    """
    group = get_object_or_404(Group, slug=slug, is_active=True)
    form = GroupInviteForm(initial={'group': group.pk, 'user': request.user.pk})
    return render(request, template_name, {
        'group': group,
        'form': form
    })
示例#18
0
def group_remove(request, slug, template_name='groups/group_remove_confirm.html'):
    """
    Returns a group delete confirmation page.

    Templates: ``groups/group_remove_confirm.html``
    Context:
        group
            Group object
    """
    group = get_object_or_404(Group, slug=slug, creator=request.user)
    if request.method == 'POST':
        group.is_active = False
        group.save()
        return redirect(request, reverse('groups:groups'))
    return render(request, template_name, {'group': group})
示例#19
0
def group_detail(request, slug, template_name='groups/group_detail.html'):
    """
    Returns a group detail page.

    Templates: ``groups/group_detail.html``
    Context:
        group
            Group object
    """
    group = get_object_or_404(Group, slug=slug, is_active=True)
    if group.invite_only and not GroupMember.objects.is_member(group, request.user):
        return redirect(request, reverse('groups:join', kwargs={'slug': group.slug}))
    return render(request, template_name, {
        'group': group,
        'topic_list': group.topics.all(),
    })
示例#20
0
def page_list(request, slug, template_name='groups/pages/page_list.html'):
    """
    Returns a list of pages for a group.

    Templates: ``groups/pages/page_list.html``
    Context:
        group
            Group object
        page_list
            List of GroupPage objects
    """
    group = get_object_or_404(Group, slug=slug)
    return render(request, template_name, {
        'group': group,
        'page_list': group.pages.all()
    })
示例#21
0
文件: pages.py 项目: 2292amit/forum
def page_list(request, slug, template_name='groups/pages/page_list.html'):
    """
    Returns a list of pages for a group.

    Templates: ``groups/pages/page_list.html``
    Context:
        group
            Group object
        page_list
            List of GroupPage objects
    """
    group = get_object_or_404(Group, slug=slug)
    return render(request, template_name, {
        'group': group,
        'page_list': group.pages.all()
    })
示例#22
0
def comment_edit(request, object_id, template_name='comments/edit.html'):
    comment = get_object_or_404(Comment, pk=object_id, user=request.user)

    if DELTA > comment.submit_date:
        return comment_error(request)

    if request.method == 'POST':
        form = CommentForm(request.POST, instance=comment)
        if form.is_valid():
            form.save()
            return redirect(request, comment.content_object)
    else:
        form = CommentForm(instance=comment)
    return render(request, template_name, {
        'form': form,
        'comment': comment,
    })
示例#23
0
def page_detail(request,
                slug,
                page_slug,
                template_name='groups/pages/page_detail.html'):
    """
    Returns a group page.

    Templates: ``groups/pages/page_detail.html``
    Context:
        group
            Group object
        page
            GroupPage object
    """
    group = get_object_or_404(Group, slug=slug)
    page = get_object_or_404(GroupPage, group=group, slug=page_slug)
    return render(request, template_name, {'group': group, 'page': page})
示例#24
0
def topic_remove(request, slug, topic_id,
        template_name='groups/topics/topic_remove_confirm.html'):
    """
    Returns a group topic delete confirmation page.

    Templates: ``groups/topics/topic_remove_confirm.html``
    Context:
        topic
            GroupTopic object
    """
    group = get_object_or_404(Group, slug=slug)
    topic = get_object_or_404(GroupTopic, pk=topic_id, group=group, user=request.user)
    if request.method == 'POST':
        topic.is_active = False
        topic.save()
        return redirect(request, group)
    return render(request, template_name, {'topic': topic})
示例#25
0
文件: views.py 项目: 2292amit/forum
def comment_edit(request, object_id, template_name='comments/edit.html'):
    comment = get_object_or_404(Comment, pk=object_id, user=request.user)

    if DELTA > comment.submit_date:
         return comment_error(request)

    if request.method == 'POST':
        form = CommentForm(request.POST, instance=comment)
        if form.is_valid():
            form.save()
            return redirect(request, comment.content_object)
    else:
        form = CommentForm(instance=comment)
    return render(request, template_name, {
        'form': form,
        'comment': comment,
    })
示例#26
0
def group_members(request, slug, template_name='groups/group_members.html'):
    """
    Returns members of a group.

    Templates: ``groups/group_members.html``
    Context:
        group
            Group object
        member_list
            User objects
    """
    group = get_object_or_404(Group, slug=slug, is_active=True)
    member_list = group.members.all()
    return render(request, template_name, {
        'group': group,
        'member_list': member_list
    })
示例#27
0
def group_members(request, slug, template_name='groups/group_members.html'):
    """
    Returns members of a group.

    Templates: ``groups/group_members.html``
    Context:
        group
            Group object
        member_list
            User objects
    """
    group = get_object_or_404(Group, slug=slug, is_active=True)
    member_list = group.members.all()
    return render(request, template_name, {
        'group': group,
        'member_list': member_list
    })
示例#28
0
文件: pages.py 项目: 2292amit/forum
def page_edit(request, slug, page_slug,
        template_name='groups/pages/page_form.html'):
    group = get_object_or_404(Group, slug=slug)
    page = get_object_or_404(GroupPage, group=group, slug=page_slug)
    form = GroupPageForm(instance=page)

    if request.method == 'POST':
        form = GroupPageForm(request.POST, instance=page)
        if form.is_valid():
            page = form.save()
            return redirect(request, page)

    return render(request, template_name, {
        'group': group,
        'page': page,
        'form': form
    })
示例#29
0
def topic_list(request, slug, template_name='groups/topics/topic_list.html'):
    """
    Returns a group topic list page.

    Templates: ``groups/topics/topic_list.html``
    Context:
        group
            Group object
        topic_list
            GroupTopic object list
    """
    group = get_object_or_404(Group, slug=slug, is_active=True)
    topic_list = GroupTopic.objects.filter(group=group, is_active=True)
    return render(request, template_name, {
        'group': group,
        'topic_list': topic_list
    })
示例#30
0
def group_remove(request,
                 slug,
                 template_name='groups/group_remove_confirm.html'):
    """
    Returns a group delete confirmation page.

    Templates: ``groups/group_remove_confirm.html``
    Context:
        group
            Group object
    """
    group = get_object_or_404(Group, slug=slug, creator=request.user)
    if request.method == 'POST':
        group.is_active = False
        group.save()
        return redirect(request, reverse('groups:groups'))
    return render(request, template_name, {'group': group})
示例#31
0
def group_detail(request, slug, template_name='groups/group_detail.html'):
    """
    Returns a group detail page.

    Templates: ``groups/group_detail.html``
    Context:
        group
            Group object
    """
    group = get_object_or_404(Group, slug=slug, is_active=True)
    if group.invite_only and not GroupMember.objects.is_member(
            group, request.user):
        return redirect(request,
                        reverse('groups:join', kwargs={'slug': group.slug}))
    return render(request, template_name, {
        'group': group,
        'topic_list': group.topics.all(),
    })
示例#32
0
文件: pages.py 项目: 2292amit/forum
def page_detail(request, slug, page_slug,
        template_name='groups/pages/page_detail.html'):
    """
    Returns a group page.

    Templates: ``groups/pages/page_detail.html``
    Context:
        group
            Group object
        page
            GroupPage object
    """
    group = get_object_or_404(Group, slug=slug)
    page = get_object_or_404(GroupPage, group=group, slug=page_slug)
    return render(request, template_name, {
        'group': group,
        'page': page
    })
示例#33
0
def group_list(request, username=None, template_name='groups/group_list.html'):
    """
    Returns a group list page.

    Templates: ``groups/group_list.html``
    Context:
        group_list
            Group object list
    """
    group_list = Group.objects.filter(is_active=True)
    if request.user.is_authenticated():
        membership_list = group_list.filter(members__user=request.user)
    else:
        membership_list = []
    return render(request, template_name, {
        'group_list': group_list,
        'membership_list': membership_list
    })
示例#34
0
文件: groups.py 项目: 2292amit/forum
def group_list(request, username=None,
        template_name='groups/group_list.html'):
    """
    Returns a group list page.

    Templates: ``groups/group_list.html``
    Context:
        group_list
            Group object list
    """
    group_list = Group.objects.filter(is_active=True)
    if request.user.is_authenticated():
        membership_list = group_list.filter(members__user=request.user)
    else:
        membership_list = []
    return render(request, template_name, {
        'group_list': group_list,
        'membership_list': membership_list
    })
示例#35
0
def page_edit(request,
              slug,
              page_slug,
              template_name='groups/pages/page_form.html'):
    group = get_object_or_404(Group, slug=slug)
    page = get_object_or_404(GroupPage, group=group, slug=page_slug)
    form = GroupPageForm(instance=page)

    if request.method == 'POST':
        form = GroupPageForm(request.POST, instance=page)
        if form.is_valid():
            page = form.save()
            return redirect(request, page)

    return render(request, template_name, {
        'group': group,
        'page': page,
        'form': form
    })
示例#36
0
def message_list(request, slug, topic_id, template_name='groups/messages/message_list.html'):
    """
    Returns a group topic message list page.

    Templates: ``groups/messages/message_list.html``
    Context:
        group
            Group object
        topic
            GroupTopic object
        message_list
            List of GroupMessage objects
    """
    group = get_object_or_404(Group, slug=slug, is_active=True)
    topic = get_object_or_404(GroupTopic, pk=topic_id, group=group, is_active=True)
    return render(request, template_name, {
        'group': group,
        'topic': topic,
        'message_list': topic.messages.all()
    })
示例#37
0
def topic_detail(request, slug, topic_id,
        template_name='groups/topics/topic_detail.html'):
    """
    Returns a group topic detail page.

    Templates: ``groups/topics/topic_detail.html``
    Context:
        topic
            GroupTopic object
        group
            Group object
    """
    group = get_object_or_404(Group, slug=slug, is_active=True)
    topic = get_object_or_404(GroupTopic, pk=topic_id, is_active=True)
    message_form = GroupMessageForm()
    return render(request, template_name, {
        'group': group,
        'topic': topic,
        'message_form': message_form,
    })
示例#38
0
def group_create(request, template_name='groups/group_form.html'):
    """
    Returns a group form page.

    Templates: ``groups/group_form.html``
    Context:
        form
            GroupForm object
    """
    if request.method == 'POST':
        form = GroupForm(request.POST, request.FILES)
        if form.is_valid():
            group = form.save(commit=False)
            group.creator = request.user
            group.save()
            creator = GroupMember.objects.create(user=request.user, group=group, status=0)
            return redirect(request, group)
    else:
        form = GroupForm()
    return render(request, template_name, {'form': form})
示例#39
0
def group_edit(request, slug, template_name='groups/group_form.html'):
    """
    Returns a group form page.

    Templates: ``groups/group_form.html``
    Context:
        form
            GroupForm object
        group
            Group object
    """
    group = get_object_or_404(Group, slug=slug, creator=request.user)
    form = GroupForm(instance=group)

    if request.method == 'POST':
        form = GroupForm(request.POST, request.FILES, instance=group)
        if form.is_valid():
            form.save()
            return redirect(request, group)
    return render(request, template_name, {'form': form, 'group': group})
示例#40
0
def message_detail(request, slug, topic_id, message_id,
        template_name='groups/messages/message_detail.html'):
    """
    Returns a message detail page.

    Templates: ``groups/messages/message_detail.html``
    Context:
        group
            Group object
        topic
            GroupTopic object
        message
            GroupMessage object
    """
    group = get_object_or_404(Group, slug=slug, is_active=True)
    topic = get_object_or_404(GroupTopic, pk=topic_id, is_active=True)
    message = get_object_or_404(GroupMessage, pk=message_id, is_active=True)
    return render(request, template_name, {
        'group': group,
        'topic': topic,
        'message': message
    })
示例#41
0
def group_create(request, template_name='groups/group_form.html'):
    """
    Returns a group form page.

    Templates: ``groups/group_form.html``
    Context:
        form
            GroupForm object
    """
    if request.method == 'POST':
        form = GroupForm(request.POST, request.FILES)
        if form.is_valid():
            group = form.save(commit=False)
            group.creator = request.user
            group.save()
            creator = GroupMember.objects.create(user=request.user,
                                                 group=group,
                                                 status=0)
            return redirect(request, group)
    else:
        form = GroupForm()
    return render(request, template_name, {'form': form})
示例#42
0
def group_edit(request, slug, template_name='groups/group_form.html'):
    """
    Returns a group form page.

    Templates: ``groups/group_form.html``
    Context:
        form
            GroupForm object
        group
            Group object
    """
    group = get_object_or_404(Group, slug=slug, creator=request.user)
    form = GroupForm(instance=group)

    if request.method == 'POST':
        form = GroupForm(request.POST, request.FILES, instance=group)
        if form.is_valid():
            form.save()
            return redirect(request, group)
    return render(request, template_name, {
        'form': form,
        'group': group
    })
示例#43
0
def page_create(request, slug, template_name='groups/pages/page_form.html'):
    """
    Creates a group page.

    Templates: ``groups/pages/page_form.html``
    Context:
        group
            Group object
        form
            PageForm object
    """
    group = get_object_or_404(Group, slug=slug)
    form = GroupPageForm(initial={'group': group})

    if request.method == 'POST':
        form = GroupPageForm(request.POST)
        if form.is_valid():
            page = form.save(commit=False)
            page.group = group
            page.save()
            return redirect(request, page)

    return render(request, template_name, {'group': group, 'form': form})
示例#44
0
def topic_create(request, slug, template_name='groups/topics/topic_form.html'):
    """
    Returns a group topic form page.

    Templates: ``groups/topics/topic_form.html``
    Context:
        form
            GroupTopicForm object
    """
    group = get_object_or_404(Group, slug=slug)
    if request.method == 'POST':
        form = GroupTopicForm(request.POST)
        if form.is_valid():
            topic = form.save(commit=False)
            topic.user = request.user
            topic.group = group
            topic.save()
            return redirect(request, topic)
    else:
        form = GroupTopicForm()
    return render(request, template_name, {
        'form': form,
        'group': group
    })
示例#45
0
def message_remove(request, slug, topic_id, message_id,
        template_name='groups/messages/message_remove_confirm.html'):
    """
    Returns a message delete confirmation page.

    Templates: ``groups/messages/message_remove_confirm.html``
    Context:
        group
            Group object
        topic
            GroupTopic object
        message
            GroupMessage object
    """
    message = get_object_or_404(GroupMessage, pk=message_id, is_active=True)
    if request.method == 'POST':
        message.is_active = False
        message.save()
        return redirect(request, message.topic)
    return render(request, template_name, {
        'group': message.topic.group,
        'topic': message.topic,
        'message': message,
    })
示例#46
0
def comment_error(request,
                  error_message='You can not change this comment.',
                  template_name='comments/error.html'):
    return render(request, template_name, {'error_message': error_message})
示例#47
0
文件: views.py 项目: 2292amit/forum
def comment_error(request, error_message='You can not change this comment.',
        template_name='comments/error.html'):
    return render(request, template_name, {'error_message': error_message})