import logging

from google.appengine.api import users
from google.appengine.ext import webapp

from airspeed import CachingFileLoader

class GenericPage(webapp.RequestHandler):
  def get(self):
    user = users.get_current_user()

    logging.info('user:'+str(user))

#    if user:
    self.execute(user, self.request, self.response)
#    else:
#      self.redirect(users.create_login_url(self.request.uri))

  def execute(self, user, req, resp):
    pass

class TemplatePage(GenericPage):
  def execute(self, user, req, resp):
    loader = CachingFileLoader("templates")
    templateName=self.__class__.__name__.lower()
    if templateName[-4:]=='page':
      templateName=templateName[:-4]
    templateName=templateName+".vm"
    template = loader.load_template(templateName)
    context={}
    context['user']=user
    self.processContext(user, req, resp, context)
    body=template.merge(context, loader=loader)
    resp.headers['Content-Type']='text/html'
    resp.out.write(body)

  def processContext(user, req, resp, context):
    pass
