예제 #1
0
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()
예제 #2
0
 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()
예제 #3
0
파일: views.py 프로젝트: yentsun/flickfolio
def dashboard_view(request):
    return {
        'pages': Page.fetchAll(),
        'settings': Setting.fetch_all()
    }
예제 #4
0
파일: views.py 프로젝트: yentsun/flickfolio
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
예제 #5
0
파일: views.py 프로젝트: yentsun/flickfolio
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']