def render(self, template_name, passed_vars, response_code = 200, response_type=False, prettyPrint=False, template_set='app', template_theme=None): """Main render helper function. Wraps other rendering functions """ if not response_type: response_type = self.request.response_type() prettyPrint = bool(self.request.get('prettyPrint', False)) if hasmethod(self, 'template_wrapper'): passed_vars = self.template_wrapper(variables = passed_vars) if response_type in ['xml', 'json']: serial_f = getattr(sketch.serialize, response_type) content = serial_f(passed_vars, pretty = prettyPrint) self.response.headers['Content-Type'] = "application/%s; charset=utf-8" % (response_type) else: sketch.jinja.setup(self.config.paths.templates) passed_vars = self.get_template_vars(passed_vars) passed_vars = self.get_plugin_vars(passed_vars) # fixing.. if hasattr(self, 'template_folder'): template_theme = getmethattr(self, 'template_folder') content = sketch.jinja.render(template_name, passed_vars, template_theme=template_theme, template_set=template_set) self.render_content(content, response_code)
def get_template_vars(self, template_vars): if type(template_vars) != dict: template_vars = {'_vars': template_vars} additional = { # 'session': self.session, # 'user': False, # 'title': 'test' # 'title': self.conf_get('title') } # if 'auth' in self.session: # additional['loggedin'] = True # additional['username'] = self.session.get('username', '') # additional['user'] = self.user # # if self.message: # additional['message'] = self.message # additional['message_type'] = self.message_type # additional['message_class'] = self.message_class if hasmethod(self, 'template_wrapper'): template_vars = self.template_wrapper(variables=template_vars) additional = self.get_javascripts(additional) additional = self.get_styles(additional) return dict(template_vars, **additional)