Changeset 3581 for sample

Show
Ignore:
Timestamp:
06/24/10 09:10:37 (2 years ago)
Author:
elemoine
Message:

base Map Fish Sample? on Pylons 1.0 and Map Fish? 2.0 (related to #575), r=bbinet

Location:
sample/trunk
Files:
21 modified

Legend:

Unmodified
Added
Removed
  • sample/trunk/buildout.cfg

    r3570 r3581  
    11[buildout] 
    2 parts = eggs activate print modwsgi template jsbuild 
     2#parts = eggs activate print modwsgi template jsbuild 
     3parts = template jsbuild 
    34develop = . MapFish GeoFormAlchemy/GeoFormAlchemy 
    45newest = false 
  • sample/trunk/mapfishsample/config/environment.py

    r1590 r3581  
    44from mako.lookup import TemplateLookup 
    55from pylons.error import handle_mako_error 
    6 from pylons import config 
     6from pylons.configuration import PylonsConfig 
    77from sqlalchemy import engine_from_config 
    88 
     
    1616    object 
    1717    """ 
     18    config = PylonsConfig() 
     19 
    1820    # Pylons paths 
    1921    root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
     
    2628    config.init_app(global_conf, app_conf, package='mapfishsample', paths=paths) 
    2729 
    28     config['routes.map'] = make_map() 
    29     config['pylons.app_globals'] = app_globals.Globals() 
     30    config['routes.map'] = make_map(config) 
     31    config['pylons.app_globals'] = app_globals.Globals(config) 
    3032    config['pylons.h'] = mapfishsample.lib.helpers 
     33 
     34    # Setup cache object as early as possible 
     35    import pylons 
     36    pylons.cache._push_object(config['pylons.app_globals'].cache) 
    3137 
    3238    # Create the Mako TemplateLookup, with the default auto-escaping 
     
    3844        imports=['from webhelpers.html import escape'], 
    3945        default_filters=['escape']) 
    40      
     46 
    4147    # Setup SQLAlchemy database engine 
    4248    engine = engine_from_config(config, 'sqlalchemy.') 
    4349    init_model(engine) 
    44      
     50 
    4551    # CONFIGURATION OPTIONS HERE (note: all config options will override 
    4652    # any Pylons config options) 
     53 
     54    return config 
  • sample/trunk/mapfishsample/config/middleware.py

    r1590 r3581  
    3232    """ 
    3333    # Configure the Pylons environment 
    34     load_environment(global_conf, app_conf) 
     34    config = load_environment(global_conf, app_conf) 
    3535 
    3636    # The Pylons WSGI app 
    37     app = PylonsApp() 
     37    app = PylonsApp(config=config) 
    3838     
    3939    # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares) 
     
    4242    app = RoutesMiddleware(app, config['routes.map']) 
    4343    app = SessionMiddleware(app, config) 
    44     app = CacheMiddleware(app, config) 
    45      
     44 
    4645    if asbool(full_stack): 
    4746        # Handle Python exceptions 
     
    6160    # server is handling this static content, remove the following 2 lines) 
    6261    static_app = StaticURLParser(config['pylons.paths']['static_files']) 
     62 
    6363    app = Cascade([static_app, app]) 
     64 
     65    app.config = config 
     66 
    6467    return app 
  • sample/trunk/mapfishsample/config/routing.py

    r3570 r3581  
    99from mapfish.controllers import printer 
    1010 
    11 def make_map(): 
     11def make_map(config): 
    1212    """Create, configure and return the routes Mapper""" 
    1313    map = Mapper(directory=config['pylons.paths']['controllers'], 
  • sample/trunk/mapfishsample/controllers/cities.py

    r2308 r3581  
    1919 
    2020from pylons import request, response, session, tmpl_context as c 
    21 from pylons.controllers.util import abort, redirect_to 
     21from pylons.controllers.util import abort, redirect 
    2222 
    2323from mapfishsample.lib.base import BaseController 
  • sample/trunk/mapfishsample/controllers/countries.py

    r2308 r3581  
    1919 
    2020from pylons import request, response, session, tmpl_context as c 
    21 from pylons.controllers.util import abort, redirect_to 
     21from pylons.controllers.util import abort, redirect 
    2222 
    2323from mapfishsample.lib.base import BaseController 
  • sample/trunk/mapfishsample/controllers/epfl.py

    r3570 r3581  
    2121 
    2222from pylons import request, response, session, tmpl_context as c 
    23 from pylons.controllers.util import abort, redirect_to 
     23from pylons.controllers.util import abort, redirect 
    2424from pylons.decorators import jsonify 
    2525 
  • sample/trunk/mapfishsample/controllers/lines.py

    r2308 r3581  
    1919 
    2020from pylons import request, response, session, tmpl_context as c 
    21 from pylons.controllers.util import abort, redirect_to 
     21from pylons.controllers.util import abort, redirect 
    2222 
    2323from mapfishsample.lib.base import BaseController 
  • sample/trunk/mapfishsample/controllers/points.py

    r2308 r3581  
    1919 
    2020from pylons import request, response, session, tmpl_context as c 
    21 from pylons.controllers.util import abort, redirect_to 
     21from pylons.controllers.util import abort, redirect 
    2222 
    2323from mapfishsample.lib.base import BaseController 
  • sample/trunk/mapfishsample/controllers/polygons.py

    r2308 r3581  
    1919 
    2020from pylons import request, response, session, tmpl_context as c 
    21 from pylons.controllers.util import abort, redirect_to 
     21from pylons.controllers.util import abort, redirect 
    2222 
    2323from mapfishsample.lib.base import BaseController 
  • sample/trunk/mapfishsample/controllers/summits.py

    r2718 r3581  
    1919 
    2020from pylons import request, response, session, tmpl_context as c 
    21 from pylons.controllers.util import abort, redirect_to 
     21from pylons.controllers.util import abort, redirect 
    2222 
    2323from mapfishsample.lib.base import BaseController 
  • sample/trunk/mapfishsample/lib/app_globals.py

    r1590 r3581  
    11"""The application's Globals object""" 
     2 
     3from beaker.cache import CacheManager 
     4from beaker.util import parse_cache_config_options 
    25 
    36class Globals(object): 
     
    69 
    710    """ 
    8     def __init__(self): 
     11    def __init__(self, config): 
    912        """One instance of Globals is created during application 
    1013        initialization and is available during requests via the 
     
    1215 
    1316        """ 
    14         pass 
     17        self.cache = CacheManager(**parse_cache_config_options(config)) 
  • sample/trunk/mapfishsample/lib/base.py

    r1590 r3581  
    66from pylons.templating import render_mako as render 
    77 
    8 from mapfishsample.model import meta 
     8from mapfishsample.model.meta import Session 
    99 
    1010class BaseController(WSGIController): 
     
    1818            return WSGIController.__call__(self, environ, start_response) 
    1919        finally: 
    20             meta.Session.remove() 
     20            Session.remove() 
    2121         
  • sample/trunk/mapfishsample/model/__init__.py

    r3570 r3581  
    2626from geojson import Feature 
    2727 
    28 from mapfishsample.model import meta 
     28from mapfishsample.model.meta import Session, Base 
    2929 
    3030from mapfishsample.model.lines import Line 
     
    3535    """Call me before using any of the tables or classes in the model""" 
    3636    ## Reflected tables must be defined and mapped here 
    37     sm = orm.sessionmaker(autoflush=True, autocommit=False, bind=engine) 
    3837 
    39     meta.engine = engine 
    40     meta.Session = orm.scoped_session(sm) 
     38    Session.configure(bind=engine) 
    4139     
    4240    if isinstance(engine.dialect, SQLiteDialect): 
     
    5250                 
    5351        engine.pool.add_listener(SpatialiteConnectionListener())  
    54          
  • sample/trunk/mapfishsample/model/cities.py

    r3570 r3581  
    2121 
    2222from mapfish.sqlalchemygeom import GeometryTableMixIn 
    23 from mapfishsample.model.meta import engine, Base 
     23from mapfishsample.model.meta import Session, Base 
    2424 
    2525 
     
    2828    __table_args__ = { 
    2929            'autoload' : True, 
    30             'autoload_with' : engine 
     30            'autoload_with' : Session.bind 
    3131        } 
    3232     
  • sample/trunk/mapfishsample/model/countries.py

    r3570 r3581  
    2323 
    2424from mapfish.sqlalchemygeom import GeometryTableMixIn 
    25 from mapfishsample.model.meta import engine, Base 
     25from mapfishsample.model.meta import Session, Base 
    2626 
    2727 
     
    3030    __table_args__ = { 
    3131            'autoload' : True, 
    32             'autoload_with' : engine 
     32            'autoload_with' : Session.bind 
    3333        } 
    3434     
  • sample/trunk/mapfishsample/model/epfl.py

    r3570 r3581  
    2121 
    2222from mapfish.sqlalchemygeom import GeometryTableMixIn 
    23 from mapfishsample.model.meta import engine, Base 
     23from mapfishsample.model.meta import Session, Base 
    2424 
    2525from geojson import Feature 
     
    3030    __table_args__ = { 
    3131            'autoload' : True, 
    32             'autoload_with' : engine 
     32            'autoload_with' : Session.bind 
    3333        } 
    3434     
  • sample/trunk/mapfishsample/model/meta.py

    r3570 r3581  
    11"""SQLAlchemy Metadata and Session object""" 
    2 from sqlalchemy import MetaData 
    32from sqlalchemy.orm import scoped_session, sessionmaker 
    43from sqlalchemy.ext.declarative import declarative_base 
    54 
    6 __all__ = ['Session', 'metadata', 'Base'] 
    7  
    8 # SQLAlchemy database engine.  Updated by model.init_model() 
    9 engine = None 
     5__all__ = ['Session', 'Base'] 
    106 
    117# SQLAlchemy session manager.  Updated by model.init_model() 
    12 Session = None 
     8Session = scoped_session(sessionmaker()) 
    139 
    14 # Global metadata. If you have multiple databases with overlapping table 
    15 # names, you'll need a metadata for each database 
    16 metadata = MetaData() 
    17  
    18 Base = declarative_base(metadata=metadata) 
     10# The declarative Base 
     11Base = declarative_base() 
  • sample/trunk/mapfishsample/model/summits.py

    r3570 r3581  
    2121 
    2222from mapfish.sqlalchemygeom import GeometryTableMixIn 
    23 from mapfishsample.model.meta import engine, Base 
     23from mapfishsample.model.meta import Session, Base 
    2424 
    2525 
     
    2828    __table_args__ = { 
    2929            'autoload' : True, 
    30             'autoload_with' : engine 
     30            'autoload_with' : Session.bind 
    3131        } 
    3232     
  • sample/trunk/mapfishsample/tests/__init__.py

    r3570 r3581  
    1212from paste.deploy import loadapp 
    1313from paste.script.appinstall import SetupCommand 
    14 from pylons import config, url 
     14from pylons import url 
    1515from routes.util import URLGenerator 
    1616from webtest import TestApp 
     
    2121 
    2222# Invoke websetup with the current config file 
    23 SetupCommand('setup-app').run([config['__file__']]) 
     23SetupCommand('setup-app').run([pylons.test.pylonsapp.config['__file__']]) 
    2424 
    2525environ = {} 
     
    2828 
    2929    def __init__(self, *args, **kwargs): 
    30         if pylons.test.pylonsapp: 
    31             wsgiapp = pylons.test.pylonsapp 
    32         else: 
    33             wsgiapp = loadapp('config:%s' % config['__file__']) 
     30        wsgiapp = pylons.test.pylonsapp 
     31        config = wsgiapp.config 
    3432        self.app = TestApp(wsgiapp) 
    3533        url._push_object(URLGenerator(config['routes.map'], environ)) 
  • sample/trunk/mapfishsample/websetup.py

    r3570 r3581  
    22import logging 
    33 
     4import pylons 
     5 
    46from mapfishsample.config.environment import load_environment 
    5 from mapfishsample.model import meta 
     7from mapfishsample.model.meta import Session, Base 
    68 
    79log = logging.getLogger(__name__) 
     
    1315    paster setup-app development.ini [--name=main_pylons] 
    1416    """ 
    15     load_environment(conf.global_conf, conf.local_conf) 
     17    # Don't reload the app if it was loaded under the testing environment 
     18    if not pylons.test.pylonsapp: 
     19        load_environment(conf.global_conf, conf.local_conf) 
    1620 
    1721    # Create the tables for the editing example (if they aren't there already) 
    18     meta.metadata.create_all(bind=meta.engine) 
     22    Base.metadata.create_all(bind=Session.bind)