Move Pylons implementation to attic
This commit is contained in:
		
							parent
							
								
									1e219ee992
								
							
						
					
					
						commit
						7c21e449d4
					
				
					 5 changed files with 0 additions and 0 deletions
				
			
		
							
								
								
									
										22
									
								
								attic/config/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								attic/config/__init__.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
# -*- python -*-
 | 
			
		||||
# -*- coding: utf-8 -*-
 | 
			
		||||
#
 | 
			
		||||
# Debian Member Portfolio Service config package
 | 
			
		||||
#
 | 
			
		||||
# Copyright © 2009-2014 Jan Dittberner <jan@dittberner.info>
 | 
			
		||||
#
 | 
			
		||||
# This file is part of the Debian Member Portfolio Service.
 | 
			
		||||
#
 | 
			
		||||
# Debian Member Portfolio Service is free software: you can redistribute it
 | 
			
		||||
# and/or modify it under the terms of the GNU Affero General Public License as
 | 
			
		||||
# published by the Free Software Foundation, either version 3 of the License,
 | 
			
		||||
# or (at your option) any later version.
 | 
			
		||||
#
 | 
			
		||||
# Debian Member Portfolio Service is distributed in the hope that it will be
 | 
			
		||||
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero
 | 
			
		||||
# General Public License for more details.
 | 
			
		||||
#
 | 
			
		||||
# You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
#
 | 
			
		||||
							
								
								
									
										60
									
								
								attic/config/deployment.ini_tmpl
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								attic/config/deployment.ini_tmpl
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,60 @@
 | 
			
		|||
#
 | 
			
		||||
# Debian Member Portfolio Service - Pylons configuration
 | 
			
		||||
#
 | 
			
		||||
# The %(here)s variable will be replaced with the parent directory of this file
 | 
			
		||||
#
 | 
			
		||||
[DEFAULT]
 | 
			
		||||
debug = true
 | 
			
		||||
email_to = you@yourdomain.com
 | 
			
		||||
smtp_server = localhost
 | 
			
		||||
error_email_from = paste@localhost
 | 
			
		||||
 | 
			
		||||
[server:main]
 | 
			
		||||
use = egg:Paste#http
 | 
			
		||||
host = 0.0.0.0
 | 
			
		||||
port = 5000
 | 
			
		||||
 | 
			
		||||
[app:main]
 | 
			
		||||
use = egg:debianmemberportfolio
 | 
			
		||||
full_stack = true
 | 
			
		||||
static_files = true
 | 
			
		||||
 | 
			
		||||
cache_dir = %(here)s/data
 | 
			
		||||
beaker.session.key = debianmemberportfolio
 | 
			
		||||
beaker.session.secret = ${app_instance_secret}
 | 
			
		||||
app_instance_uuid = ${app_instance_uuid}
 | 
			
		||||
 | 
			
		||||
# If you'd like to fine-tune the individual locations of the cache data dirs
 | 
			
		||||
# for the Cache data, or the Session saves, un-comment the desired settings
 | 
			
		||||
# here:
 | 
			
		||||
#beaker.cache.data_dir = %(here)s/data/cache
 | 
			
		||||
#beaker.session.data_dir = %(here)s/data/sessions
 | 
			
		||||
 | 
			
		||||
# WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT*
 | 
			
		||||
# Debug mode will enable the interactive debugging tool, allowing ANYONE to
 | 
			
		||||
# execute malicious code after an exception is raised.
 | 
			
		||||
set debug = false
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Logging configuration
 | 
			
		||||
[loggers]
 | 
			
		||||
keys = root
 | 
			
		||||
 | 
			
		||||
[handlers]
 | 
			
		||||
keys = console
 | 
			
		||||
 | 
			
		||||
[formatters]
 | 
			
		||||
keys = generic
 | 
			
		||||
 | 
			
		||||
[logger_root]
 | 
			
		||||
level = INFO
 | 
			
		||||
handlers = console
 | 
			
		||||
 | 
			
		||||
[handler_console]
 | 
			
		||||
class = StreamHandler
 | 
			
		||||
