39
38
class WikiController(BaseController):
40
39
"""Controller for wiki related operations."""
41
def create_page_template(self):
42
return self.render('admin/template-new.html')
44
def process_create_page_template(self):
45
schema = TemplateSchema()
47
form_result = schema.to_python(request.params)
48
except formencode.Invalid, e:
49
errors = e.unpack_errors()
50
return formencode.htmlfill.render(self.create_page_template(), defaults=request.params, errors=errors)
51
filename = form_result['name']
52
save_location = form_result['save_location']
53
content = form_result['content']
54
description = form_result['description']
55
old_name = form_result['old_name']
57
return redirect(h.url(controller="admin/wiki",
58
action="save_page_template",
61
save_location=save_location,
63
description=description,
42
66
def delete_page_template(self, filename):
43
67
"""Deletes a page template."""
44
template = Template.get_one(filename=filename)
68
template = Template.get_one(name=filename)
45
69
if template is not None:
46
70
Session.delete(template)
48
return redirect(h.url(controller='admin/wiki', action='list_templates'))
72
return redirect(h.url(controller='admin/wiki', action='list_page_templates'))
50
def edit_template(self, filename):
74
def edit_page_template(self, filename):
51
75
"""Edit page templates."""
52
76
existing_template = Template.get_one(name=filename)
53
prefix = urllib.unquote(h.url.current())
54
prefix = prefix[1:-len("/+edit")]
56
return self.render('admin/template-edit.html',
57
{'template': existing_template,
60
def save_template(self, filename):
77
if existing_template is not None:
78
save_url = h.url(controller="admin/wiki",
79
action="save_page_template",
82
return self.render('admin/template-edit.html',
83
{'template': existing_template,
84
'save_url': save_url})
87
def save_page_template(self, filename):
61
88
"""Save templates into the database."""
62
schema = TemplateSchema
89
schema = TemplateSchema()
64
91
form_result = schema.to_python(request.params)
65
92
except formencode.Invalid, e:
66
93
errors = e.unpack_errors()
67
return formencode.htmlfill.render(self.edit_template(filename), defaults=request.params,
94
return formencode.htmlfill.render(self.edit_page_template(filename), defaults=request.params,
70
97
#If there is already a template in the database with this name then pull it
71
98
#out and overwrite the values in it, otherwise create a new template.
73
99
templates = Template.get(name=form_result['old_name'])
74
100
new_template = templates[0] if templates else Template()
75
101
new_template.name = form_result['name']
82
108
if templates == []:
83
109
Session.add(new_template)
85
return redirect(h.url(controller='admin/wiki', action='view_template',
111
return redirect(h.url(controller='admin/wiki', action='view_page_template',
86
112
filename=form_result['name']))
88
def list_templates(self):
114
def list_page_templates(self):
89
115
"""Return a list of all the page templates stored in the database."""
90
116
template_names = get_template_names()
91
117
return self.render('/admin/template-viewall.html',
92
118
{'template_names': template_names})
94
def view_template(self, filename):
120
def view_page_template(self, filename):
95
121
"""View an individual template."""
97
123
template = Template.get_one(name=filename)