Source code for fireblog.renderer_globals
from pyramid.events import BeforeRender
import fireblog.utils as utils
from fireblog.settings import settings_dict
from fireblog.models import (
DBSession,
Users
)
import functools
import logging
log = logging.getLogger(__name__)
[docs]def get_bower_url(request, path_to_resource: str) -> str:
"""Generate a url which points to the supplied path_or_resource.
The path_or_resource must exist in the /bower_components folder which is
located ../../bower_components relative to the file this function is in."""
asset = 'fireblog:../bower_components/' + path_to_resource
return request.static_url(asset)
[docs]def get_username(email_address: str):
"""Gets the username associated with the supplied email address from the
db."""
user = DBSession.query(Users.userid, Users.username).filter_by(
userid=email_address).first()
if not user:
log.info('Did not get username for email {}'.format(email_address))
return ''
return user.username
[docs]def add_renderer_globals(event):
event['settings_dict'] = settings_dict
event['urlify'] = utils.urlify
event['get_username'] = get_username
event['get_bower_url'] = functools.partial(get_bower_url, event['request'])
[docs]def includeme(config):
config.add_subscriber(add_renderer_globals, BeforeRender)