args = (sys.stderr,)
 | 
			
		||||
level = NOTSET
 | 
			
		||||
formatter = generic
 | 
			
		||||
 | 
			
		||||
[formatter_generic]
 | 
			
		||||
format = %(asctime)s %(levelname)-5.5s [%(name)s] [%(threadName)s] %(message)s
 | 
			
		||||
							
								
								
									
										75
									
								
								attic/config/environment.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								attic/config/environment.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,75 @@
 | 
			
		|||
# -*- python -*-
 | 
			
		||||
# -*- coding: utf-8 -*-
 | 
			
		||||
#
 | 
			
		||||
# Debian Member Portfolio Service environment configuration
 | 
			
		||||
#
 | 
			
		||||
# Copyright © 2009-2014 Jan Dittberner <jan@dittberner.info>
 | 
			
		||||
#
 | 
			
		||||
# This file is part of the Debian Member Portfolio Service.
 | 
			
		||||
#
 | 
			
		||||
# Debian Member Portfolio Service is free software: you can redistribute it
 | 
			
		||||
# and/or modify it under the terms of the GNU Affero General Public License as
 | 
			
		||||
# published by the Free Software Foundation, either version 3 of the License,
 | 
			
		||||
# or (at your option) any later version.
 | 
			
		||||
#
 | 
			
		||||
# Debian Member Portfolio Service is distributed in the hope that it will be
 | 
			
		||||
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero
 | 
			
		||||
# General Public License for more details.
 | 
			
		||||
#
 | 
			
		||||
# You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
#
 | 
			
		||||
"""
 | 
			
		||||
Pylons environment configuration
 | 
			
		||||
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
 | 
			
		||||
from mako.lookup import TemplateLookup
 | 
			
		||||
from pylons.configuration import PylonsConfig
 | 
			
		||||
from pylons.error import handle_mako_error
 | 
			
		||||
 | 
			
		||||
import debianmemberportfolio.lib.app_globals as app_globals
 | 
			
		||||
import debianmemberportfolio.lib.helpers
 | 
			
		||||
from debianmemberportfolio.config.routing import make_map
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def load_environment(global_conf, app_conf):
 | 
			
		||||
    """
 | 
			
		||||
    Configures the Pylons environment via the ``pylons.config`` object.
 | 
			
		||||
    """
 | 
			
		||||
    config = PylonsConfig()
 | 
			
		||||
 | 
			
		||||
    # Pylons paths
 | 
			
		||||
    root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 | 
			
		||||
    paths = dict(root=root,
 | 
			
		||||
                 controllers=os.path.join(root, 'controllers'),
 | 
			
		||||
                 static_files=os.path.join(root, 'public'),
 | 
			
		||||
                 templates=[os.path.join(root, 'templates')])
 | 
			
		||||
 | 
			
		||||
    # Initialize config with the basic options
 | 
			
		||||
    config.init_app(
 | 
			
		||||
        global_conf, app_conf, package='debianmemberportfolio', paths=paths)
 | 
			
		||||
 | 
			
		||||
    config['routes.map'] = make_map(config)
 | 
			
		||||
    config['pylons.app_globals'] = app_globals.Globals(config)
 | 
			
		||||
    config['pylons.h'] = debianmemberportfolio.lib.helpers
 | 
			
		||||
 | 
			
		||||
    # Setup cache object as early as possible
 | 
			
		||||
    import pylons
 | 
			
		||||
    pylons.cache._push_object(config['pylons.app_globals'].cache)
 | 
			
		||||
 | 
			
		||||
    # Create the Mako TemplateLookup, with the default auto-escaping
 | 
			
		||||
    config['pylons.app_globals'].mako_lookup = TemplateLookup(
 | 
			
		||||
        directories=paths['templates'],
 | 
			
		||||
        error_handler=handle_mako_error,
 | 
			
		||||
        module_directory=os.path.join(app_conf['cache_dir'], 'templates'),
 | 
			
		||||
        input_encoding='utf-8', default_filters=['escape'],
 | 
			
		||||
        imports=['from webhelpers.html import escape'])
 | 
			
		||||
 | 
			
		||||
    # CONFIGURATION OPTIONS HERE (note: all config options will override
 | 
			
		||||
    # any Pylons config options)
 | 
			
		||||
 | 
			
		||||
    return config
 | 
			
		||||
							
								
								
									
										95
									
								
								attic/config/middleware.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								attic/config/middleware.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,95 @@
 | 
			
		|||
# -*- python -*-
 | 
			
		||||
# -*- coding: utf-8 -*-
 | 
			
		||||
#
 | 
			
		||||
# Debian Member Portfolio Service middleware configuration
 | 
			
		||||
#
 | 
			
		||||
# Copyright © 2009-2014 Jan Dittberner <jan@dittberner.info>
 | 
			
		||||
#
 | 
			
		||||
# This file is part of the Debian Member Portfolio Service.
 | 
			
		||||
#
 | 
			
		||||
# Debian Member Portfolio Service is free software: you can redistribute it
 | 
			
		||||
# and/or modify it under the terms of the GNU Affero General Public License as
 | 
			
		||||
# published by the Free Software Foundation, either version 3 of the License,
 | 
			
		||||
# or (at your option) any later version.
 | 
			
		||||
#
 | 
			
		||||
# Debian Member Portfolio Service is distributed in the hope that it will be
 | 
			
		||||
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero
 | 
			
		||||
# General Public License for more details.
 | 
			
		||||
#
 | 
			
		||||
# You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
#
 | 
			
		||||
"""
 | 
			
		||||
