Files @ eb2382d3ac35
Branch filter:

Location: symposion_app/symposion/cms/views.py

James Tauber
staff can now see all teams on dashboard
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
    })