mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-01 04:10:06 -05:00
fix errors on Tandoor recipe import
This commit is contained in:
@@ -421,9 +421,11 @@ class FoodSerializer(UniqueFieldsMixin, WritableNestedModelSerializer, ExtendedR
|
|||||||
space = validated_data.pop('space', self.context['request'].space)
|
space = validated_data.pop('space', self.context['request'].space)
|
||||||
# supermarket category needs to be handled manually as food.get or create does not create nested serializers unlike a super.create of serializer
|
# supermarket category needs to be handled manually as food.get or create does not create nested serializers unlike a super.create of serializer
|
||||||
if 'supermarket_category' in validated_data and validated_data['supermarket_category']:
|
if 'supermarket_category' in validated_data and validated_data['supermarket_category']:
|
||||||
|
sm_category = validated_data['supermarket_category']
|
||||||
|
sc_name = sm_category.pop('name', None)
|
||||||
validated_data['supermarket_category'], sc_created = SupermarketCategory.objects.get_or_create(
|
validated_data['supermarket_category'], sc_created = SupermarketCategory.objects.get_or_create(
|
||||||
name__iexact=validated_data.pop('supermarket_category')['name'],
|
name=name,
|
||||||
space=self.context['request'].space)
|
space=space, defaults=sm_category)
|
||||||
onhand = validated_data.pop('food_onhand', None)
|
onhand = validated_data.pop('food_onhand', None)
|
||||||
|
|
||||||
# assuming if on hand for user also onhand for shopping_share users
|
# assuming if on hand for user also onhand for shopping_share users
|
||||||
@@ -678,7 +680,7 @@ class RecipeBookEntrySerializer(serializers.ModelSerializer):
|
|||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
book = validated_data['book']
|
book = validated_data['book']
|
||||||
recipe = validated_data['recipe']
|
recipe = validated_data['recipe']
|
||||||
if not book.get_owner() == self.context['request'].user and not self.context['request'].user in book.get_shared():
|
if not book.get_owner() == self.context['request'].user and not self.context['request'].user in book.get_shared():
|
||||||
raise NotFound(detail=None, code=None)
|
raise NotFound(detail=None, code=None)
|
||||||
obj, created = RecipeBookEntry.objects.get_or_create(book=book, recipe=recipe)
|
obj, created = RecipeBookEntry.objects.get_or_create(book=book, recipe=recipe)
|
||||||
return obj
|
return obj
|
||||||
@@ -733,11 +735,11 @@ class ShoppingListRecipeSerializer(serializers.ModelSerializer):
|
|||||||
value = Decimal(value)
|
value = Decimal(value)
|
||||||
value = value.quantize(Decimal(1)) if value == value.to_integral() else value.normalize() # strips trailing zero
|
value = value.quantize(Decimal(1)) if value == value.to_integral() else value.normalize() # strips trailing zero
|
||||||
return (
|
return (
|
||||||
obj.name
|
obj.name
|
||||||
or getattr(obj.mealplan, 'title', None)
|
or getattr(obj.mealplan, 'title', None)
|
||||||
or (d := getattr(obj.mealplan, 'date', None)) and ': '.join([obj.mealplan.recipe.name, str(d)])
|
or (d := getattr(obj.mealplan, 'date', None)) and ': '.join([obj.mealplan.recipe.name, str(d)])
|
||||||
or obj.recipe.name
|
or obj.recipe.name
|
||||||
) + f' ({value:.2g})'
|
) + f' ({value:.2g})'
|
||||||
|
|
||||||
def update(self, instance, validated_data):
|
def update(self, instance, validated_data):
|
||||||
# TODO remove once old shopping list
|
# TODO remove once old shopping list
|
||||||
|
|||||||
Reference in New Issue
Block a user