Pylons middleware initialization
 | 
			
		||||
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
from beaker.middleware import SessionMiddleware
 | 
			
		||||
from paste.cascade import Cascade
 | 
			
		||||
from paste.registry import RegistryManager
 | 
			
		||||
from paste.urlparser import StaticURLParser
 | 
			
		||||
from paste.deploy.converters import asbool
 | 
			
		||||
from pylons.middleware import ErrorHandler, StatusCodeRedirect
 | 
			
		||||
from pylons.wsgiapp import PylonsApp
 | 
			
		||||
from routes.middleware import RoutesMiddleware
 | 
			
		||||
 | 
			
		||||
from debianmemberportfolio.config.environment import load_environment
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def make_app(global_conf, full_stack=True, static_files=True, **app_conf):
 | 
			
		||||
    """
 | 
			
		||||
    Create a Pylons WSGI application and return it
 | 
			
		||||
 | 
			
		||||
    ``global_conf``
 | 
			
		||||
        The inherited configuration for this application. Normally from
 | 
			
		||||
        the [DEFAULT] section of the Paste ini file.
 | 
			
		||||
 | 
			
		||||
    ``full_stack``
 | 
			
		||||
        Whether this application provides a full WSGI stack (by default,
 | 
			
		||||
        meaning it handles its own exceptions and errors). Disable
 | 
			
		||||
        full_stack when this application is "managed" by another WSGI
 | 
			
		||||
        middleware.
 | 
			
		||||
 | 
			
		||||
    ``static_files``
 | 
			
		||||
        Whether this application serves its own static files; disable
 | 
			
		||||
        when another web server is responsible for serving them.
 | 
			
		||||
 | 
			
		||||
    ``app_conf``
 | 
			
		||||
        The application's local configuration. Normally specified in
 | 
			
		||||
        the [app:<name>] section of the Paste ini file (where <name>
 | 
			
		||||
        defaults to main).
 | 
			
		||||
 | 
			
		||||
    """
 | 
			
		||||
    # Configure the Pylons environment
 | 
			
		||||
    config = load_environment(global_conf, app_conf)
 | 
			
		||||
 | 
			
		||||
    # The Pylons WSGI app
 | 
			
		||||
    app = PylonsApp(config=config)
 | 
			
		||||
 | 
			
		||||
    # Routing/Session/Cache Middleware
 | 
			
		||||
    app = RoutesMiddleware(app, config['routes.map'])
 | 
			
		||||
    app = SessionMiddleware(app, config)
 | 
			
		||||
 | 
			
		||||
    # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares)
 | 
			
		||||
 | 
			
		||||
    if asbool(full_stack):
 | 
			
		||||
        # Handle Python exceptions
 | 
			
		||||
        app = ErrorHandler(app, global_conf, **config['pylons.errorware'])
 | 
			
		||||
 | 
			
		||||
        # Display error documents for 401, 403, 404 status codes (and
 | 
			
		||||
        # 500 when debug is disabled)
 | 
			
		||||
        if asbool(config['debug']):
 | 
			
		||||
            app = StatusCodeRedirect(app)
 | 
			
		||||
        else:
 | 
			
		||||
            app = StatusCodeRedirect(app, [400, 401, 403, 404, 500])
 | 
			
		||||
 | 
			
		||||
    # Establish the Registry for this application
 | 
			
		||||
    app = RegistryManager(app)
 | 
			
		||||
 | 
			
		||||
    if asbool(static_files):
 | 
			
		||||
        # Serve static files
 | 
			
		||||
        static_app = StaticURLParser(config['pylons.paths']['static_files'])
 | 
			
		||||
        app = Cascade([static_app, app])
 | 
			
		||||
    app.config = config
 | 
			
		||||
    return app
 | 
			
		||||
							
								
								
									
										58
									
								
								attic/config/routing.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								attic/config/routing.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,58 @@
 | 
			
		|||
