-from itertools import cycle, islice # etc.
-from os.path import isfile # for example
+# genshi_namespace
+
+# Toplevel definitions in this module will be available in when
+# rendering a Genshi template.
+
+from itertools import cycle
+
+from conifer.syrup import models
+
from genshi.builder import tag
import genshi.output
from django.conf import settings
-from conifer.syrup import models # fixme, tight binding
import gettext
from conifer.middleware.genshi_locals import get_request
+#------------------------------------------------------------
+# set up internationalization
+
if settings.USE_I18N:
translations = gettext.GNUTranslations(
file('locale/%s/LC_MESSAGES/conifer-syrup.mo' % settings.LANGUAGE_CODE))
if settings.USE_I18N:
template.filters.insert(0, Translator(translations.ugettext))
+
dirs = ['templates']
loader = TemplateLoader(dirs, auto_reload=True, callback=template_loaded)
def template(tname):
return loader.load(tname)
-def render(tname, **kwargs):
- request = get_request()
- _inject_django_things_into_namespace(request, kwargs)
- return HttpResponse(template(tname).generate(**kwargs).render('xhtml'))
def _inject_django_things_into_namespace(request, ns):
ns['_'] = _
- ns['models'] = models
ns['request'] = request
ns['user'] = getattr(request, 'user', None)
ns.update(genshi_namespace.__dict__)
+
+#------------------------------------------------------------
+# main API
+
+def render(tname, **kwargs):
+ request = get_request()
+ _inject_django_things_into_namespace(request, kwargs)
+ return HttpResponse(template(tname).generate(**kwargs).render('xhtml'))