Example #1
0
def page_manage(request, page_id=None):
    """
    Allows a staff member to add a new or edit an existing page.
    :param request: HttpRequest object
    :param page_id: pk of a Page object, not required
    :return: HttpResponse object
    """
    if page_id:
        page = get_object_or_404(models.Page,
                                 pk=page_id,
                                 content_type=request.model_content_type,
                                 object_id=request.site_type.pk)
        page_form = forms.PageForm(instance=page)
        edit = True
    else:
        page = None
        page_form = forms.PageForm()
        edit = False

    if request.POST:

        if page_id:
            page_form = forms.PageForm(request.POST, instance=page)
        else:
            page_form = forms.PageForm(request.POST)

        if page_form.is_valid():
            page = page_form.save(commit=False)
            page.content_type = request.model_content_type
            page.object_id = request.site_type.pk
            page.save()

            messages.add_message(request, messages.INFO, 'Page saved.')
            return redirect(reverse('cms_index'))

    template = 'cms/page_manage.html'
    context = {
        'page': page,
        'form': page_form,
        'edit': edit,
    }

    return render(request, template, context)
Example #2
0
def page_manage(request, page_id=None):
    if page_id:
        page = get_object_or_404(models.Page,
                                 pk=page_id,
                                 content_type=request.model_content_type)
        page_form = forms.PageForm(instance=page)
        edit = True
    else:
        page = None
        page_form = forms.PageForm()
        edit = False

    if request.POST:

        if page_id:
            page_form = forms.PageForm(request.POST, instance=page)
        else:
            page_form = forms.PageForm(request.POST)

        if page_form.is_valid():
            page = page_form.save(commit=False)
            page.content_type = request.model_content_type
            page.object_id = request.site_type.pk
            page.is_markdown = request.POST.get('is_markdown', False)
            page.save()

            messages.add_message(request, messages.INFO, 'Page saved.')
            return redirect(reverse('cms_index'))

    template = 'cms/page_manage.html'
    context = {
        'page': page,
        'form': page_form,
        'edit': edit,
    }

    return render(request, template, context)