diff options
-rw-r--r-- | askbot/setup_templates/settings.py | 7 | ||||
-rw-r--r-- | askbot/skins/loaders.py | 8 | ||||
-rw-r--r-- | askbot/skins/utils.py | 23 |
3 files changed, 20 insertions, 18 deletions
diff --git a/askbot/setup_templates/settings.py b/askbot/setup_templates/settings.py index 92246337..f2d78fec 100644 --- a/askbot/setup_templates/settings.py +++ b/askbot/setup_templates/settings.py @@ -115,10 +115,9 @@ ASKBOT_MAX_UPLOAD_FILE_SIZE = 1024 * 1024 #result in bytes DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage' -TEMPLATE_DIRS = ( - #specific to askbot - os.path.join(os.path.dirname(__file__),'askbot','skins').replace('\\','/'), -) +#TEMPLATE_DIRS = (,) #template have no effect in askbot, use the variable below +#ASKBOT_EXTRA_SKIN_DIRS = (,)#path to your skin collection +#take a look here http://askbot.org/en/question/207/ TEMPLATE_CONTEXT_PROCESSORS = ( 'django.core.context_processors.request', diff --git a/askbot/skins/loaders.py b/askbot/skins/loaders.py index e44801e6..241897c9 100644 --- a/askbot/skins/loaders.py +++ b/askbot/skins/loaders.py @@ -5,6 +5,7 @@ from askbot.conf import settings as askbot_settings from django.conf import settings as django_settings from coffin.common import CoffinEnvironment from jinja2 import loaders as jinja_loaders +from askbot.skins import utils #module for skinning askbot #via ASKBOT_DEFAULT_SKIN configureation variable (not django setting) @@ -42,13 +43,14 @@ class SkinEnvironment(CoffinEnvironment): """ loaders = list() skin_name = askbot_settings.ASKBOT_DEFAULT_SKIN - skin_dirs = django_settings.TEMPLATE_DIRS + (ASKBOT_SKIN_COLLECTION_DIR,) + skin_dirs = utils.get_skin_dirs() template_dirs = list() for dir in skin_dirs: template_dirs.append(os.path.join(dir, skin_name, 'templates')) - for dir in skin_dirs: - template_dirs.append(os.path.join(dir, 'default', 'templates')) + if skin_name != 'default': + for dir in skin_dirs: + template_dirs.append(os.path.join(dir, 'default', 'templates')) loaders.append(jinja_loaders.FileSystemLoader(template_dirs)) return loaders diff --git a/askbot/skins/utils.py b/askbot/skins/utils.py index 67678cd4..259424da 100644 --- a/askbot/skins/utils.py +++ b/askbot/skins/utils.py @@ -10,22 +10,23 @@ def get_skin_dirs(): f = os.path.isfile skin_dirs = [] skin_dirs.append( n(j(d(d(__file__)), 'skins')) ) + if hasattr(django_settings, 'ASKBOT_EXTRA_SKIN_DIRS'): + skin_dirs += django_settings.ASKBOT_EXTRA_SKIN_DIRS return skin_dirs def get_skin_choices(): #todo: expand this to handle custom skin directories - dirs = get_skin_dirs() - default_dir = dirs[0] - items = os.listdir(default_dir) skin_list = ['default'] - for i in items: - item_path = os.path.join(default_dir,i) - if not os.path.isdir(item_path): - continue - if i == 'common': - continue - if i not in skin_list: - skin_list.append(i) + for directory in get_skin_dirs(): + items = os.listdir(directory) + for i in items: + item_path = os.path.join(directory, i) + if not os.path.isdir(item_path): + continue + if i == 'common': + continue + if i not in skin_list: + skin_list.append(i) return [(i,i) for i in skin_list] |