X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/717c14c014e3c988bcb392599a47ffa92630da78..b0d77fd4dd2b177e77e2bb038a5864567adfd9df:/apps/filebrowser/templatetags/fb_versions.py diff --git a/apps/filebrowser/templatetags/fb_versions.py b/apps/filebrowser/templatetags/fb_versions.py index 887fd9ea..cdb05194 100644 --- a/apps/filebrowser/templatetags/fb_versions.py +++ b/apps/filebrowser/templatetags/fb_versions.py @@ -5,6 +5,7 @@ from time import gmtime from django.template import Library, Node, Variable, VariableDoesNotExist, TemplateSyntaxError from django.conf import settings from django.utils.encoding import force_unicode +import urllib # filebrowser imports from filebrowser.fb_settings import MEDIA_ROOT, MEDIA_URL, VERSIONS @@ -21,12 +22,13 @@ class VersionNode(Node): else: self.version_prefix = None self.version_prefix_var = Variable(version_prefix) - + def render(self, context): try: source = self.src.resolve(context) except VariableDoesNotExist: return None + if self.version_prefix: version_prefix = self.version_prefix else: @@ -34,6 +36,7 @@ class VersionNode(Node): version_prefix = self.version_prefix_var.resolve(context) except VariableDoesNotExist: return None + try: version_path = _get_version_path(_url_to_path(str(source)), version_prefix) if not os.path.isfile(os.path.join(MEDIA_ROOT, version_path)): @@ -41,11 +44,15 @@ class VersionNode(Node): version_path = _version_generator(_url_to_path(str(source)), version_prefix) elif os.path.getmtime(os.path.join(MEDIA_ROOT, _url_to_path(str(source)))) > os.path.getmtime(os.path.join(MEDIA_ROOT, version_path)): # recreate version if original image was updated - version_path = _version_generator(_url_to_path(str(source)), version_prefix, force=True) + version_path = _version_generator(_url_to_path(str(source)), version_prefix, force = True) return _path_to_url(version_path) - except: - return "" - + except Exception, e: + import traceback, sys + print "FB VERSION ERROR" + traceback.print_exc(file = sys.stdout) + return u"" + + def version(parser, token): """ @@ -57,7 +64,7 @@ def version(parser, token): version_prefix can be a string or a variable. if version_prefix is a string, use quotes. """ - + try: tag, src, version_prefix = token.split_contents() except: @@ -65,7 +72,7 @@ def version(parser, token): if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")) and version_prefix.lower()[1:-1] not in VERSIONS: raise TemplateSyntaxError, "%s tag received bad version_prefix %s" % (tag, version_prefix) return VersionNode(src, version_prefix) - + class VersionObjectNode(Node): def __init__(self, src, version_prefix, var_name): @@ -76,7 +83,7 @@ class VersionObjectNode(Node): else: self.version_prefix = None self.version_prefix_var = Variable(version_prefix) - + def render(self, context): try: source = self.src.resolve(context) @@ -96,12 +103,12 @@ class VersionObjectNode(Node): version_path = _version_generator(_url_to_path(str(source)), version_prefix) elif os.path.getmtime(os.path.join(MEDIA_ROOT, _url_to_path(str(source)))) > os.path.getmtime(os.path.join(MEDIA_ROOT, version_path)): # recreate version if original image was updated - version_path = _version_generator(_url_to_path(str(source)), version_prefix, force=True) + version_path = _version_generator(_url_to_path(str(source)), version_prefix, force = True) context[self.var_name] = FileObject(version_path) except: context[self.var_name] = "" return '' - + def version_object(parser, token): """ @@ -115,7 +122,7 @@ def version_object(parser, token): version_prefix can be a string or a variable. if version_prefix is a string, use quotes. """ - + try: #tag, src, version_prefix = token.split_contents() tag, arg = token.contents.split(None, 1) @@ -128,7 +135,7 @@ def version_object(parser, token): if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")) and version_prefix.lower()[1:-1] not in VERSIONS: raise TemplateSyntaxError, "%s tag received bad version_prefix %s" % (tag, version_prefix) return VersionObjectNode(src, version_prefix, var_name) - + class VersionSettingNode(Node): def __init__(self, version_prefix): @@ -137,7 +144,7 @@ class VersionSettingNode(Node): else: self.version_prefix = None self.version_prefix_var = Variable(version_prefix) - + def render(self, context): if self.version_prefix: version_prefix = self.version_prefix @@ -148,13 +155,13 @@ class VersionSettingNode(Node): return None context['version_setting'] = VERSIONS[version_prefix] return '' - + def version_setting(parser, token): """ Get Information about a version setting. """ - + try: tag, version_prefix = token.split_contents() except: @@ -162,7 +169,7 @@ def version_setting(parser, token): if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")) and version_prefix.lower()[1:-1] not in VERSIONS: raise TemplateSyntaxError, "%s tag received bad version_prefix %s" % (tag, version_prefix) return VersionSettingNode(version_prefix) - + register.tag(version) register.tag(version_object)