def body(self, **kwargs): """ Return the plain and html versions of our contents. Return: tuple Exceptions: None """ text_content, html_content = None, None if self.plain: text_content = mold.cast(self.plain, **kwargs) if self.html: html_content = mold.cast(self.html, **kwargs) return text_content, html_content
def interpolate_dir(directory, **context): """ Recursively iterate through .jinja2 files below DIRECTORY, rendering them as files with CONTEXT. """ # Frist, let's deal with files at our current level. for t in directory.ls('*.jinja2', all=True): realname = str(t[-1]).replace('.jinja2', '') target = t[:-1] / realname target << mold.cast(t, **context) os.remove(t) # OK. Now let's dive in. for t in directory.ls(): if t.is_dir: interpolate_dir(t, **context) return
def interpolate_dir(directory, **context): """ Recursively iterate through .jinja2 files below DIRECTORY, rendering them as files with CONTEXT. """ # Frist, let's deal with files at our current level. for t in directory.ls('*.jinja2', all=True): realname = str(t[-1]).replace('.jinja2', '') target = t[:-1]/realname target << mold.cast(t, **context) os.remove(t) # OK. Now let's dive in. for t in directory.ls(): if t.is_dir: interpolate_dir(t, **context) return
def create_form_template_for(record, scaffold_base): """ Create a form template for RECORD. """ write('Creating form template for{0}'.format(record)) name = record.get_api_name() templates = _get_template_dir_from_record(record) forms = templates / 'forms' if not forms: forms.mkdir() form_template = scaffold_base / 'record_templates/record_form.jinja2' template = forms / '{0}_form.html'.format(name) fields = _strip_non_user_fields(record.build_field_schema()) contents = mold.cast(form_template, record=record, fields=fields) # We often get lots of lines containing just spaces as a Jinja2 artifact. Lose them. contents = "\n".join(l for l in contents.split("\n") if l.strip()) template << contents return
def create_form_template_for(record, scaffold_base): """ Create a form template for RECORD. """ write('Creating form template for{0}'.format(record)) name = record.get_api_name() templates = _get_template_dir_from_record(record) forms = templates/'forms' if not forms: forms.mkdir() form_template = scaffold_base/'record_templates/record_form.jinja2' template = forms/'{0}_form.html'.format(name) fields = _strip_non_user_fields(record.build_field_schema()) contents = mold.cast(form_template, record=record, fields=fields) # We often get lots of lines containing just spaces as a Jinja2 # artifact. Lose them. contents = "\n".join(l for l in contents.split("\n") if l.strip()) template << contents return
def create_display_template_for(record, scaffold_base): """ Create a display template for RECORD. """ write('Creating display template for {0}'.format(record)) name = record.get_api_name() # 1. Locate the records template directory templates = _get_template_dir_from_record(record) records = templates / 'records' if not records: records.mkdir() display_template = scaffold_base / 'record_templates/record_display.jinja2' template = records / '{0}.html'.format(name) fields = _strip_non_user_fields(record.build_field_schema()) contents = mold.cast(display_template, record=record, fields=fields) # We often get lots of lines containing just spaces as a Jinja2 # artifact. Lose them. contents = "\n".join(l for l in contents.split("\n") if l.strip()) template << contents return
def test_renderit(self): "Render a template" tpl = MagicMock(name='Mock template') tpl.contents = '{{one}}:{{two}}' res = mold.cast(tpl, one=1, two=2) self.assertEqual('1:2', res)
"Geocode practices offline" import ffs from ffs.contrib import mold data = ffs.Path('/home/david/src/ohc/nhs-prescription-analytics/data') coded = data / 'practice_statin_totals_geocoded.csv' with coded.csv() as csv: csv.next() markers = [r for r in csv if r[-1] and r[-2]] tpl = ffs.Path('presentation/practicejs.jinja2') outfile = data / 'practice.js' if outfile: outfile.truncate() outfile << mold.cast(tpl, markers=markers)