Icon class can now be force to display a particular icon set
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
@@ -14,15 +16,19 @@ SIZE_BIG = '32x32'
|
|||||||
class Icon(object):
|
class Icon(object):
|
||||||
_registry = {}
|
_registry = {}
|
||||||
|
|
||||||
def __init__(self, literal):
|
def __init__(self, literal, icon_set=None):
|
||||||
self.literal = literal
|
self.literal = literal
|
||||||
|
self.icon_set = icon_set
|
||||||
self.__class__._registry[literal] = self
|
self.__class__._registry[literal] = self
|
||||||
|
|
||||||
def get_file_name(self, size):
|
def get_file_name(self, size):
|
||||||
# TODO: Move name + size resolution to sets to support size/name and
|
# TODO: Move name + size resolution to sets to support size/name and
|
||||||
# name_size filename conventions
|
# name_size filename conventions
|
||||||
try:
|
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:
|
except KeyError:
|
||||||
return '%s/%s/%s' % (ICON_THEMES[ICON_SET].PATH, size, ICON_THEMES[ICON_SET].DICTIONARY[ERROR])
|
return '%s/%s/%s' % (ICON_THEMES[ICON_SET].PATH, size, ICON_THEMES[ICON_SET].DICTIONARY[ERROR])
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
@@ -36,3 +42,9 @@ class Icon(object):
|
|||||||
|
|
||||||
def display_big(self):
|
def display_big(self):
|
||||||
return self.display(SIZE_BIG)
|
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))
|
||||||
|
|||||||
Reference in New Issue
Block a user