Mercurial > genshi > genshi-test
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) |