def GenerateReport(self, exceptions): """Generates an HTML exception report. Args: exceptions: A list of ExceptionRecord objects. This argument will be modified by this function. Returns: An HTML exception report. """ exceptions.sort(key=lambda e: (e.minor_version, -e.count)) versions = [(minor, list(excs)) for minor, excs in itertools.groupby(exceptions, lambda e: e.minor_version)] template_values = { 'version_filter': self.version_filter, 'version_count': len(versions), 'exception_count': sum(len(excs) for _, excs in versions), 'occurrence_count': sum(y.count for x in versions for y in x[1]), 'app_id': self.app_id, 'major_version': self.major_version, 'date': self.yesterday, 'versions': versions, } path = os.path.join(os.path.dirname(__file__), 'templates', 'report.html') return _template.render(path, template_values)
def GenerateReport(self, exceptions): """Generates an HTML exception report. Args: exceptions: A list of ExceptionRecord objects. This argument will be modified by this function. Returns: An HTML exception report. """ exceptions.sort(key=lambda e: (e.minor_version, -e.count)) versions = [(minor, list(excs)) for minor, excs in itertools.groupby(exceptions, lambda e: "%s.%s" % (e.major_version, e.minor_version))] template_values = { 'version_filter': self.version_filter, 'version_count': len(versions), 'exception_count': sum(len(excs) for _, excs in versions), 'occurrence_count': sum(y.count for x in versions for y in x[1]), 'app_id': self.app_id, 'major_version': self.major_version, 'date': self.yesterday, 'versions': versions, } path = os.path.join(os.path.dirname(__file__), 'templates', 'report.html') return _template.render(path, template_values)
def render(tmplname, data): """Helper function to render a template.""" here = os.path.dirname(__file__) tmpl = os.path.join(here, 'templates', tmplname) data['env'] = os.environ try: return _template.render(tmpl, data) except Exception, err: logging.exception('Failed to render %s', tmpl) return 'Problematic template %s: %s' % (tmplname, err)
def RenderToResponse(handler, template_file, template_params): """Render the given template_file using template_vals and write to response. Args: handler: the handler whose response we should render to template_file: the file name only of the template file we are using template_params: the parameters used to render the given template """ template_params = _GetDefaultParams(template_params) rendered = _template.render(_GetTemplatePath(template_file), template_params) handler.response.out.write(rendered)
def render(tmplname, data): """Helper function to render a template.""" here = os.path.dirname(__file__) tmpl = os.path.join(here, 'templates', tmplname) data['env'] = os.environ data['shell_ok'] = recording.config.SHELL_OK data['multithread'] = os.getenv('wsgi.multithread') try: return _template.render(tmpl, data) except Exception as err: logging.exception('Failed to render %s', tmpl) return 'Problematic template %s: %s' % (tmplname, err)
def render(tmplname, data): """Helper function to render a template.""" here = os.path.dirname(__file__) tmpl = os.path.join(here, 'templates', tmplname) data['env'] = os.environ data['shell_ok'] = recording.config.SHELL_OK data['multithread'] = os.getenv('wsgi.multithread') try: return _template.render(tmpl, data) except Exception, err: logging.exception('Failed to render %s', tmpl) return 'Problematic template %s: %s' % (tmplname, err)
def RenderToResponse(handler, template_file, template_params): """Render the given template_file using template_vals and write to response. Args: handler: the handler whose response we should render to template_file: the file name only of the template file we are using template_params: the parameters used to render the given template """ template_params = _GetDefaultParams(template_params) handler.response.headers['X-FRAME-OPTIONS'] = ('ALLOW-FROM %s' % config.ADMIN_CONSOLE_URL) template_params['admin_console_url'] = config.ADMIN_CONSOLE_URL rendered = _template.render(_GetTemplatePath(template_file), template_params) handler.response.out.write(rendered)