2 # Based on code from http://e-scribe.com/news/210
4 from django
.http
import HttpResponse
, HttpResponseRedirect
5 from django
.contrib
.auth
.decorators
import login_required
6 from archweb_dev
.utils
import render_template
7 from archweb_dev
.wiki
.models
import Wikipage
11 """Return a list of all wiki pages"""
12 pages
= Wikipage
.objects
.all().order_by('title')
13 return render_template('wiki/home.html', request
, {'pages':pages
})
16 """Return the Index wiki page"""
17 return HttpResponseRedirect("/wiki/WikiIndex/")
20 def page(request
, title
):
21 """Display page, or redirect to root if page doesn't exist yet"""
23 page
= Wikipage
.objects
.get(title__exact
=title
)
24 return render_template('wiki/page.html', request
, {'page':page
})
25 except Wikipage
.DoesNotExist
:
26 return HttpResponseRedirect("/wiki/edit/%s/" % title
)
29 def edit(request
, title
):
30 """Process submitted page edits (POST) or display editing form (GET)"""
33 page
= Wikipage
.objects
.get(title__exact
=title
)
34 except Wikipage
.DoesNotExist
:
35 # Must be a new one; let's create it
36 page
= Wikipage(title
=title
)
37 page
.content
= request
.POST
['content']
38 page
.title
= request
.POST
['title']
39 page
.last_author
= request
.user
41 return HttpResponseRedirect("/wiki/" + page
.title
+ "/")
44 page
= Wikipage
.objects
.get(title__exact
=title
)
45 except Wikipage
.DoesNotExist
:
46 # create a dummy page object -- note that it is not saved!
47 page
= Wikipage(title
=title
)
48 page
.body
= "<!-- Enter content here -->"
49 return render_template('wiki/edit.html', request
, {'page':page
})
55 title
= request
.POST
['title']
57 page
= Wikipage
.objects
.get(title__exact
=title
)
58 except Wikipage
.DoesNotExist
:
59 return HttpResponseRedirect("/wiki/")
61 return HttpResponseRedirect("/wiki/")