gallery: Use new response.set_payload method

The `set_payload` method of the `VariedResponse` class takes care of
rendering the Jinja template  or serializing the context object as JSON,
so that no longer needs to be handled by controllers.
master
Dustin 2017-07-02 11:35:11 -05:00
parent 860c36b0f2
commit 2cdc613f3a
1 changed files with 2 additions and 16 deletions

View File

@ -1,4 +1,3 @@
import jinja2
import milla.controllers import milla.controllers
import os import os
@ -13,19 +12,6 @@ DEFAULT_EXTENSIONS = [
'.tif', '.tif',
] ]
TMPL_LOADER = jinja2.PackageLoader(__name__.rsplit('.', 1)[0])
def render(request, template, context=None):
if context is None:
context = {}
env = jinja2.Environment(loader=TMPL_LOADER)
env.globals.update(
url=request.create_href,
static=request.static_resource,
)
return env.get_template(template).render(**context)
def get_images(path, extensions=None): def get_images(path, extensions=None):
if extensions is None: if extensions is None:
@ -44,7 +30,7 @@ class GalleryController(milla.controllers.HTTPVerbController):
def GET(self, request): def GET(self, request):
response = request.ResponseClass() response = request.ResponseClass()
images = get_images(request.config['gallery.screenshot_dir']) images = get_images(request.config['gallery.screenshot_dir'])
response.text = render(request, 'gallery.html.j2', { response.set_payload('gallery.html.j2', {
'images': (i for m, i in sorted(images)), 'images': [i for m, i in sorted(images)],
}) })
return response return response