From fb830189d2714b43495b10394a4e8580c720014e Mon Sep 17 00:00:00 2001 From: Michael Genson <71845777+michael-genson@users.noreply.github.com> Date: Tue, 21 Feb 2023 00:51:58 -0600 Subject: [PATCH] remembered how to count over 9 (#2156) --- mealie/schema/group/group_shopping_list.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/mealie/schema/group/group_shopping_list.py b/mealie/schema/group/group_shopping_list.py index 9b20f8ac9a37..bad36edce1a2 100644 --- a/mealie/schema/group/group_shopping_list.py +++ b/mealie/schema/group/group_shopping_list.py @@ -22,6 +22,14 @@ SUPERSCRIPT = dict(zip("1234567890", "¹²³⁴⁵⁶⁷⁸⁹⁰", strict=False SUBSCRIPT = dict(zip("1234567890", "₁₂₃₄₅₆₇₈₉₀", strict=False)) +def display_fraction(fraction: Fraction): + return ( + "".join([SUPERSCRIPT[c] for c in str(fraction.numerator)]) + + "/" + + "".join([SUBSCRIPT[c] for c in str(fraction.denominator)]) + ) + + class ShoppingListItemRecipeRefCreate(MealieModel): recipe_id: UUID4 recipe_quantity: float = 0 @@ -126,7 +134,7 @@ class ShoppingListItemOut(ShoppingListItemBase): return str(qty.numerator) if qty.numerator <= qty.denominator: - return f"{SUPERSCRIPT[str(qty.numerator)]}⁄{SUBSCRIPT[str(qty.denominator)]}" + return display_fraction(qty) # convert an improper fraction into a mixed fraction (e.g. 11/4 --> 2 3/4) whole_number = 0 @@ -134,7 +142,7 @@ class ShoppingListItemOut(ShoppingListItemBase): whole_number += 1 qty -= 1 - return f"{whole_number} {SUPERSCRIPT[str(qty.numerator)]}⁄{SUBSCRIPT[str(qty.denominator)]}" + return f"{whole_number} {display_fraction(qty)}" def _format_display(self) -> str: components = []