# -*- python -*-
 | 
			
		||||
# -*- coding: utf-8 -*-
 | 
			
		||||
#
 | 
			
		||||
# Debian Member Portfolio Service routing configuration
 | 
			
		||||
#
 | 
			
		||||
# Copyright © 2009-2014 Jan Dittberner <jan@dittberner.info>
 | 
			
		||||
#
 | 
			
		||||
# This file is part of the Debian Member Portfolio Service.
 | 
			
		||||
#
 | 
			
		||||
# Debian Member Portfolio Service is free software: you can redistribute it
 | 
			
		||||
# and/or modify it under the terms of the GNU Affero General Public License as
 | 
			
		||||
# published by the Free Software Foundation, either version 3 of the License,
 | 
			
		||||
# or (at your option) any later version.
 | 
			
		||||
#
 | 
			
		||||
# Debian Member Portfolio Service is distributed in the hope that it will be
 | 
			
		||||
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero
 | 
			
		||||
# General Public License for more details.
 | 
			
		||||
#
 | 
			
		||||
# You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
#
 | 
			
		||||
"""
 | 
			
		||||
Routes configuration
 | 
			
		||||
 | 
			
		||||
The more specific and detailed routes should be defined first so they
 | 
			
		||||
may take precedent over the more generic routes. For more information
 | 
			
		||||
refer to the routes manual at https://routes.readthedocs.org/
 | 
			
		||||
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
from routes import Mapper
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def make_map(config):
 | 
			
		||||
    """
 | 
			
		||||
    Create, configure and return the routes Mapper
 | 
			
		||||
 | 
			
		||||
    """
 | 
			
		||||
    map = Mapper(directory=config['pylons.paths']['controllers'],
 | 
			
		||||
                 always_scan=config['debug'], explicit=True)
 | 
			
		||||
    map.minimization = False
 | 
			
		||||
 | 
			
		||||
    # The ErrorController route (handles 404/500 error pages); it should
 | 
			
		||||
    # likely stay at the top, ensuring it can always be resolved
 | 
			
		||||
    map.connect('/error/{action}', controller='error')
 | 
			
		||||
    map.connect('/error/{action}/{id}', controller='error')
 | 
			
		||||
 | 
			
		||||
    # CUSTOM ROUTES HERE
 | 
			
		||||
    map.connect('/', controller='portfolio', action='index')
 | 
			
		||||
    map.connect('/result', controller='portfolio', action='urllist')
 | 
			
		||||
    map.connect('/htmlformhelper.js', controller='showformscripts',
 | 
			
		||||
                action='index')
 | 
			
		||||
 | 
			
		||||
    map.connect('/{controller}/{action}')
 | 
			
		||||
    map.connect('/{controller}/{action}/{id}')
 | 
			
		||||
 | 
			
		||||
    return map
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue