summaryrefslogtreecommitdiff
path: root/recipe/templatetags/ingredientformat.py
blob: fa7563345e4b9cdcc7f5146da25ad241bf7e8d98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from recipe.templatetags import register
from django.template.defaultfilters import stringfilter


@register.filter(name="format_ingredient_quantity")
@stringfilter
def format_ingredient_quantity(value):
    fractions = {
        0.125: '1/8',
        0.25 : '1/4',
        0.33 : '1/3',
        0.50 : '1/2',
        0.66 : '2/3',
        0.75 : '3/4',
    }

    value = float(value)
    remainder = round(value % 1, 2)
    whole = int(value - remainder)

    if whole <= 0:
        whole = ""
    else:
        whole = str(whole)

    if remainder <= 0:
        remainder = ""
    else:
        remainder = fractions.get(remainder, str(remainder))

    return "{0} {1}".format(whole, remainder)