comparison examples/tutorial/geddit/lib/template.py @ 625:dba522b4c31d

GenshiTutorial: implemented AJAX commenting.
author cmlenz
date Fri, 31 Aug 2007 17:01:00 +0000
parents 0dc152d128f5
children
comparison
equal deleted inserted replaced
624:1d23dddd6c2d 625:dba522b4c31d
2 2
3 import cherrypy 3 import cherrypy
4 from genshi.core import Stream 4 from genshi.core import Stream
5 from genshi.output import encode, get_serializer 5 from genshi.output import encode, get_serializer
6 from genshi.template import Context, TemplateLoader 6 from genshi.template import Context, TemplateLoader
7
8 from geddit.lib import ajax
7 9
8 loader = TemplateLoader( 10 loader = TemplateLoader(
9 os.path.join(os.path.dirname(__file__), '..', 'templates'), 11 os.path.join(os.path.dirname(__file__), '..', 'templates'),
10 auto_reload=True 12 auto_reload=True
11 ) 13 )
16 applied. 18 applied.
17 """ 19 """
18 def decorate(func): 20 def decorate(func):
19 def wrapper(*args, **kwargs): 21 def wrapper(*args, **kwargs):
20 cherrypy.thread_data.template = loader.load(filename) 22 cherrypy.thread_data.template = loader.load(filename)
21 if method == 'html': 23 opt = options.copy()
22 options.setdefault('doctype', 'html') 24 if not ajax.is_xhr() and method == 'html':
23 serializer = get_serializer(method, **options) 25 opt.setdefault('doctype', 'html')
26 serializer = get_serializer(method, **opt)
24 stream = func(*args, **kwargs) 27 stream = func(*args, **kwargs)
25 if not isinstance(stream, Stream): 28 if not isinstance(stream, Stream):
26 return stream 29 return stream
27 return encode(serializer(stream), method=serializer, 30 return encode(serializer(stream), method=serializer,
28 encoding=encoding) 31 encoding=encoding)
Copyright (C) 2012-2017 Edgewall Software