Changeset - f93b523c0be3
[Not reviewed]
default
0 2 0
Marcin Kuzminski - 16 years ago 2010-03-05 01:14:30
marcin@python-blog.com
dirty fix for multiple file encodings,
2 files changed with 23 insertions and 16 deletions:
0 comments (0 inline, 0 general)
pylons_app/config/environment.py
Show inline comments
 
@@ -9,36 +9,36 @@ from pylons import config
 
import pylons_app.lib.app_globals as app_globals
 
import pylons_app.lib.helpers
 
from pylons_app.config.routing import make_map
 

	
 
log = logging.getLogger(__name__)
 

	
 
def load_environment(global_conf, app_conf):
 
    """Configure the Pylons environment via the ``pylons.config``
 
    object
 
    """
 
    # 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')])
 
    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 = 'pylons_app',
 
                    template_engine = 'mako', paths = paths)
 
    config.init_app(global_conf, app_conf, package='pylons_app',
 
                    template_engine='mako', paths=paths)
 

	
 
    config['routes.map'] = make_map()
 
    config['pylons.g'] = app_globals.Globals()
 
    config['pylons.h'] = pylons_app.lib.helpers
 

	
 
    # Create the Mako TemplateLookup, with the default auto-escaping
 
    config['pylons.g'].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', output_encoding = 'utf-8',
 
        imports = ['from webhelpers.html import escape'],
 
        default_filters = ['escape'])
 
        directories=paths['templates'],
 
        error_handler=handle_mako_error,
 
        module_directory=os.path.join(app_conf['cache_dir'], 'templates'),
 
        output_encoding='utf-8',
 
        imports=['from webhelpers.html import escape'],
 
        default_filters=['escape'])
 

	
 
    # CONFIGURATION OPTIONS HERE (note: all config options will override
 
    # any Pylons config options)
pylons_app/controllers/hg.py
Show inline comments
 
@@ -15,29 +15,36 @@ log = logging.getLogger(__name__)
 

	
 
class HgController(BaseController):
 

	
 
    def __before__(self):
 
        c.repos_prefix = 'etelko'
 

	
 
    def view(self, *args, **kwargs):
 
        response = g.hgapp(request.environ, self.start_response)
 
        #for mercurial protocols and raw files we can't wrap into mako
 
        if request.environ['HTTP_ACCEPT'].find("mercurial") != -1 or \
 
        request.environ['PATH_INFO'].find('raw-file') != -1:
 
                    return response
 

	
 
        tmpl = ''.join(response)
 
        try:
 
            tmpl = u''.join(response)
 
            template = Template(tmpl, lookup=request.environ['pylons.pylons']\
 
                            .config['pylons.g'].mako_lookup)
 
                        
 
        except (RuntimeError, UnicodeDecodeError):
 
            log.info('disabling unicode due to encoding error')
 
            response = g.hgapp(request.environ, self.start_response)
 
            tmpl = ''.join(response)
 
            template = Template(tmpl, lookup=request.environ['pylons.pylons']\
 
                            .config['pylons.g'].mako_lookup, disable_unicode=True)
 

	
 
        template = Template(tmpl, lookup=request.environ['pylons.pylons']\
 
                            .config['pylons.g'].mako_lookup)
 

	
 
        return template.render(g=g, c=c, session=session, h=h)
 

	
 

	
 
    def manage_hgrc(self):
 
        pass
 

	
 
    def hgrc(self, dirname):
 
        filename = os.path.join(dirname, '.hg', 'hgrc')
 
        return filename
 

	
 
    def add_repo(self, new_repo):
0 comments (0 inline, 0 general)