1 """Django implementation of the templating needed in Fed4FIRE.
\r
4 import django.template
\r
5 from django.conf import settings
\r
9 # Package where to read the template files
\r
11 _package = "sla.slaclient.templates.fed4fire.django"
\r
14 # Filename of the sla-agreement template
\r
16 _AGREEMENT_FILENAME = "agreement.xml"
\r
19 # Filename of the sla-template template
\r
21 _TEMPLATE_FILENAME = "template.xml"
\r
24 class Factory(object):
\r
27 self.slaagreement_tpl = None
\r
28 self.slatemplate_tpl = None
\r
30 def _lazy_init(self):
\r
31 if not settings.configured:
\r
32 settings.configure()
\r
35 def _read(filename):
\r
36 string = pkgutil.get_data(_package, filename)
\r
39 def _get_agreement_tpl(self):
\r
41 if self.slaagreement_tpl is None:
\r
42 self.slaagreement_tpl = Factory._read(_AGREEMENT_FILENAME)
\r
43 return self.slaagreement_tpl
\r
45 def _get_template_tpl(self):
\r
47 if self.slatemplate_tpl is None:
\r
48 self.slatemplate_tpl = Factory._read(_TEMPLATE_FILENAME)
\r
49 return self.slatemplate_tpl
\r
51 def slaagreement(self):
\r
52 tpl = self._get_agreement_tpl()
\r
53 result = Template(tpl)
\r
56 def slatemplate(self):
\r
57 tpl = self._get_template_tpl()
\r
58 result = Template(tpl)
\r
62 class Template(sla.slaclient.templates.Template):
\r
64 def __init__(self, string):
\r
65 self.impl = django.template.Template(string)
\r
67 def render(self, data):
\r
68 context = django.template.Context(dict(data=data))
\r
69 result = self.impl.render(context)
\r