def initialize(self, request, response): webapp.RequestHandler.initialize(self, request, response) os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' from BLOG.model import g_blog,User self.blog = g_blog self.login_user = users.get_current_user() self.is_login = (self.login_user != None) self.loginurl=users.create_login_url(self.request.uri) self.logouturl=users.create_logout_url(self.request.uri) self.is_admin = users.is_current_user_admin() if self.is_admin: self.auth = 'admin' self.author=User.all().filter('email =',self.login_user.email()).get() if not self.author: self.author=User(dispname=self.login_user.nickname(),email=self.login_user.email()) self.author.isadmin=True self.author.user=self.login_user self.author.put() elif self.is_login: self.author=User.all().filter('email =',self.login_user.email()).get() if self.author: self.auth='author' else: self.auth = 'login' else: self.auth = 'guest' try: self.referer = self.request.headers['referer'] except: self.referer = None self.template_vals = {'self':self,'blog':self.blog,'current':self.current}
class BaseRequestHandler(webapp.RequestHandler): def __init__(self): self.current='home' ## def head(self, *args): ## return self.get(*args) def initialize(self, request, response): webapp.RequestHandler.initialize(self, request, response) os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' from BLOG.model import g_blog,User self.blog = g_blog self.login_user = users.get_current_user() self.is_login = (self.login_user != None) self.loginurl=users.create_login_url(self.request.uri) self.logouturl=users.create_logout_url(self.request.uri) self.is_admin = users.is_current_user_admin() if self.is_admin: self.auth = 'admin' self.author=User.all().filter('email =',self.login_user.email()).get() if not self.author: self.author=User(dispname=self.login_user.nickname(),email=self.login_user.email()) self.author.isadmin=True self.author.user=self.login_user self.author.put() elif self.is_login: self.author=User.all().filter('email =',self.login_user.email()).get() if self.author: self.auth='author' else: self.auth = 'login' else: self.auth = 'guest' try: self.referer = self.request.headers['referer'] except: self.referer = None self.template_vals = {'self':self,'blog':self.blog,'current':self.current} def __before__(self,*args): pass def __after__(self,*args): pass def error(self,errorcode,message='an error occured'): if errorcode == 404: message = 'Sorry, we were not able to find the requested page. We have logged this error and will look into it.' elif errorcode == 403: message = 'Sorry, that page is reserved for administrators. ' elif errorcode == 500: message = "Sorry, the server encountered an error. We have logged this error and will look into it." message+="<p><pre>"+traceback.format_exc()+"</pre><br></p>" self.template_vals.update( {'errorcode':errorcode,'message':message}) if errorcode>0: self.response.set_status(errorcode) #errorfile=getattr(self.blog.theme,'error'+str(errorcode)) #logging.debug(errorfile) ## if not errorfile: ## errorfile=self.blog.theme.error errorfile='error'+str(errorcode)+".html" try: content=micolog_template.render(self.blog.theme,errorfile, self.template_vals) except TemplateDoesNotExist: try: content=micolog_template.render(self.blog.theme,"error.html", self.template_vals) except TemplateDoesNotExist: content=micolog_template.render(self.blog.default_theme,"error.html", self.template_vals) except: content=message self.response.out.write(content) def get_render(self,template_file,values): template_file=template_file+".html" self.template_vals.update(values) try: #sfile=getattr(self.blog.theme, template_file) logging.debug("get_render:"+template_file) html = micolog_template.render(self.blog.theme, template_file, self.template_vals) except TemplateDoesNotExist: #sfile=getattr(self.blog.default_theme, template_file) html = micolog_template.render(self.blog.default_theme, template_file, self.template_vals) return html def render(self,template_file,values): """ Helper method to render the appropriate template """ html=self.get_render(template_file,values) self.response.out.write(html) def message(self,msg,returl=None,title='Infomation'): self.render('msg',{'message':msg,'title':title,'returl':returl}) def render2(self,template_file,template_vals={}): """ Helper method to render the appropriate template """ self.template_vals.update(template_vals) path = os.path.join(os.path.dirname(__file__), template_file) self.response.out.write(template.render(path, self.template_vals)) def param(self, name, **kw): return self.request.get(name, **kw) def paramint(self, name, default=0): try: return int(self.request.get(name)) except: return default def parambool(self, name, default=False): try: return self.request.get(name)=='on' except: return default def write(self, s): self.response.out.write(s) def chk_login(self, redirect_url='/'): if self.is_login: return True else: self.redirect(redirect_url) return False def chk_admin(self, redirect_url='/'): if self.is_admin: return True else: self.redirect(redirect_url) return False