Fixed #11166 -- {% widthratio %} should return 0 when the maximum is 0, no matter the value.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17224 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
8767439af4
commit
a4e516b593
|
@ -435,7 +435,7 @@ class WidthRatioNode(Node):
|
||||||
def render(self, context):
|
def render(self, context):
|
||||||
try:
|
try:
|
||||||
value = self.val_expr.resolve(context)
|
value = self.val_expr.resolve(context)
|
||||||
maxvalue = self.max_expr.resolve(context)
|
max_value = self.max_expr.resolve(context)
|
||||||
max_width = int(self.max_width.resolve(context))
|
max_width = int(self.max_width.resolve(context))
|
||||||
except VariableDoesNotExist:
|
except VariableDoesNotExist:
|
||||||
return ''
|
return ''
|
||||||
|
@ -443,9 +443,11 @@ class WidthRatioNode(Node):
|
||||||
raise TemplateSyntaxError("widthratio final argument must be an number")
|
raise TemplateSyntaxError("widthratio final argument must be an number")
|
||||||
try:
|
try:
|
||||||
value = float(value)
|
value = float(value)
|
||||||
maxvalue = float(maxvalue)
|
max_value = float(max_value)
|
||||||
ratio = (value / maxvalue) * max_width
|
ratio = (value / max_value) * max_width
|
||||||
except (ValueError, ZeroDivisionError):
|
except ZeroDivisionError:
|
||||||
|
return '0'
|
||||||
|
except ValueError:
|
||||||
return ''
|
return ''
|
||||||
return str(int(round(ratio)))
|
return str(int(round(ratio)))
|
||||||
|
|
||||||
|
|
|
@ -1429,7 +1429,7 @@ class Templates(unittest.TestCase):
|
||||||
|
|
||||||
### WIDTHRATIO TAG ########################################################
|
### WIDTHRATIO TAG ########################################################
|
||||||
'widthratio01': ('{% widthratio a b 0 %}', {'a':50,'b':100}, '0'),
|
'widthratio01': ('{% widthratio a b 0 %}', {'a':50,'b':100}, '0'),
|
||||||
'widthratio02': ('{% widthratio a b 100 %}', {'a':0,'b':0}, ''),
|
'widthratio02': ('{% widthratio a b 100 %}', {'a':0,'b':0}, '0'),
|
||||||
'widthratio03': ('{% widthratio a b 100 %}', {'a':0,'b':100}, '0'),
|
'widthratio03': ('{% widthratio a b 100 %}', {'a':0,'b':100}, '0'),
|
||||||
'widthratio04': ('{% widthratio a b 100 %}', {'a':50,'b':100}, '50'),
|
'widthratio04': ('{% widthratio a b 100 %}', {'a':50,'b':100}, '50'),
|
||||||
'widthratio05': ('{% widthratio a b 100 %}', {'a':100,'b':100}, '100'),
|
'widthratio05': ('{% widthratio a b 100 %}', {'a':100,'b':100}, '100'),
|
||||||
|
|
Loading…
Reference in New Issue