def _add_jinja2env_globals(self, env): """Helper to provide additional Globals to Jinja2 Environment. This should be considered one time initialisation. Example:: env.globals['bottommenuurl'] = '/admin/' env.globals['bottommenuaddon'] = '<i class="fa fa-area-chart"></i> Admin' env.globals['profiler_includes'] = gae_mini_profiler.templatetags.profiler_includes """ if not gaetkconfig.APP_NAME: gaetkconfig.APP_NAME = get_application_id().capitalize() env.globals.update( dict( gaetk_production=is_production(), gaetk_development=is_development(), gaetk_release=get_release(), gaetk_app_name=gaetkconfig.APP_NAME, gaetk_sentry_dsn=gaetkconfig.SENTRY_PUBLIC_DSN, gaetk_gae_version=os.environ.get('CURRENT_VERSION_ID', 'dev'), )) return env
def get(self): """Import all Modules.""" for fname in [ 'app-uploaded.yaml', 'lib/appengine-toolkit2/include.yaml' ]: appyaml = yaml.safe_load(open(fname)) for handler in appyaml['handlers']: if 'script' not in handler: continue mod = handler['script'].split('.') mod = '.'.join(mod[:-1]) url = handler.get('url') if mod not in ('gaetk2.views.load_into_bigquery', ): LOGGER.info('importing %s from %s', mod, url) __import__(mod) self.return_text( json.dumps({ 'get_release': get_release(), 'get_revision': get_revision(), 'get_version': get_version(), 'is_development': is_development(), 'is_production': is_production(), }))
def add_jinja2env_globals(self, env): """Set variables to be used in the supplied bootstrap templates.""" sup = super(Gaetk1Mixin, self) if hasattr(sup, 'add_jinja2env_globals'): sup.add_jinja2env_globals(env) env.globals['ist_produktion'] = is_production( ) # TODO: use `gaetk_production` env.globals['beta_banner'] = '' env.globals['release'] = get_release() # if not is_production(): # # from https://codepen.io/eode9/pen/twkKm # env.globals['beta_banner'] = ( # '<style>.corner-ribbon{z-index: 1001; width: 200px; background: #e43; position: absolute;' # 'top: 25px; left: -50px; text-align: center; line-height: 50px;' # 'letter-spacing: 1px; color: #f0f0f0; transform: rotate(-45deg);' # '-webkit-transform: rotate(-45deg); }\n' # '.corner-ribbon.sticky{ position: fixed; }\n' # '.corner-ribbon.shadow{ box-shadow: 0 0 3px rgba(0,0,0,.3); }\n' # '.corner-ribbon.bottom-right{ top: auto; right: -50px; bottom: 25px;' # 'left: auto; transform: rotate(-45deg); -webkit-transform: rotate(-45deg);}\n' # '.corner-ribbon.red{background: #e43;}\n' # '</style><div class="corner-ribbon bottom-right sticky red shadow">Development</div>') return env
def get(self): """Returns the current release.""" self.return_text(get_release())
def http_context(*args, **kwargs): return if gaetkconfig.SENTRY_DSN and os.environ.get( 'SERVER_SOFTWARE', '').startswith('Google App Engine'): import raven import raven.breadcrumbs from raven.transport.http import HTTPTransport if True: # see https://docs.sentry.io/clients/python/advanced/ sentry_client = raven.Client( gaetkconfig.SENTRY_DSN, release=get_release(), transport=HTTPTransport, tags={ 'MODULE_ID': os.environ.get('CURRENT_MODULE_ID'), 'VERSION_ID': os.environ.get('CURRENT_VERSION_ID'), 'APPLICATION_ID': os.environ.get('APPLICATION_ID'), 'GAE_RUNTIME': os.environ.get('GAE_RUNTIME'), 'GAE_ENV': os.environ.get('GAE_ENV'), }, # This results in crashes # repos={ # 'huExpress': { # # the name of the repository as registered in Sentry # 'name': 'hudora/huExpress', # 'commit': get_revision() # }