diff --git a/apps/icons/classes.py b/apps/icons/classes.py index c3bd89d6a7..8c6b4b6ef7 100644 --- a/apps/icons/classes.py +++ b/apps/icons/classes.py @@ -1,5 +1,7 @@ from __future__ import absolute_import +import os + from django.utils.safestring import mark_safe from django.conf import settings @@ -14,15 +16,19 @@ SIZE_BIG = '32x32' class Icon(object): _registry = {} - def __init__(self, literal): + def __init__(self, literal, icon_set=None): self.literal = literal + self.icon_set = icon_set self.__class__._registry[literal] = self def get_file_name(self, size): # TODO: Move name + size resolution to sets to support size/name and # name_size filename conventions try: - return '%s/%s/%s' % (ICON_THEMES[ICON_SET].PATH, size, ICON_THEMES[ICON_SET].DICTIONARY[self.literal]) + if self.icon_set: + return '%s/%s/%s' % (ICON_THEMES[self.icon_set].PATH, size, ICON_THEMES[self.icon_set].DICTIONARY[self.literal]) + else: + return '%s/%s/%s' % (ICON_THEMES[ICON_SET].PATH, size, ICON_THEMES[ICON_SET].DICTIONARY[self.literal]) except KeyError: return '%s/%s/%s' % (ICON_THEMES[ICON_SET].PATH, size, ICON_THEMES[ICON_SET].DICTIONARY[ERROR]) except AttributeError: @@ -36,3 +42,9 @@ class Icon(object): def display_big(self): return self.display(SIZE_BIG) + + def get_filepath(self): + if settings.DEVELOPMENT: + return os.path.join(settings.PROJECT_ROOT, 'apps', 'icons', 'static', 'icons', self.get_file_name(SIZE_BIG)) + else: + return os.path.join(settings.STATIC_ROOT, self.get_file_name(SIZE_BIG))