Commit a4e516b5 authored by Aymeric Augustin's avatar Aymeric Augustin
Browse files

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
parent 8767439a
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -435,7 +435,7 @@ class WidthRatioNode(Node):
    def render(self, context):
        try:
            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))
        except VariableDoesNotExist:
            return ''
@@ -443,9 +443,11 @@ class WidthRatioNode(Node):
            raise TemplateSyntaxError("widthratio final argument must be an number")
        try:
            value = float(value)
            maxvalue = float(maxvalue)
            ratio = (value / maxvalue) * max_width
        except (ValueError, ZeroDivisionError):
            max_value = float(max_value)
            ratio = (value / max_value) * max_width
        except ZeroDivisionError:
            return '0'
        except ValueError:
            return ''
        return str(int(round(ratio)))

+1 −1
Original line number Diff line number Diff line
@@ -1429,7 +1429,7 @@ class Templates(unittest.TestCase):

            ### WIDTHRATIO TAG ########################################################
            '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'),
            'widthratio04': ('{% widthratio a b 100 %}', {'a':50,'b':100}, '50'),
            'widthratio05': ('{% widthratio a b 100 %}', {'a':100,'b':100}, '100'),