コード例 #1
0
ファイル: views.py プロジェクト: aschuster3/gtphipsi
def edit_forum(request, slug):
    """Render and process a form to modify an existing forum.

    Required arguments:
        - slug  =>  the slug of the forum to edit (as a string)

    If 'delete=true' appears in the request's query string, the forum will be deleted, along with all of its threads.

    """
    log_page_view(request, 'Edit Forum')
    forum = get_object_or_404(Forum, slug=slug)
    profile = request.user.get_profile()
    if profile not in forum.moderators.all() and not profile.is_admin():
        return HttpResponseRedirect(reverse('forbidden'))
    if request.method == 'POST':
        form = ForumForm(request.POST, instance=forum)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('forums'))
    else:
        if 'delete' in request.GET and request.GET.get('delete') == 'true':
            log.info('%s (%s) deleted forum \'%s\'', request.user.username, request.user.get_full_name(), forum.name)
            forum.delete()
            return HttpResponseRedirect(reverse('forums'))
        form = ForumForm(instance=forum)
    return render(request, 'forums/add_forum.html', {'form': form, 'forum': forum, 'create': False},
                  context_instance=RequestContext(request))
コード例 #2
0
def add_forum(request):
    """Render and process a form to create a new forum."""
    log_page_view(request, 'Add Forum')
    if request.method == 'POST':
        form = ForumForm(request.POST)
        if form.is_valid():
            forum = form.save(commit=False)
            forum.slug = slugify(forum.name)
            try:
                forum.save()
            except IntegrityError:
                form._errors['name'] = form.error_class(
                    ['That name is too similar to an existing forum name.'])
            else:
                for mod in form.cleaned_data.get('moderators'):
                    forum.moderators.add(mod)
                forum.save()
                log.info('%s (%s) added new forum \'%s\'',
                         request.user.username, request.user.get_full_name(),
                         forum.name)
                return HttpResponseRedirect(reverse('forums'))
    else:
        form = ForumForm()
    return render(request,
                  'forums/add_forum.html', {
                      'form': form,
                      'create': True
                  },
                  context_instance=RequestContext(request))
コード例 #3
0
def edit_forum(request, slug):
    """Render and process a form to modify an existing forum.

    Required arguments:
        - slug  =>  the slug of the forum to edit (as a string)

    If 'delete=true' appears in the request's query string, the forum will be deleted, along with all of its threads.

    """
    log_page_view(request, 'Edit Forum')
    forum = get_object_or_404(Forum, slug=slug)
    profile = request.user.get_profile()
    if profile not in forum.moderators.all() and not profile.is_admin():
        return HttpResponseRedirect(reverse('forbidden'))
    if request.method == 'POST':
        form = ForumForm(request.POST, instance=forum)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('forums'))
    else:
        if 'delete' in request.GET and request.GET.get('delete') == 'true':
            log.info('%s (%s) deleted forum \'%s\'', request.user.username,
                     request.user.get_full_name(), forum.name)
            forum.delete()
            return HttpResponseRedirect(reverse('forums'))
        form = ForumForm(instance=forum)
    return render(request,
                  'forums/add_forum.html', {
                      'form': form,
                      'forum': forum,
                      'create': False
                  },
                  context_instance=RequestContext(request))
コード例 #4
0
ファイル: views.py プロジェクト: aschuster3/gtphipsi
def add_forum(request):
    """Render and process a form to create a new forum."""
    log_page_view(request, 'Add Forum')
    if request.method == 'POST':
        form = ForumForm(request.POST)
        if form.is_valid():
            forum = form.save(commit=False)
            forum.slug = slugify(forum.name)
            try:
                forum.save()
            except IntegrityError:
                form._errors['name'] = form.error_class(['That name is too similar to an existing forum name.'])
            else:
                for mod in form.cleaned_data.get('moderators'):
                    forum.moderators.add(mod)
                forum.save()
                log.info('%s (%s) added new forum \'%s\'', request.user.username, request.user.get_full_name(), forum.name)
                return HttpResponseRedirect(reverse('forums'))
    else:
        form = ForumForm()
    return render(request, 'forums/add_forum.html', {'form': form, 'create': True},
                  context_instance=RequestContext(request))