Browse Source

listen for first request_start signal to update the paths just-in-time

Natenom/support-murmur-13-1446181288462
Michael Ziegler 16 years ago
parent
commit
eee36058ca
  1. 14
      pyweb/__init__.py
  2. 41
      pyweb/deferred_resolver.py
  3. 8
      pyweb/settings.py

14
pyweb/__init__.py

@ -12,3 +12,17 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
""" """
from django.core import signals
def update_paths( **kwargs ):
from django.core.urlresolvers import get_script_prefix, reverse
from os.path import join
from django.conf import settings
settings.MEDIA_URL = join( get_script_prefix(), settings.MEDIA_URL[1:] );
settings.ADMIN_MEDIA_PREFIX = join( get_script_prefix(), settings.ADMIN_MEDIA_PREFIX[1:] );
settings.LOGIN_URL = reverse( "django.contrib.auth.views.login" );
signals.request_started.disconnect( update_paths );
signals.request_started.connect( update_paths );

41
pyweb/deferred_resolver.py

@ -1,41 +0,0 @@
# -*- coding: utf-8 -*-
"""
* Copyright (C) 2009, Michael "Svedrin" Ziegler <diese-addy@funzt-halt.net>
*
* Mumble-Django is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This package 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 General Public License for more details.
"""
from django.core.urlresolvers import get_script_prefix, reverse
from os.path import join
class StaticResolver( object ):
def __init__( self, string ):
self._string = string;
def __str__( self ):
return join( get_script_prefix(), self._string );
def __add__( self, other ):
return str( self ) + other;
class ViewResolver( object ):
def __init__( self, string, *args, **kwargs ):
self._string = string;
self._args = args;
self._kwargs = kwargs;
def __str__( self ):
return reverse( self._string, *self._args, **self._kwargs );
def __add__( self, other ):
return str( self ) + other;

8
pyweb/settings.py

@ -112,18 +112,14 @@ SITE_ID = 1
# to load the internationalization machinery. # to load the internationalization machinery.
USE_I18N = True USE_I18N = True
from deferred_resolver import *
# Absolute path to the directory that holds media. # Absolute path to the directory that holds media.
MEDIA_ROOT = join( MUMBLE_DJANGO_ROOT, 'htdocs' ) MEDIA_ROOT = join( MUMBLE_DJANGO_ROOT, 'htdocs' )
# URL that handles the media served from MEDIA_ROOT. # URL that handles the media served from MEDIA_ROOT.
MEDIA_URL = StaticResolver( 'static' );
LOGIN_URL = ViewResolver( "django.contrib.auth.views.login" );
MEDIA_URL = '/static/';
# URL prefix for admin media -- CSS, JavaScript and images. # URL prefix for admin media -- CSS, JavaScript and images.
ADMIN_MEDIA_PREFIX = StaticResolver( 'media/' );
ADMIN_MEDIA_PREFIX = '/media/';
# Make this unique, and don't share it with anybody. # Make this unique, and don't share it with anybody.
SECRET_KEY = 'u-mp185msk#z4%s(do2^5405)y5d!9adbn92)apu_p^qvqh10v' SECRET_KEY = 'u-mp185msk#z4%s(do2^5405)y5d!9adbn92)apu_p^qvqh10v'

Loading…
Cancel
Save