X-Git-Url: https://git.toastfreeware.priv.at/toast/alpenzoo.git/blobdiff_plain/dcb1116d744f572872c5535ec71ab4fb467eea4f..0e66da3992081b034b999e9427b98663857dff11:/django_template_backend_genshi/__init__.py?ds=sidebyside diff --git a/django_template_backend_genshi/__init__.py b/django_template_backend_genshi/__init__.py index c09af8c..85c338f 100644 --- a/django_template_backend_genshi/__init__.py +++ b/django_template_backend_genshi/__init__.py @@ -1,12 +1,17 @@ from django.template.backends.utils import csrf_input_lazy, csrf_token_lazy import django.template.backends.base import genshi.template +import genshi.template.loader +import genshi.template.base class GenshiEngine(django.template.backends.base.BaseEngine): + app_dirname = 'genshi' + def __init__(self, params): params = params.copy() options = params.pop('OPTIONS').copy() + self.app_dirname = options.get('app_dirname', self.app_dirname) super(GenshiEngine, self).__init__(params) loader = genshi.template.TemplateLoader(self.template_dirs, auto_reload=options['auto_reload']) self.loader = loader @@ -16,17 +21,17 @@ class GenshiEngine(django.template.backends.base.BaseEngine): try: template = genshi.template.MarkupTemplate(template_code) return GenshiTemplateWrapper(template) - except genshi.TemplateCompilationFailed as exc: + except genshi.template.base.TemplateSyntaxError as exc: raise django.template.TemplateSyntaxError(exc.args) def get_template(self, template_name): try: template = self.loader.load(template_name) - return GenshiTemplateWrapper(self.loader.get_template(template_name)) - except genshi.TemplateNotFound as exc: + return GenshiTemplateWrapper(template) + except genshi.template.loader.TemplateNotFound as exc: raise django.template.TemplateDoesNotExist(exc.args) - except genshi.TemplateCompilationFailed as exc: + except genshi.template.base.TemplateSyntaxError as exc: raise django.template.TemplateSyntaxError(exc.args) @@ -41,5 +46,5 @@ class GenshiTemplateWrapper(object): context['request'] = request context['csrf_input'] = csrf_input_lazy(request) context['csrf_token'] = csrf_token_lazy(request) - stream = self.template.generate(dict=context) + stream = self.template.generate(**context) return stream.render()