Files @ 7e8185377287
Branch filter:

Location: symposion_app/symposion/cms/views.py - annotation

James Tauber
improved styling of schedule list
from django.http import Http404
from django.shortcuts import render, redirect
from django.template import RequestContext

from .models import Page
from .forms import PageForm


def can_edit(user):
    if user.is_staff or user.is_superuser:
        return True
    if user.has_perm("cms.change_page"):
        return True
    return False


def page(request, path):
    
    editable = can_edit(request.user)
    try:
        page = Page.published.get(path=path)
    except Page.DoesNotExist:
        if editable:
            return redirect("cms_page_edit", path=path)
        else:
            raise Http404
    
    return render(request, "cms/page_detail.html", {
        "page": page,
        "editable": editable,
    })


def page_edit(request, path):
    
    if not can_edit(request.user):
        raise Http404
    
    try:
        page = Page.published.get(path=path)
    except Page.DoesNotExist:
        page = None
    
    if request.method == "POST":
        form = PageForm(request.POST, instance=page)
        if form.is_valid():
            page = form.save(commit=False)
            page.path = path
            page.save()
            return redirect(page)
        else:
            print form.errors
    else:
        form = PageForm(instance=page, initial={"path": path})
    
    return render(request, "cms/page_edit.html", {
        "path": path,
        "form": form
    })