root/python/django/apps/protowiki/views.py

Revision 6:47ec1fadeb74, 1.8 kB (checked in by pbx, 18 months ago)

[svn] Initial commit of protowiki code

Line 
1from django.http import HttpResponse, HttpResponseRedirect
2from django.shortcuts import render_to_response
3from wikiproject.wiki.models import Wikipage
4
5def index(request):
6    """Return simple list of wiki pages"""
7    pages = Wikipage.objects.all().order_by('title')
8    return render_to_response('home.html', locals())
9
10def page(request, title):
11    """Display page, or redirect to root if page doesn't exist yet"""
12    try:
13        page = Wikipage.objects.get(title__exact=title)
14        return render_to_response('page.html', locals())
15    except Wikipage.DoesNotExist:
16        return HttpResponseRedirect("/wiki/edit/%s/" % title)
17
18def edit(request, title):
19    """Process submitted page edits (POST) or display editing form (GET)"""
20    if request.POST:
21        try:
22            page = Wikipage.objects.get(title__exact=title)
23        except Wikipage.DoesNotExist:
24            # Must be a new one; let's create it
25            page = Wikipage(title=title)
26        page.content = request.POST['content']
27        page.title = request.POST['title']
28        page.save()
29        return HttpResponseRedirect("/wiki/" + page.title + "/")
30    else:
31        try:
32            page = Wikipage.objects.get(title__exact=title)
33        except Wikipage.DoesNotExist:
34            # create a dummy page object -- note that it is not saved!
35            page = Wikipage(title=title)
36            page.body = "<!-- Enter content here -->"
37        return render_to_response('edit.html', locals())
38
39def delete(request):
40    """Delete a page"""
41    if request.POST:
42        title = request.POST['title']
43        try:
44            page = Wikipage.objects.get(title__exact=title)
45        except Wikipage.DoesNotExist:
46            return HttpResponseRedirect("/wiki/DeleteFailed/")
47        page.delete()
48    return HttpResponseRedirect("/wiki/")
Note: See TracBrowser for help on using the browser.