def to_html(self, lang, **kwargs): """Convert repeat group components to html and return concatenation. Args: lang (str): The language. **kwargs: Keyword arguments. Returns: str: A rendered html concatenation of component templates. """ html = "" # - Render header html += self.render_header(self.row, lang, **kwargs) # - Render body for i in self.data: if exclusion(item=i, settings=kwargs): continue if isinstance(i, OdkPrompt): i.row["in_repeat"] = True html += i.to_html(lang, **kwargs) elif isinstance(i, OdkGroup): i.in_repeat = True html += i.to_html(lang, **kwargs) elif isinstance(i, OdkTable): i.in_repeat = True # - Render footer html += i.to_html(lang, **kwargs) html += self.render_footer() return html
def to_html(self, lang, **kwargs): """Convert to html. Args: lang (place): The language. highlighting (bool): Displays highlighted sub-sections if True. **kwargs: Keyword arguments. Returns: str: A rendered html template. """ # - Render header self.set_header_and_contents(lang, **kwargs) table = list() table.append(self.header.row) # - Render body for i in self.contents: if exclusion(item=i, settings=kwargs): continue table.append(i.row) # pylint: disable=no-member return TEMPLATE_ENV.get_template("content/table/table.html").render( table=table, lang=lang, **kwargs, settings=kwargs)
def to_html(self, lang, **kwargs): """Convert group components to html and return concatenation. Args: lang (str): The language. Returns: str: A rendered html concatenation of component templates. """ html = "" # pylint: disable=no-member # - Render header html += TEMPLATE_ENV.get_template( "content/group/group-opener.html").render(**kwargs, settings=kwargs) header = self.format_header(self.row) html += OdkPrompt(header).to_html(lang, **kwargs) # - Render body for i in self.data: row = i.data[0] if isinstance(i, OdkTable) else i if exclusion(item=row, settings=kwargs): continue if isinstance(i, OdkPrompt): i.row["in_repeat"] = self.in_repeat i.row["in_group"] = True html += i.to_html(lang, **kwargs) elif isinstance(i, OdkTable): i.in_repeat = self.in_repeat html += i.to_html(lang, **kwargs) # - Render footer # pylint: disable=no-member html += TEMPLATE_ENV.get_template( "content/group/group-closer.html").render(**kwargs, settings=kwargs) return html
def to_html(self, lang, highlighting, **kwargs): """Convert group components to html and return concatenation. Args: lang (str): The language. highlighting (bool): For color highlighting of various components of html template. Returns: str: A rendered html concatenation of component templates. """ html = '' # pylint: disable=no-member # - Render header html += TEMPLATE_ENV.get_template('content/group/group-opener.html')\ .render(**kwargs) header = self.format_header(self.opener) html += OdkPrompt(header).to_html(lang, highlighting, **kwargs) # - Render body for i in self.data: if exclusion(item=i, settings=kwargs): continue if isinstance(i, OdkPrompt): i.row['in_repeat'] = self.in_repeat i.row['in_group'] = True html += i.to_html(lang, highlighting, **kwargs) elif isinstance(i, OdkTable): i.in_repeat = self.in_repeat html += i.to_html(lang, highlighting, **kwargs) # - Render footer # pylint: disable=no-member html += TEMPLATE_ENV.get_template('content/group/group-closer.html')\ .render(**kwargs) return html
def to_html(self, lang=None, **kwargs): """Get the JSON representation of an entire XLSForm. Args: lang (str): The language. **highlight (bool): For color highlighting of various components **debug (bool): For inclusion of debug information to be printed in the JavaScript console. Returns: str: A detailed HTML representation of the XLSForm. """ render_calculates = True language = lang if lang else self.language debug = True if "debug" in kwargs and kwargs["debug"] else False html_questionnaire = "" qre = self.questionnaire if "template" not in kwargs: kwargs["template"] = "standard" if kwargs["template"] == "standard": name_to_q_nums = OdkForm._get_name_to_q_num_map(qre) qre = OdkForm._set_name_refs_to_q_nums(qre, name_to_q_nums) # render_calculates = False data = { "header": { "title": self.get_title(settings=self.settings, wb=self.metadata["raw_data"], lang=lang) }, "footer": { "data": self.to_json(pretty=True) if debug else "false" }, "questionnaire": qre, } # - Render Header # pylint: disable=no-member header = TEMPLATE_ENV.get_template("header.html").render( data=data["header"], render_image=False if kwargs["format"] == "doc" else True, **kwargs, settings=kwargs) # pylint: disable=no-member grp_spc = TEMPLATE_ENV.get_template( "content/group/group-spacing.html").render() html_questionnaire += header # - Render Body prev_item = None for index, item in enumerate(data["questionnaire"]): if exclusion(item=item, settings=kwargs): continue if isinstance(item, OdkCalculate): item.renderable = render_calculates if prev_item is not None and isinstance(item, OdkGroup): html_questionnaire += grp_spc elif isinstance(prev_item, OdkGroup) and not isinstance(item, OdkGroup): html_questionnaire += grp_spc if (isinstance(item, OdkPrompt) and item.is_section_header and isinstance( data["questionnaire"][index + 1], OdkGroup)): html_questionnaire += item.to_html(lang=language, **kwargs, bottom_border=True) else: html = item.to_html(lang=language, **kwargs) html_questionnaire += html prev_item = item # pylint: disable=no-member footer = TEMPLATE_ENV.get_template("footer.html").render( info=None, warnings="false", # to-do: no warnings yet data=data["footer"]["data"], **kwargs, settings=kwargs) html_questionnaire += footer return html_questionnaire
def to_html(self, lang=None, **kwargs): """Get the JSON representation of an entire XLSForm. Args: lang (str): The language. **highlight (bool): For color highlighting of various components **debug (bool): For inclusion of debug information to be printed in the JavaScript console. Returns: str: A detailed HTML representation of the XLSForm. """ render_calculates = True language = lang if lang else self.language debug = True if 'debug' in kwargs and kwargs['debug'] else False html_questionnaire = '' qre = self.questionnaire if 'template' not in kwargs: kwargs['template'] = 'standard' if kwargs['template'] == 'standard': name_to_q_nums = OdkForm._get_name_to_q_num_map(qre) qre = OdkForm._set_name_refs_to_q_nums(qre, name_to_q_nums) # render_calculates = False data = { 'header': { 'title': self.get_title(settings=self.settings, wb=self.metadata['raw_data'], lang=lang) }, 'footer': { 'data': self.to_json(pretty=True) if debug else 'false' }, 'questionnaire': qre } # - Render Header # pylint: disable=no-member header = TEMPLATE_ENV.get_template('header.html').render( data=data['header'], render_image=False if kwargs['format'] == 'doc' else True, **kwargs, settings=kwargs) # pylint: disable=no-member grp_spc = TEMPLATE_ENV\ .get_template('content/group/group-spacing.html').render() html_questionnaire += header # - Render Body prev_item = None for index, item in enumerate(data['questionnaire']): if exclusion(item=item, settings=kwargs): continue if isinstance(item, OdkCalculate): item.renderable = render_calculates if prev_item is not None and isinstance(item, OdkGroup): html_questionnaire += grp_spc elif isinstance(prev_item, OdkGroup) \ and not isinstance(item, OdkGroup): html_questionnaire += grp_spc if isinstance(item, OdkPrompt) and item.is_section_header and \ isinstance(data['questionnaire'][index+1], OdkGroup): html_questionnaire += \ item.to_html(lang=language, **kwargs, bottom_border=True) else: html = item.to_html(lang=language, **kwargs) html_questionnaire += html prev_item = item # pylint: disable=no-member footer = TEMPLATE_ENV.get_template('footer.html')\ .render(info=None, warnings='false', # to-do: no warnings yet data=data['footer']['data'], **kwargs, settings=kwargs) html_questionnaire += footer return html_questionnaire
def to_html(self, lang=None, **kwargs): """Get the JSON representation of an entire XLSForm. Args: lang (str): The language. **highlight (bool): For color highlighting of various components of html template. **debug (bool): For inclusion of debug information to be printed in the JavaScript console. Returns: str: A full HTML representation of the XLSForm. """ language = lang if lang else self.language debug = True if 'debug' in kwargs and kwargs['debug'] else False html_questionnaire = '' data = { 'header': { 'title': self.get_title(settings=self.settings, wb=self.metadata['raw_data'], lang=lang) }, 'footer': { 'data': self.to_json(pretty=True) if debug else 'false' }, 'questionnaire': self.questionnaire } # - Render Header # pylint: disable=no-member header = TEMPLATE_ENV.get_template('header.html')\ .render(data=data['header'], **kwargs) # pylint: disable=no-member grp_spc = TEMPLATE_ENV\ .get_template('content/group/group-spacing.html').render() html_questionnaire += header # - Render Body prev_item = None hlt = kwargs['highlight'] if 'highlight' in kwargs else False for index, item in enumerate(data['questionnaire']): if exclusion(item=item, settings=kwargs): continue if prev_item is not None and isinstance(item, OdkGroup): html_questionnaire += grp_spc elif isinstance(prev_item, OdkGroup) \ and not isinstance(item, OdkGroup): html_questionnaire += grp_spc if isinstance(item, OdkPrompt) and item.is_section_header and \ isinstance(data['questionnaire'][index+1], OdkGroup): html_questionnaire += \ item.to_html(language, hlt, **kwargs, bottom_border=True) else: html_questionnaire += item.to_html(language, hlt, **kwargs) prev_item = item OdkForm.warnings = OdkForm.warnings if OdkForm.warnings else 'false' # pylint: disable=no-member footer = TEMPLATE_ENV.get_template('footer.html')\ .render(info=None, warnings=OdkForm.warnings, data=data['footer']['data'], **kwargs) html_questionnaire += footer return html_questionnaire