fixed some integration issues
This commit is contained in:
parent
3b429c5d84
commit
26f9d25bd2
@ -158,6 +158,7 @@ class Integration:
|
|||||||
il.imported_recipes += 1
|
il.imported_recipes += 1
|
||||||
il.save()
|
il.save()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
traceback.print_exc()
|
||||||
self.handle_exception(e, log=il, message=f'-------------------- \nERROR \n{e}\n--------------------\n')
|
self.handle_exception(e, log=il, message=f'-------------------- \nERROR \n{e}\n--------------------\n')
|
||||||
import_zip.close()
|
import_zip.close()
|
||||||
elif '.json' in f['name'] or '.txt' in f['name'] or '.mmf' in f['name']:
|
elif '.json' in f['name'] or '.txt' in f['name'] or '.mmf' in f['name']:
|
||||||
|
@ -58,7 +58,7 @@ class Paprika(Integration):
|
|||||||
instruction=instructions, space=self.request.space,
|
instruction=instructions, space=self.request.space,
|
||||||
)
|
)
|
||||||
|
|
||||||
if len(recipe_json['description'].strip()) > 500:
|
if 'description' in recipe_json and len(recipe_json['description'].strip()) > 500:
|
||||||
step.instruction = recipe_json['description'].strip() + '\n\n' + step.instruction
|
step.instruction = recipe_json['description'].strip() + '\n\n' + step.instruction
|
||||||
|
|
||||||
if 'categories' in recipe_json:
|
if 'categories' in recipe_json:
|
||||||
|
@ -341,22 +341,14 @@ class FoodSerializer(UniqueFieldsMixin, WritableNestedModelSerializer):
|
|||||||
def count_recipes(self, obj):
|
def count_recipes(self, obj):
|
||||||
return Recipe.objects.filter(steps__ingredients__food=obj, space=obj.space).count()
|
return Recipe.objects.filter(steps__ingredients__food=obj, space=obj.space).count()
|
||||||
|
|
||||||
# def to_representation(self, instance):
|
|
||||||
# response = super().to_representation(instance)
|
|
||||||
# # turns a GET of food.recipe into a dict of data while allowing a PATCH/PUT of an integer to update a food with a recipe
|
|
||||||
# recipe = RecipeSimpleSerializer(instance.recipe, allow_null=True).data
|
|
||||||
# supermarket_category = SupermarketCategorySerializer(instance.supermarket_category, allow_null=True).data
|
|
||||||
# response['recipe'] = recipe if recipe else None
|
|
||||||
# # the SupermarketCategorySerializer returns a dict instead of None when the column is null
|
|
||||||
# if supermarket_category == {'name': ''} or None:
|
|
||||||
# response['supermarket_category'] = None
|
|
||||||
# else:
|
|
||||||
# response['supermarket_category'] = supermarket_category
|
|
||||||
# return response
|
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
validated_data['name'] = validated_data['name'].strip()
|
validated_data['name'] = validated_data['name'].strip()
|
||||||
validated_data['space'] = self.context['request'].space
|
validated_data['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
|
||||||
|
if 'supermarket_category' in validated_data and validated_data['supermarket_category']:
|
||||||
|
validated_data['supermarket_category'], sc_created = SupermarketCategory.objects.get_or_create(
|
||||||
|
name=validated_data.pop('supermarket_category')['name'],
|
||||||
|
space=self.context['request'].space)
|
||||||
obj, created = Food.objects.get_or_create(**validated_data)
|
obj, created = Food.objects.get_or_create(**validated_data)
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ def import_recipe(request):
|
|||||||
|
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
form = ImportForm(request.POST, request.FILES)
|
form = ImportForm(request.POST, request.FILES)
|
||||||
if form.is_valid():
|
if form.is_valid() and request.FILES != {}:
|
||||||
try:
|
try:
|
||||||
integration = get_integration(request, form.cleaned_data['type'])
|
integration = get_integration(request, form.cleaned_data['type'])
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user