| 1 | from django.http import HttpResponse, HttpResponseRedirect |
|---|
| 2 | from django.shortcuts import render_to_response |
|---|
| 3 | from wikiproject.wiki.models import Wikipage |
|---|
| 4 | |
|---|
| 5 | def 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 | |
|---|
| 10 | def 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 | |
|---|
| 18 | def 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 | |
|---|
| 39 | def 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/") |
|---|