def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ engine = engine_from_config(settings, 'sqlalchemy.') initialize_sql(engine) theme = Setting.fetch_value('theme') def find_renderer(template_file, theme=theme): return 'flickfolio:templates/%s/%s' % (theme, template_file) set_cache_regions_from_settings(settings) session_factory = UnencryptedCookieSessionFactoryConfig(Setting.fetch_value('secret')) config = Configurator(root_factory=Root, settings=settings, session_factory=session_factory) config.add_route('index','/') config.add_route('photosets','/photosets') config.add_route('photoset','/photoset/{id}') config.add_route('photo','/photo/{id}') config.add_route('page','/page/{slug}') config.add_route('edit_page','/edit_page/{slug}') config.add_route('dashboard','/dashboard') config.add_view('flickfolio.views.index_view', route_name='index', renderer=find_renderer('index.mako')) config.add_view('flickfolio.views.photosets_view', route_name='photosets', renderer='json') config.add_view('flickfolio.views.photoset_view', route_name='photoset', renderer=find_renderer('photoset.mako')) config.add_view('flickfolio.views.photo_view', route_name='photo', renderer=find_renderer('photo.mako')) config.add_view('flickfolio.views.page_view', route_name='page', renderer=find_renderer('page.mako')) config.add_view('flickfolio.views.edit_page_view', route_name='edit_page', renderer=find_renderer('edit_page.mako', '_admin')) config.add_view('flickfolio.views.dashboard_view', route_name='dashboard', renderer=find_renderer('dashboard.mako', '_admin')) config.add_static_view('static','flickfolio:static/%s' % theme) config.scan() return config.make_wsgi_app()
def setUp(self): self.config = testing.setUp() engine = create_engine('sqlite://') DBSession.configure(bind=engine) Base.metadata.create_all(engine) with transaction.manager: user_id = Setting('user_id', u'69299557@N06') user_id.save() api_key = Setting('api_key', u'ac8a809ec0883c39965836a9eaf9f04d') api_key.save()
def dashboard_view(request): return { 'pages': Page.fetchAll(), 'settings': Setting.fetch_all() }
def _fetch_posts(): GooglePlusPost.API_KEY = Setting.fetch_value('google_api_key') GooglePlusPost.USER_ID = Setting.fetch_value('google_user_id') posts = GooglePlusPost.fetch_all() return posts
import locale from pyramid.httpexceptions import HTTPFound from pyramid.i18n import get_locale_name from beaker.cache import cache_region from flickfolio.models import Page, Setting, GooglePlusPost from flickfolio.photo import Photoset, Photo, set_cridentials set_cridentials(Setting.fetch_value('api_key'), Setting.fetch_value('user_id')) @cache_region('long_term', 'posts') def _fetch_posts(): GooglePlusPost.API_KEY = Setting.fetch_value('google_api_key') GooglePlusPost.USER_ID = Setting.fetch_value('google_user_id') posts = GooglePlusPost.fetch_all() return posts def index_view(request): """List Google+ posts""" locale.setlocale(locale.LC_TIME, get_locale_name(request)) return {'posts': _fetch_posts()} def photosets_view(request): """List photosets in JSON format""" return { 'photosets': Photoset.fetch_all(True) } def photoset_view(request): id = request.matchdict['id']