From ca58f2182b24717e1c3fb9f9da9397ff5e81fc2f Mon Sep 17 00:00:00 2001 From: Mike Crute Date: Thu, 30 Dec 2010 01:08:35 -0500 Subject: Adding template tag to do formatting of ingredients quantity. --- greenbox/recipe/templatetags/__init__.py | 4 +++ greenbox/recipe/templatetags/ingredientformat.py | 31 ++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 greenbox/recipe/templatetags/__init__.py create mode 100644 greenbox/recipe/templatetags/ingredientformat.py diff --git a/greenbox/recipe/templatetags/__init__.py b/greenbox/recipe/templatetags/__init__.py new file mode 100644 index 0000000..9bd6204 --- /dev/null +++ b/greenbox/recipe/templatetags/__init__.py @@ -0,0 +1,4 @@ +from django import template + + +register = template.Library() diff --git a/greenbox/recipe/templatetags/ingredientformat.py b/greenbox/recipe/templatetags/ingredientformat.py new file mode 100644 index 0000000..fa75633 --- /dev/null +++ b/greenbox/recipe/templatetags/ingredientformat.py @@ -0,0 +1,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) -- cgit v1.2.3