From f57d2ca8327f3c49217bed99cbef1dc96481b257 Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Sun, 18 Feb 2024 08:50:50 +0100 Subject: [PATCH] improved open data importer and fdc API --- cookbook/helper/open_data_importer.py | 5 +++-- cookbook/views/api.py | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/cookbook/helper/open_data_importer.py b/cookbook/helper/open_data_importer.py index 92f3f4da..a2e50614 100644 --- a/cookbook/helper/open_data_importer.py +++ b/cookbook/helper/open_data_importer.py @@ -33,7 +33,7 @@ class OpenDataImporter: obj = Unit( name=self.data[datatype][u]['name'], plural_name=self.data[datatype][u]['plural_name'], - base_unit=self.data[datatype][u]['base_unit'] if self.data[datatype][u]['base_unit'] != '' else None, + base_unit=self.data[datatype][u]['base_unit'].lower() if self.data[datatype][u]['base_unit'] != '' else None, open_data_slug=u, space=self.request.space ) @@ -102,6 +102,7 @@ class OpenDataImporter: obj = PropertyType( name=self.data[datatype][k]['name'], unit=self.data[datatype][k]['unit'], + fdc_id=self.data[datatype][k]['fdc_id'], open_data_slug=k, space=self.request.space ) @@ -113,7 +114,7 @@ class OpenDataImporter: total_count = 0 if self.update_existing and len(update_list) > 0: - PropertyType.objects.bulk_update(update_list, ('name', 'open_data_slug')) + PropertyType.objects.bulk_update(update_list, ('name', 'fdc_id', 'unit', 'open_data_slug')) total_count += len(update_list) if len(create_list) > 0: diff --git a/cookbook/views/api.py b/cookbook/views/api.py index f2aa20cd..6997377a 100644 --- a/cookbook/views/api.py +++ b/cookbook/views/api.py @@ -629,7 +629,7 @@ class FoodViewSet(viewsets.ModelViewSet, TreeMixin): if fn['nutrient']['id'] == pt.fdc_id: food_property_list.append(Property( property_type_id=pt.id, - property_amount=round(fn['amount'], 2), + property_amount=max(0, round(fn['amount'], 2)), # sometimes FDC might return negative values which make no sense, set to 0 import_food_id=food.id, space=self.request.space, )) @@ -669,9 +669,9 @@ class RecipeBookViewSet(viewsets.ModelViewSet, StandardFilterMixin): order_field = 'id' ordering = f"{'' if order_direction == 'asc' else '-'}{order_field}" - + self.queryset = self.queryset.filter(Q(created_by=self.request.user) | Q(shared=self.request.user)).filter( - space=self.request.space).distinct().order_by(ordering) + space=self.request.space).distinct().order_by(ordering) return super().get_queryset()