From de5ac9181fb353d5b7b5041258fec29d488a0210 Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Fri, 21 Mar 2025 21:22:32 +0100 Subject: [PATCH] property view unit conversion/edit --- cookbook/helper/property_helper.py | 14 ++- vue3/src/components/display/PropertyView.vue | 96 ++++++++++++++------ vue3/src/components/display/RecipeView.vue | 8 +- vue3/src/locales/ar.json | 1 + vue3/src/locales/bg.json | 1 + vue3/src/locales/ca.json | 1 + vue3/src/locales/cs.json | 1 + vue3/src/locales/da.json | 1 + vue3/src/locales/de.json | 1 + vue3/src/locales/el.json | 1 + vue3/src/locales/en.json | 1 + vue3/src/locales/es.json | 1 + vue3/src/locales/fi.json | 1 + vue3/src/locales/fr.json | 1 + vue3/src/locales/he.json | 1 + vue3/src/locales/hu.json | 1 + vue3/src/locales/hy.json | 1 + vue3/src/locales/id.json | 1 + vue3/src/locales/is.json | 1 + vue3/src/locales/it.json | 1 + vue3/src/locales/lt.json | 1 + vue3/src/locales/nb_NO.json | 1 + vue3/src/locales/nl.json | 1 + vue3/src/locales/pl.json | 1 + vue3/src/locales/pt.json | 1 + vue3/src/locales/pt_BR.json | 1 + vue3/src/locales/ro.json | 1 + vue3/src/locales/ru.json | 1 + vue3/src/locales/sl.json | 1 + vue3/src/locales/sv.json | 1 + vue3/src/locales/tr.json | 1 + vue3/src/locales/uk.json | 1 + vue3/src/locales/zh_Hans.json | 1 + vue3/src/locales/zh_Hant.json | 1 + 34 files changed, 111 insertions(+), 38 deletions(-) diff --git a/cookbook/helper/property_helper.py b/cookbook/helper/property_helper.py index 8ec059352..b7d4764bd 100644 --- a/cookbook/helper/property_helper.py +++ b/cookbook/helper/property_helper.py @@ -44,13 +44,17 @@ class FoodPropertyHelper: if i.food is not None: conversions = uch.get_conversions(i) for pt in property_types: + # if a property could be calculated with an actual value found_property = False + # if food has a value for the given property type (no matter if conversion is possible) + has_property_value = False if i.food.properties_food_amount == 0 or i.food.properties_food_unit is None: # if food is configured incorrectly - computed_properties[pt.id]['food_values'][i.food.id] = {'id': i.food.id, 'food': i.food.name, 'value': None} + computed_properties[pt.id]['food_values'][i.food.id] = {'id': i.food.id, 'food': {'id': i.food.id, 'name': i.food.name}, 'value': None} computed_properties[pt.id]['missing_value'] = True else: for p in i.food.properties.all(): if p.property_type == pt and p.property_amount is not None: + has_property_value = True for c in conversions: if c.unit == i.food.properties_food_unit: found_property = True @@ -60,10 +64,12 @@ class FoodPropertyHelper: if not found_property: if i.amount == 0: # don't count ingredients without an amount as missing computed_properties[pt.id]['missing_value'] = computed_properties[pt.id]['missing_value'] or False # don't override if another food was already missing - computed_properties[pt.id]['food_values'][i.food.id] = {'id': i.food.id, 'food': i.food.name, 'value': 0} + computed_properties[pt.id]['food_values'][i.food.id] = {'id': i.food.id, 'food': {'id': i.food.id, 'name': i.food.name}, 'value': 0} else: computed_properties[pt.id]['missing_value'] = True - computed_properties[pt.id]['food_values'][i.food.id] = {'id': i.food.id, 'food': i.food.name, 'value': None} + computed_properties[pt.id]['food_values'][i.food.id] = {'id': i.food.id, 'food': {'id': i.food.id, 'name': i.food.name}, 'value': None} + if has_property_value and i.unit is not None: + computed_properties[pt.id]['food_values'][i.food.id]['missing_conversion'] = {'base_unit': {'id': i.unit.id, 'name': i.unit.name}, 'converted_unit': {'id': i.food.properties_food_unit.id, 'name': i.food.properties_food_unit.name}} return computed_properties @@ -74,5 +80,5 @@ class FoodPropertyHelper: if key in d and d[key]['value']: d[key]['value'] += value else: - d[key] = {'id': food.id, 'food': food.name, 'value': value} + d[key] = {'id': food.id, 'food': {'id': food.id, 'name': food.name}, 'value': value} return d diff --git a/vue3/src/components/display/PropertyView.vue b/vue3/src/components/display/PropertyView.vue index e7702a39f..d4d2ce9f6 100644 --- a/vue3/src/components/display/PropertyView.vue +++ b/vue3/src/components/display/PropertyView.vue @@ -21,12 +21,13 @@ - {{p.name}} - {{$n(p.propertyAmountPerServing)}} {{p.unit}} - {{$n(p.propertyAmountTotal)}} {{p.unit}} + {{ p.name }} + {{ $n(p.propertyAmountPerServing) }} {{ p.unit }} + {{ $n(p.propertyAmountTotal) }} {{ p.unit }} - - + + @@ -36,25 +37,39 @@ - + - + - {{ fv.food }} + {{ fv.food.name }} - {{$t('Property_Editor')}} + {{ $t('Property_Editor') }} @@ -63,9 +78,11 @@